jsq@ut-sally.UUCP (08/14/83)
- 17 - The portable _a_r command creates archive headers specific to the host. _A_r_c_v is still available to convert old-style archives from PDP-11 to VAX-11/780 format. However, _c_o_n_v_e_r_t should be used to convert pre-System V archives to the newer format. 4.1C has the _r_a_n_l_i_b program for inserting an index at the beginning of an archive, so that the archive can be randomly accessed. The Berkeley _a_r (introduced in 4.1BSD) produces ASCII output, making the archives portable without the need of any special libraries. 2.5.3 _F_s We consider this topic sufficiently important to have a major section to itself later in the paper. 2.5.4 _T_e_r_m_c_a_p__a_n_d__d_e_s_c_e_n_d_a_n_t_s 4.1C includes the _t_e_r_m_c_a_p facility, which maps common terminal control functions to the specific escape sequences for a particular terminal, and the _c_u_r_s_e_s library of cursor motion optimization functions. These are used by a number of programs, including the _v_i editor, to achieve terminal independence. System V has adopted _t_e_r_m_c_a_p but not _c_u_r_s_e_s. _T_e_r_m_c_a_p has spawned various lookalikes in 4.1C. _P_r_i_n_t_c_a_p is used by _l_p_r to determine the characteristics of printers (see above under _P_r_i_n_t_i_n_g). _D_i_s_k_t_a_b is used by _n_e_w_f_s to determine how to configure a new format file system (see below under _F_i_l_e _S_y_s_t_e_m_s). _R_e_m_o_t_e is used by _t_i_p (the successor to _c_u) to determine the characteristics of a remote system (see below under _U_U_C_P). 2.6 Games Both systems provide a variety of games, ranging from the ever-popular hunt-the-wumpus to chess and automated Dungeons and Dragons. 2.6.1 _S_y_s_t_e_m__V__g_a_m_e_s On System III, most of the games were shell scripts which echoed the message: this game does not work on the VAX This deplorable situation has been largely corrected in System V. 2.6.2 _4_._1_C__B_S_D__A_S_C_I_I__g_r_a_p_h_i_c_s__g_a_m_e_s 4.1C has numerous games which use _t_e_r_m_c_a_p and _c_u_r_s_e_s to produce ASCII graphics on various terminals. Examples are _r_o_g_u_e (a role-playing game in the manner of Dungeons and Dragons), _w_o_r_m_s, _r_a_i_n, - 18 - _c_a_n_f_i_e_l_d, and _m_i_l_l_e. System V has the _s_n_a_k_e game, but for some reason has removed the _t_e_r_m_c_a_p support, making it work on only a few terminal types. 2.6.3 _P_D_P_-_1_1__c_o_m_p_a_t_i_b_i_l_i_t_y 4.1C provides a package which allows the use of the PDP-11 compatibility feature of the VAX processor. This package was supposedly included originally to support the PDP-11 binary of the game _d_u_n_g_e_o_n (_z_o_r_k). The fact that it is still included under games seems fitting. 2.7 Miscellany 2.7.1 _F_i_l_e__s_y_s_t_e_m__h_i_e_r_a_r_c_h_y The most notable addition here is /usr/ucb, which 4BSD uses to contain objects for commands developed at Berkeley (though not all such commands), and /usr/local, used to contain commands and libraries (in /usr/local/lib) that exist at Berkeley but are not distributed (making this a convenient place for commands developed at other sites). See below under _S_o_u_r_c_e_s _a_n_d _D_o_c_u_m_e_n_t_a_t_i_o_n for comments on the source trees. 2.8 Maintenance 4BSD has a reputation in some quarters as being unsuitable for production use because it is a research system. This reputation is undeserved, as its maintenance facilities are more highly developed than those of System V. 2.8.1 _I_n_i_t_,__g_e_t_t_y_,__a_n_d__l_o_g_i_n _I_n_i_t and _g_e_t_t_y are not substantially different in 4.1C from 4.1. _L_o_g_i_n has been modified to handle _r_l_o_g_i_n-style remote logins without passwords on machines under the same administration. There are also the modifications from 4.1 related to _s_h_u_t_d_o_w_n (disallowing logins before a shutdown) and security (prohibiting login by superuser on certain terminals, such as dialups). On the other hand, the finite state machine approach used for System III _i_n_i_t has been greatly elaborated in System V. Init is driven from the file /etc/inittab, as in System III. This file is used to specify the identity, behavior, and arbitrary id of the processes to be associated with each state _i_n_i_t can occupy. A typical entry might specify that in a state commonly corresponding to multi-user - 19 - mode, a _g_e_t_t_y should be respawned on each terminal line when the death of a previous _g_e_t_t_y is detected. Single-user mode is a distinguished state, with the option of having a virtual system console connected to any terminal. State change instructions are issued to the ancestral _i_n_i_t via the _t_e_l_i_n_i_t command. The System V _g_e_t_t_y is likewise driven from a file, /etc/gettydefs. This file includes, for each speed, initial and final flags used for setting the mode of a terminal line, the login herald, and the next speed to try. In actuality, the speed is only a label for which _g_e_t_t_y searches, so that it is possible to make terminal-specific entries which include control sequences in the login message, etc. System V _l_o_g_i_n has mainly been changed to deal with the new _u_t_m_p structure. In addition, environment variables may be set in the login response. In passing, we note that the old UNIX standby, _w_h_o, has been turned into a general utility for summarizing /_e_t_c/_u_t_m_p and /_e_t_c/_w_t_m_p. To this end, it now has no fewer than ten different options. 2.8.2 _S_h_u_t_d_o_w_n_,__h_a_l_t_,__a_n_d__r_e_b_o_o_t 4.1C has the convenient commands _s_h_u_t_d_o_w_n (bring the system down politely, informing the users), _h_a_l_t (stop the system immediately), and _r_e_b_o_o_t (shutdown and bring up a new system). When coming up, 4.1C automatically performs _f_s_c_k on all the file systems (running one _f_s_c_k subprocess per disk arm, in parallel, for speed) and brings the system up in multi- user mode. To bring 4.1C up from a dead start, it is only necessary to turn the power switch on. (To get into single user mode, one types ^C or uses another available method.) The normal method for bringing down System V is to run the shell procedure _s_h_u_t_d_o_w_n. Other facilities exist for terminating running processes, including _k_i_l_l_a_l_l, invoked by _s_h_u_t_d_o_w_n, and _f_u_s_e_r, which selectively identifies and kills processes which are using specified files. A _r_e_b_o_o_t command is documented for the WECo 3B20S release of System V but none seems to be available for the VAX. System V has nothing equivalent to the 4.1C BSD _h_a_l_t command. 2.8.3 _B_a_c_k_u_p_s 4.1C uses _d_u_m_p for file system backups, in the V7 manner. The user interface to _r_e_s_t_o_r has been modified, however, to resemble that of _t_a_r, making it much easier to use, as it is now possible to restor by file (or even directory) name, rather than by inode number. - 20 - The 4.1C _d_u_m_p also allows backups over networks. It runs at tape speed, and is fast enough (especially with a 6250bpi tape drive) that disk-to-disk backups seem superfluous. Several backup paths are available under System V. The _v_o_l_c_o_p_y utility from System III may be used to copy a complete file system. The new _f_i_n_c offers a fast incremental backup of those files meeting certain selection criteria (last access, modification, etc.). _F_r_e_c may be used to recover files by inumber from a _v_o_l_c_o_p_y or _f_i_n_c backup. Finally, _f_f, a fast version of _f_i_n_d, may be used in combination with _c_p_i_o. _D_u_m_p and _r_e_s_t_o_r are not present in System V. 2.8.4 _F_s_c_k_,__f_s_d_b_,__e_t_c_. A slightly improved version of _f_s_d_b, the interactive file system debugger under System III, is offered in System V. _F_s_c_k, the file system checker, has been augmented by _d_f_s_c_k, invoked by _c_h_e_c_k_a_l_l, which allows simultaneous file system checks on two different drives. Note that _d_f_s_c_k relies on the system being configured to use System V's multiple physical I/O buffer facility. Also, the use of _d_c_o_p_y to reorganize the file system for faster access (see below under _F_i_l_e _S_y_s_t_e_m) will contribute to faster checking. 4.1 added the -p option to _f_s_c_k, which applies default rules to preen file systems (usually on reboot), and incidentally allows concurrent checking of file systems on different disk arms to speed rebooting. This is retained in 4.1C. 4.1C and 4.2, unlike 4.1, but like System V, requires a reboot after _f_s_c_k modifies the root filesystem. In 4.1C and 4.2, unlike System V, the reboot is handled automatically. 2.8.5 _M_o_n_i_t_o_r_i_n_g__a_n_d__d_e_b_u_g_g_i_n_g System V provides various facilities inherited from System III for monitoring system activity and dealing with problems. An operating system profiling package is available which uses the pseudo-device /dev/prf to access the operating system and collect performance statistics by monitoring selected text addresses. Extensive error logging and reporting is performed by a daemon which accesses the /dev/error interface to the system error collection routines. These reports are often valuable in analyzing suspected hardware difficulties. - 21 - The _c_r_a_s_h program provides a reasonably clean interactive utility for debugging core images of the operating system after a crash. It may also be used to browse through a running system. 4.1C has _s_y_s_l_o_g to collect kernel error messages into /usr/adm/messages. Arrangements have also been made to send many error messages directly to the controlling terminal of the process that caused them. There are provisions for analyzing the state of the paging system after a crash with _a_n_a_l_y_z_e. There is a paper on debugging the kernel with _a_d_b that tells how to use numerous canned shell scripts to examine various tables. _A_d_b itself has the -k option for setting its memory maps appropriately for the kernel. 2.8.6 _A_c_c_o_u_n_t_i_n_g System V provides accounting software appropriate for a production system in the form of several tools used to create complex combined reports. The graphics facilities may be used to automatically produce charts showing various system parameters (disk reads and writes per head, number of swaps in and out, kernel buffer statistics, etc.). These have useful impact in justifying your facility to upper-level management. 4.1C has kernel hooks to collect similar accounting information (including paging statistics) but lacks the graphical output facilities. The facilities provided proved quite adequate for the purposes of actual system management in a non-billing environment, however. 3. Installation and Configuration The installation and configuration documents are sufficiently complete that few problems should be encountered when following their instructions. Known problems are noted below. 3.1 Installation Both systems are delivered in the traditional Unix format, viz. a set of half inch magnetic tapes containing copies of all the binaries, source code, and documentation, plus accompanying hardcopy documentation (Western Electric sells manuals ready for use, while Berkeley supplies duplication-quality masters). 4.2 will come with a console cassette and floppy, so it will no longer be necessary to hand-code initial bootstraps.