compare.E

jsq at ut-sally.UUCP jsq at ut-sally.UUCP
Sun Aug 14 14:13:43 AEST 1983





                                     - 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.



More information about the Comp.sources.unix mailing list