








       IInnssttaalllliinngg aanndd OOppeerraattiinngg 22..1111BBSSDD oonn tthhee PPDDPP--1111
                       JJuunnee 1133,, 11999955

                       _S_t_e_v_e_n _S_c_h_u_l_t_z
                   GTE Government Systems
                    112 Lakeview Canyon
                   Thousand Oaks CA 91362
                  sms@wlv.iipo.gtegsc.com


                          _A_B_S_T_R_A_C_T



          This  document  contains instructions for the
     installation and operation of the 2.11BSD  PDP-11|^
     UNIX|= system.

          It   discusses   procedures   for  installing
     2.11BSD UNIX on a PDP-11,  including  explanations
     of how to lay out file systems on available disks,
     how to set up terminal lines  and  user  accounts,
     how  to  do  system-specific tailoring, and how to
     install and configure the  networking  facilities.
     Finally,  the  document  details  system operation
     procedures: shutdown and startup,  hardware  error
     reporting and diagnosis, file system backup proce-
     dures, resource control,  performance  monitoring,
     and  procedures  for  recompiling and reinstalling
     system software.

          The  ``bugs''  address  supplied  with   this
     release will work for some unknown period of time;
     make sure the ``Index:'' line of  the  bug  report
     indicates  that  the  release is ``2.11BSD''.  See
     the _s_e_n_d_b_u_g(8)  program  for  more  details.   All
     fixes that I make, or that are sent to me, will be
     posted   on   _U_S_E_N_E_T,   in    the    news    group
     ``comp.bugs.2bsd''.








-----------
|^ DEC,  PDP-11,  VAX, IDC, SBI, UNIBUS and MASSBUS
  are trademarks of Digital Equipment Corporation.
|= UNIX is a Trademark of Bell Laboratories.



                        17 March 1998





setup.2.11 - 2Installing and Operating 2.11BSD on the PDP-11


                      11.. IINNTTRROODDUUCCTTIIOONN



     This  document explains how to install 2.11BSD UNIX for
the PDP-11 on your system.  This document has  been  revised
several  times  since  the  first  release  of 2.11BSD, most
recently in July 1995 to reflect the addition of disk labels
to the system.  The format of the bootable tape has changed.
There is now a standalone ddiisskkllaabbeell program present.   While
the  system call interface is the same as that of 2.10.1BSD,
a full bootstrap from  the  distribution  tape  is  required
because  the  filesystem  has  changed  to  allow file names
longer than 14 characters.  Also, the 3  byte  block  number
packing  scheme  used  by  earlier  versions of UNIX for the
PDP-11 has been eliminated.  Block numbers are always 4 byte
lloonnggss now.

     The  procedure  for performing a full bootstrap is out-
lined in chapter 2.  The process  includes  copying  a  root
file  system from the distribution tape into a new file sys-
tem, booting that root  filesystem,  and  then  reading  the
remainder  of  the  system  binaries  and  sources  from the
archives on the tapes.

     As 2.11BSD is not compatible at  the  filesystem  level
with  previous  versions  of UNIX on the PDP-11, any upgrade
procedure is essentially a full bootstrap.  There is a  lim-
ited  ability  to  access  old filesystems which may be used
after the system partitions have been  loaded  from  a  full
bootstrap.  It is desirable to recompile most local software
after the conversion, as there are changes  and  performance
improvements in the standard libraries.

     Binaries  from  2.10.1BSD which do not read directories
or inode structures may be used but should be recompiled  to
pick  up  changes in the standard libraries.  Note too, that
the portable ASCII format of _a_r(1) archives is now in  place
-  any  local  archive files will have to be converted using
_/_u_s_r_/_o_l_d_/_a_r_c_v.

11..  HHaarrddwwaarree ssuuppppoorrtteedd

     This distribution can be booted on a PDP-11 with 1Mb of
memory or more|^, separate I&D, and with any of the following
disks:



-----------
|^ 2.11BSD  would  probably only require a moderate
  amount of squeezing to fit on machines with less
  memory,  but it would also be very unhappy about
  the prospect.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 3


     RK06, RK07
     Any MSCP disk, including but not limited to: RD53, RD54, RA81, RZ2x
     RM03, RM05
     RP04, RP05, RP06
     Many other SMD disks, for example: CDC 9766, Fuji 160, Fuji Eagle



     Other  disks are supported (RX23, RX33, RX50, RD51) but
are not large enough to hold a root filesystem plus  a  swap
partition.   The  old  restriction  of  using RL02 drives in
pairs has been lifted.  It is now possible to define a  root
('a') partition and a swap partition ('b') and load at least
the root filesystem to a single RL02.  Discs which  are  too
small  to hold even a root filesystem (floppies for example)
may be used as data disks or as standalone boot  media,  but
are not useable for loading the distribution.  Others, while
listed above, are not very well suited to loading  the  dis-
tribution.  The RK06/07 drives are hard pressed to even hold
the system binaries, much less the sources.

     The tape drives supported by this distribution are:


     TS11, TU80, TK25
     TM11, AVIV 6250/1600
     TE16, TU45, TU77
     TK50, TU81, TU81+, TZ30


Although 2.11BSD contains a kernel level floating point sim-
ulator, it has never been tested.  In fact it would not even
compile/assemble without  errors!   That  problem  has  been
fixed  but  it  is  still  not  know if the simulator works,
KDJ-11 based systems have builtin floating point so the sim-
ulator  can  not  be tested.  At the release of 2.10BSD some
thought was given to the possibility of lifting the separate
I&D  restriction, but that thought has languished.  The work
will never be done.  As time passes more and  more  programs
have become almost too large even with separate I&D.

22..  DDiissttrriibbuuttiioonn ffoorrmmaatt

     The basic distribution contains the following items:

     (2)   1600bpi 2400' magnetic tapes, or
     (2)   TK25 tape cartridges, or
     (1)   TK50 tape cartridge, and
     (1)   Hardcopy of this document,
     (1)   Hardcopy of the _C_h_a_n_g_e_s _i_n _2_._1_1_B_S_D document,
     (1)   Hardcopy of the 2.11BSD /README and /VERSION files, and
     (1)   Hardcopy of manual pages from sections 4, and 8.

Installation  on  any  machine  requires a tape unit.  Since



                        17 March 1998





setup.2.11 - 4Installing and Operating 2.11BSD on the PDP-11


certain standard PDP-11  packages  do  not  include  a  tape
drive,  this  means  one must either borrow one from another
PDP-11 system or one must be purchased separately.

     TThhee ddiissttrriibbuuttiioonn  ddooeess  nnoott  ffiitt  oonn  sseevveerraall  ssttaannddaarrdd
PPDDPP--1111  ccoonnffiigguurraattiioonnss  tthhaatt  ccoonnttaaiinn  oonnllyy ssmmaallll ddiisskkss.  If
your hardware configuration does not  provide  at  lleeaasstt  7755
Megabytes  of disk space you can still install the distribu-
tion, but you will probably have to operate  without  source
for  the  user  level commands and, possibly, the source for
the operating system.

     The root file system now occupies aa mmiinniimmuumm ooff 44MMbb.  If
at all possible a larger, 6 or 7Mb, root partition should be
defined when using the standalone ddiisskkllaabbeell program.

     If you have the facilities, it is a good idea  to  copy
the  magnetic  tape(s)  in  the  distribution  kit  to guard
against disaster.  The tapes are 9-track 1600 BPI,  TK50  or
TK25  cartridges and contain some 512-byte records, followed
by some  1024-byte  records,  followed  by  many  10240-byte
records.   There are interspersed tape marks; end-of-tape is
signaled by a double end-of-file.

     The basic bootstrap material is present  in  six  short
files at the beginning of the first tape.  The first file on
the tape contains preliminary bootstrapping programs.   This
is  followed  by  several  standalone  utilities (_d_i_s_k_l_a_b_e_l,
_m_k_f_s(8), _r_e_s_t_o_r(8), and _i_c_h_e_c_k(8)|^) followed by a full  dump
of  a  root  file  system (see _d_u_m_p(8)).  Following the root
file system dump is a tape archive image of //uussrr except  for
//uussrr//ssrrcc  (see  _t_a_r(1)).   Finally, a tape archive of source
for include files and kernel source  ends  the  first  tape.
The  second  tape contains a tape archive image, also in _t_a_r
format, of all the remaining source that comes with the sys-
tem.

     The  entire distribution (barely) fits on a single TK50
cartridge, references to the second tape should  be  treated
as  being the 9th file on the TK50.  Many of the programs in
/usr/src/new have been tar+compress'd in order to  keep  the
distribution to a single tape.








-----------
|^ References of the form X(Y) mean the  subsection
  named  X  in  section Y of the UNIX programmer's
  manual.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 5


TAPE 1:

Tape file   Record size   Records|^   Contents
---------------------------------------------------------------------------------------
    0            512           1     primary tape boot block
                 512           1     boot block (some tape boot ROMs go for this copy)
                 512          69     standalone bboooott program
    1           1024          37     standalone ddiisskkllaabbeell
    2           1024          33     standalone mmkkffss(8)
    3           1024          35     standalone rreessttoorr(8)
    4           1024          32     standalone iicchheecckk(8)
    5          10240         285     _d_u_m_p of ``root'' file system
    6          10240        3368     _t_a_r dump of /usr, excepting /usr/src
    7          10240         519     _t_a_r dump of /usr/src/include and /usr/src/sys


TAPE 2:

Tape file   Record size   Records|^   Contents
-------------------------------------------------------------------------------------
    0          10240        4092     _t_a_r dump of /usr/src, excepting include and sys



33..  UUNNIIXX ddeevviiccee nnaammiinngg

     UNIX has a set of names for devices which are different
from the DEC names for the devices.

The disk and tape names used by the bootstrap and the system
are:


     RK06, RK07 disks                  hk
     RL01, RL02 disks                  rl
     RK05                              rk
     MSCP disks                        ra
     RM02/03/05                        xp
     RP04/05/06                        xp
     SMD disks                         xp
     TM02/03, TE16, TU45, TU77 tapes   ht
     TE10/TM11 tapes                   tm
     TS11 tapes                        ts
     TMSCP tapes                       tms


Additionally,  the  following  non-DEC devices are also sup-
ported:


-----------
|^ The  number  of  records  in  each tape file are
  approximate and do not necessarily correspond to
  the actual number on the tape.



                        17 March 1998





setup.2.11 - 6Installing and Operating 2.11BSD on the PDP-11


     SI 9500, CDC 9766                     si
     SI, CDC 9775                          xp
     SI6100, Fujitsu Eagle 2351A           xp
     Emulex SC01B or SI9400, Fujitsu 160   xp
     Emulex SC-21, xp


The generic SMD disk driver, _x_p, will handle most  types  of
SMD  disks  on one or more controllers (even different types
on the same controller).  The xxpp driver handles RM03,  RM05,
RP04,  RP05  and   RP06  disks on DEC, Emulex, Dilog, and SI
UNIBUS or MASSBUS controllers.

     MSCP disks and TMSCP tapes include SCSI drives attached
to  the  RQZX1  controller on the PDP-11/93.  MSCP disks and
TMSCP tapes also include SCSI drives attached to the  Emulex
UC07  or  UC08 Q-BUS controllers on Q-bus systems as well as
the UC17 and UC18 controllers on UNIBUS systems.

     The standalone system used to bootstrap the  full  UNIX
system uses device names of the form:

     _x_x(_c,_y,_z)

where  _x_x is one of hhkk, hhtt, rrkk, rrll, ttmm, ttss, ttmmss, or xxpp.  The
value _c specifies the controller number (0-3).   This  value
is  usually not explicitly given.  The default is 0 if boot-
ing from the standard (first) CSR of a device.

     Example: if there are two MSCP controllers in the  sys-
tem  addressed  as  0172150 and 0172154 respectively booting
from the controller at 172154 requires that _c be given as 1.
Booting  from  the  standard CSR of 0172150 would be done by
specifying _c as 0 or omitting the _c parameter.   bboooott  auto-
matically detects if the first (standard) CSR is being used.
All future references will ignore the _c parameter by  assum-
ing the default value.

     The  value _y specifies the device or drive unit to use.
The _z value is interpreted differently for tapes and  disks:
for  disks it is a partition number (0 thru 7) corresponding
to partitions 'a' thru 'h' respectively.  This should always
be  zero  unless  you  rreeaallllyy  know what you are doing.  The
ability to load a kernel from the swap area is  planned  for
the  future  but does not presently exist.  For tapes _z is a
file number on the tape.|^











                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 7


     In all simple cases, a drive with unit number 0 (deter-
mined  either  by  a unit plug on the front of the drive, or
jumper settings on the drive or controller) will  be  called
unit 0 in its UNIX file name.  file name.  If there are mul-
tiple controllers, the drive unit numbers will  normally  be
counted  within  each  controller.   Thus  drives on the the
first controller are numbered 0 thru 7  and  drives  on  the
second  controller  are  numbered  0 thru 7 on controller 1.
Returning to the discussion of the standalone system, recall
that tapes also took two integer parameters.  In the case of
a TE16/TU tape formatter on drive 0, the files on  the  tape
have  names  ``ht(0,0)'',  ``ht(0,1)'',  etc.  Here ``file''
means a tape file containing a single data stream  separated
by  a  single  tape  mark.  The distribution tapes have data
structures in the tape files and though the first tape  con-
tains  only  7 tape files, it contains several thousand UNIX
files.

     Each UNIX physical disk is divided into 8 logical  disk
partitions,  each of which may occupy any consecutive cylin-
der range on the physical device.  While overlapping  parti-
tions  are  allowed they are not a good idea, being an acci-
dent waiting to happen (making one filesystem  will  destroy
the  other overlapping filesystems).  The cylinders occupied
by the 8 partitions for each drive type are specified by the
disk label read from the disk.

-----------
|^ NNoottee:: that while a tape file consists of a  sin-
  gle  data  stream, the distribution tape(s) have
  data structures in these  files.   Although  the
  first tape contains only 8 tape files, they com-
  prise several thousand UNIX files.
  NNoottee:: The standalone tape drive unit  number  is
  specially  encoded  to  specify both unit number
  and tape density (BPI).   Most  tape  subsystems
  either  automatically  adjust to tape density or
  have switches on the drives to force the density
  to  a  particular  setting,  but for those which
  don't the following  density  select  mechanisms
  may  be  necessary.   The  ttss  only  operates at
  1600BPI, so there is  no  special  unit  density
  encoding.   The hhtt will operate at either 800BPI
  or 1600BPI.  Units 0 through 3 corresponding  to
  800BPI,  and  Units 4 through 7 corresponding to
  1600BPI on drives 0 through 3 respectively.  The
  standard  DEC ttmm only supports 800BPI (and hence
  can't be  used  with  the  2.11BSD  distribution
  tape), but several widely used ttmm emulators sup-
  port 1600BPI and even 6250BPI.  Units 0  through
  3  corresponding  to  800BPI,  Units 4 through 7
  corresponding to 1600BPI, and Units 8 through 11
  corresponding  to  6250BPI on drives 0 through 3
  respectively.



                        17 March 1998





setup.2.11 - 8Installing and Operating 2.11BSD on the PDP-11


     If  no  label  exists the disk will not be bootable and
while the kernel attempts not to damage unlabeled disks  (by
swapping  to  or  doing  a  crash dump on a live filesystem)
there is a chance that filesystem damage will  result  if  a
kernel is loaded from an unlabeled disk.

     The  standalone ddiisskkllaabbeell program is used to define the
partition tables.  Each partition may be used  either  as  a
raw  data  area (such as a swapping area) or to store a UNIX
file system.  It is mandatory for the first partition  on  a
disk  to  start at sector offset 0 because the 'a' partition
is used to read and write the label (which is at the  begin-
ning  of the disk).  If the drive is to be used to bootstrap
a UNIX system then the 'a' partition must be of type 22..1111BBSSDD
(FS_V71K  in  _d_i_s_k_l_a_b_e_l_._h)  and at least 4Mb is size.  A 'b'
partition of at least 2-3Mb (4Mb is a good choice  if  space
is  available)  for  swapping is also needed.  If a drive is
being used solely for data then that drive need not  have  a
'b'  (swap)  partition but partition 'a' must still span the
first part of the disk.  The second partition is used  as  a
swapping  area,  and  the  rest  of the disk is divided into
spaces for additional ``mounted file systems'' by use of one
or more additional partitions.

     The third ('c') logical partition of each physical disk
also has a conventional  usage:  it  allows  access  to  the
entire  physical device, including the bad sector forwarding
information recorded at the end of the disk (one track  plus
126  sectors).   It  is  occasionally used to store a single
large file system or to access the entire pack when making a
copy  of  it on another.  Care must be taken when using this
partition not to overwrite the last few tracks  and  thereby
destroying the bad sector information.

     Unfortunately  while  the  drivers can follow the rules
above the entries in _/_e_t_c_/_d_i_s_k_t_a_b (_d_i_s_k_t_a_b(5)) do not.   The
entries  in  _/_e_t_c_/_d_i_s_k_t_a_b are translations of the old parti-
tion tables which used to be embedded in the device  drivers
and  are thus probably not suitable for use without editing.
In some cases it may be that the 8th ('h') partition is used
for  access  to  the entire disk rather than the third ('c')
partition.   Caution  should  be  observed  when  using  the
_n_e_w_f_s(8) and _d_i_s_k_l_a_b_e_l(8) commands.

44..  UUNNIIXX ddeevviicceess:: bblloocckk aanndd rraaww

     UNIX  makes a distinction between ``block'' and ``raw''
(character) devices.  Each disk has a block device interface
where  the  system makes the device byte addressable and you
can write a single byte in the middle of the disk.  The sys-
tem  will read out the data from the disk sector, insert the
byte you gave it and put the modified data back.  The  disks
with  the names ``/dev/xx0a'', etc are block devices.  There
are also raw  devices  available.   These  have  names  like



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 9


``/dev/rxx0a'',  the  ``r''  here standing for ``raw''.  Raw
devices bypass the buffer cache and use DMA directly to/from
the  program's  I/O buffers; they are normally restricted to
full-sector transfers.  In the bootstrap procedures we  will
often  suggest  using the raw devices, because these tend to
work faster.  Raw devices are used when making new  filesys-
tems,  when  checking  unmounted filesystems, or for copying
quiescent filesystems.  The block devices are used to  mount
file systems, or when operating on a mounted filesystem such
as the root.

     You should be aware  that  it  is  sometimes  important
whether  to use the character device (for efficiency) or not
(because it wouldn't work, e.g. to write a  single  byte  in
the  middle  of a sector).  Don't change the instructions by
using the wrong type of device indiscriminately.

     The standalone ddiisskkllaabbeell program must be used to  alter
the  'a'  and  'b'  partitions  of  a drive being used for a
bootable system.  This is because the kernel will not permit
an  open  partition  to change size or offset.  The root and
and swap partitions are aallwwaayyss open when the kernel is  run-
ning.


































                        17 March 1998





setup.2.11 - 10Installing and Operating 2.11BSD on the PDP-11


                   22.. BBOOOOTTSSTTRRAAPP PPRROOCCEEDDUURREE



     This  section explains the bootstrap procedure that can
be used to get the kernel supplied  with  this  distribution
running on your machine.  It is mandatory to do a full boot-
strap since the filesystem has  changed  from  2.10.1BSD  to
2.11BSD.

     The  safest  route is to use _t_a_r(1) to dump all of your
current file systems, do a full  bootstrap  of  2.11BSD  and
then  restore user files from the backups.  There is also an
untested version of _5_1_2_r_e_s_t_o_r(8) available for V7 sites that
need to read old dump tapes.

     It  is also desirable to make a convenient copy of sys-
tem configuration files for use as guides  when  setting  up
the  new  system;  the  list  of  files to save from earlier
PDP-11 UNIX systems, found in chapter 3, may be  used  as  a
guideline.

     2.11BSD  _r_e_s_t_o_r(8)  is  able  to read and automatically
convert to the new on disk directory  format  _d_u_m_p(8)  tapes
made under 2.9BSD, 2.10BSD and 2.10.1BSD.

22..11..  BBoooottiinngg ffrroomm ttaappee

     The  tape  bootstrap procedure used to create a working
system involves the following major steps:

1)   Load the tape bootstrap monitor.

2)   Create the partition tables on the disk  using  _d_i_s_k_l_a_-
     _b_e_l.

3)   Create a UNIX ``root'' file system system on disk using
     _m_k_f_s(8).

4)   Restore the full root file system using _r_e_s_t_o_r(8).

5)   Boot the UNIX system on the new root  file  system  and
     copy  the  appropriate _s_e_c_t_o_r _0 _b_o_o_t _b_l_o_c_k to your boot
     device.

6)   Build and restore the /usr file system from  tape  with
     _t_a_r(1).

7)   Restore the include and kernel sources from tape.

8)   Extract the remaining source from the second tape.

9)   Tailor a version of UNIX to your specific hardware (see
     section 4.2).



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 11


     Certain of these steps are dependent on  your  hardware
configuration.   If  your disks require formatting, standard
DEC diagnostic utilities will have to be used, they are  not
supplied on the 2.11BSD distribution tape.

22..11..11..  SStteepp 11:: llooaaddiinngg tthhee ttaappee bboooottssttrraapp mmoonniittoorr

     To  load  the  tape  bootstrap monitor, first mount the
magnetic tape on drive 0 at load point, making sure that the
write  ring  is not inserted.  Then use the normal bootstrap
ROM, console monitor or other bootstrap  to  boot  from  the
tape.

     NOTE:  The  boot  blocks  expect the CSR of the booting
controller in r0 and the unit number in  r1.   bboooott  may  be
booted from any controller or unit, the earlier restrictions
of controller 0 and unit 0 have been lifted.

     If no other means are available, the following code can
be  keyed in and executed at (say) 0100000 to boot from a TM
tape drive (the magic number 172526 is the  address  of  the
TM-11  current memory address register; an adjustment may be
necessary if your controller is at a nonstandard address):


     012700   (mov $unit, r0)
     000000   (normally unit 0)
     012701   (mov $172526, r1)
     172526
     010141   (mov r1, -(r1))
     012741   (mov $60003, -(r1))
     060003   (if unit 1 use 060403, etc)
     000777   (br .)


A toggle-in routine which has been used with a TS tape drive
(this should be entered at 01000):




















                        17 March 1998





setup.2.11 - 12Installing and Operating 2.11BSD on the PDP-11


     012700   mov $unit,r0
     000000
     012701   mov $172522,r1
     172522
     005011   clr (r1)
     105711   1b:tstb (r1)
     100376   bpl 1b
     012761   mov $setchr,-2(r1)
     001040
     177776
     105711   2b:tstb (r1)
     100376   bpl 2b
     012761   mov $read,-2(r1)
     001060
     177776
     000000   halt
     140004   setchr: TS_ACK|TS_CVC|TS_SETCHR
     001050   char
     000000   high order address
     000010   number of bytes
     001070   char: status
     000000
     000016
     000000
     140001   read: TS_ACK|TS_CVC|TS_READ
     000000   low order of address
     000000   high order of address
     001000   number of bytes to read
     000000   status:


When  this  is executed, the first block of the tape will be
read into memory.  Halt the CPU and restart at  location  0.
The  register  rr11  MMUUSSTT  be left pointing at the device _c_s_r.
For the default/first TM or TS this is 0172522.  The  regis-
ter rr00 MMUUSSTT contain the unit number (usually 0).

     The console should type

     _n_nBBoooott ffrroomm _x_x((_c_t_l_r,,_d_r_i_v_e,,_p_a_r_t)) aatt _c_s_r
     ::

where _n_n is the CPU type on which it believes it is running.
The value will be one of 23, 24, 40, 44, 45, 53, 60, 70, 73,
83,  84, 93 or 94 depending whether separate instruction and
data (separate I/D) and/or a UNIBUS map are  detected.   For
KDJ-11  systems  the System Maintenance Register is examined
to determine the cpu type.  At present 2.11BSD runs  on  the
44,  53,  70, 73, 83, 84, 93 and 94 oonnllyy.  It must be empha-
sized that 2.11BSD requires separate I/D.

_c_t_l_r is the controller number that BBoooott was loaded from.  It
is 0 unless booting from a non-standard CSR.




                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 13


_d_r_i_v_e is the drive unit number.

The  _p_a_r_t number is disk partition or tapefile number booted
from.  This will always be 0 for the tape BBoooott program.

_c_s_r is an octal number telling the  CSR  of  the  controller
from which BBoooott was loaded.


     You  are now talking to the tape bootstrap monitor.  At
any point in the following procedure you can return to  this
section,  reload  the  tape bootstrap, and restart.  Through
the rest of this section, substitute the correct  disk  type
for _d_k and the tape type for _t_p.

22..11..22..  SStteepp 22:: ccrreeaattiinngg tthhee ddiisskk llaabbeell

     The standalone _d_i_s_k_l_a_b_e_l program is then run:


     ::_t_p(0,1)                                       (_d_i_s_k_l_a_b_e_l is tape file 1)
     BBoooott:: bboooottddeevv==00nnnnnnnn bboooottccssrr==00mmmmmmmmmmmm
     ddiisskkllaabbeell
     DDiisskk?? _d_k(0,0)                                  (drive 0, partition 0)
     d(isplay) D(efault) m(odify) w(rite) q(uit)?
      ...
     ::                                              (back at tape boot level)


The _d_i_s_k_l_a_b_e_l program is meant to be fairly intuitive.  When
prompted with a line of choices entering the key just before
the left parenthesis selects the entry.

     If  there  is  an  existing label present on _d_k(0,0) it
will be used as the default.  To have _d_i_s_k_l_a_b_e_l create a new
default  based  on  its  idea of what the drive is select DD.
Then enter mm to modify/edit the label.

     The MSCP driver is quite  good  at  identifying  drives
because it can query the controller.  Other drivers (notably
the SMD (xxpp) driver) have to deal with a much wider range of
controllers  which do not all have the same capabilities for
drive identification.  When dealing with SMD drives you must
know  the  geometry of the drive so you can verify  and cor-
rect _d_i_s_k_l_a_b_e_l's choices.

     You can however, if using non-DEC SMD controllers, make
things easy for _d_i_s_k_l_a_b_e_l to determine what type of drive is
being used.  If your controller offers the  choice  of  RM02
emulation  you should select that choice.  The standalone xxpp
driver uses RM02 as the indication that drive identification
capabilities  not  offered  by  DEC controllers are present.
The driver will be able to determine  the  geometry  of  the
drive  in  this  case.    This  is  ooppttiioonnaall because you can



                        17 March 1998





setup.2.11 - 14Installing and Operating 2.11BSD on the PDP-11


explicitly specify all of the parameters to  the  standalone
_d_i_s_k_l_a_b_e_l program.

     A  full description of the standalone _d_i_s_k_l_a_b_e_l program
is in Appendix B of this document.

22..11..33..  SStteepp 33:: ccrreeaattiinngg aa UUNNIIXX ````rroooott'''' ffiillee ssyysstteemm

     Now create the root file  system  using  the  following
procedure.|^

     The  size  of the root ('a') filesystem was assigned in
step 2 (creating the disk label).  _m_k_f_s  will  not  allow  a
filesystem  to be created if there is not a label present or
if the partition size is 0.  _m_k_f_s looks at partition 0 ('a')
in the disklabel for the root file system size.

     Finally,  determine  the  proper interleaving factors _m
and _n for your disk.   Extensive  testing  has  demonstrated
that  the choice of _m is non critical (performance of a file
system varying only by 3 to 4% for a wide range  of  _m  val-
ues).   Values  for  _m  within  the  range from  2 to 5 give
almost identical performance.  Increasing _m too  much  actu-
ally causes degraded performance because the free blocks are
too far apart.  Slower processors (such as the  73  and  44)
may  want  to  start  with  a _m of 3 or 4, faster processors
(such as the 70 and 84) may start with a _m of 2  or  3.   On
the  other  hand,  the  _n value is moderately important.  It
should be the number of filesystem blocks contained  by  one
cylinder  of  the disk, calculated by dividing the number of
sectors per cylinder by 2, rounding down if  needed.   (This
is what _m_k_f_s does by default, based on the geometry informa-
tion in the disk label.)  These numbers determine the layout
of the free list that will be constructed; the proper inter-
leaving will help increase the speed of the file system.

     The number of  bytes  per  inode  determines  how  many
inodes  will be allocated in the filesystem.  The default of
4096 bytes per inode is normally enough (resulting in  about
2000  inodes  for  a 8mb root filesystem and 1000 inodes for
-----------
|^ NNoottee::  These  instructions  have changed quite a
  bit during the  evolution  of  the  system  from
  2.10.1BSD.  Previously, if the disk on which you
  are creating a root file system was an  xxpp  disk
  you  would  have  been  asked to check the drive
  type register and possibly halt the processor to
  patch  a  location  (hopefully before the driver
  accessed the drive).  TThhiiss iiss nnoo lloonnggeerr  nneeeeddeedd.
  All   geometry   and  partition  information  is
  obtained from the disklabel created in  step  2.
  We  also  used  to give tables of mm and nn values
  for various disks, which are now purposely omit-
  ted.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 15


the 4mb distribution ``generic'' root filesystem).  If  more
inodes  are desired then a lower value (perhaps 3072) should
be specified when prompted  for  the  number  of  bytes  per
inode.

     Then  run  the  standalone version of the _m_k_f_s (8) pro-
gram.  The values in square brackets at the size  prompt  is
the  default  from  the  disklabel.   Simply hit a return to
accept the default.  _m_k_f_s will allow you to create a smaller
filesystem  but  you  can not enter a larger number than the
one in brackets.  In the following procedure, substitute the
correct  types  for  _t_p and _d_k and the size determined above
for _s_i_z_e:


     ::_t_p(0,2)                                   (_m_k_f_s is tape file 2)
     BBoooott:: bboooottddeevv==00nnnnnnnn bboooottccssrr==00mmmmmmmmmmmm
     MMkkffss
     ffiillee ssyysstteemm:: _d_k(0,0)                       (root is the first file system on drive 0)
     ffiillee ssyysstteemm ssiizzee:: [NNNN] _s_i_z_e              (count of 1024 byte blocks in root)
     bbyytteess ppeerr iinnooddee:: [4096] _b_y_t_e_s              (number of bytes per inode)
     iinntteerrlleeaavviinngg ffaaccttoorr ((mm,, 22 ddeeffaauulltt)):: _m      (interleaving, see above)
     iinntteerrlleeaavviinngg mmoodduulluuss ((nn,, 112277 ddeeffaauulltt)):: _n   (interleaving, see above)
     iissiizzee == XXXX                                 (count of inodes in root file system)
     mm//nn == _m _n                                  (interleave parameters)
     EExxiitt ccaalllleedd
     _n_nBBoooott
     ::                                          (back at tape boot level)



The number nnnnnnnn is the device number  of  the  device  (high
byte is the major device number and the low byte is the unit
number).  The mmmmmmmmmmmm number is the CSR of the device.   This
information  is  mainly  used  as  a  reminder  and diagnos-
tic/testing purposes.

You now have an empty UNIX root file system.

22..11..44..  SStteepp 44:: rreessttoorriinngg tthhee rroooott ffiillee ssyysstteemm

     To restore the root file system onto it, type















                        17 March 1998





setup.2.11 - 16Installing and Operating 2.11BSD on the PDP-11


     ::_t_p(0,3)                                 (_r_e_s_t_o_r is tape file 3)
     BBoooott:: bboooottddeevv==00nnnnnnnn bboooottccssrr==00mmmmmmmmmmmm
     RReessttoorr
     TTaappee?? _t_p(0,5)                            (root _d_u_m_p is tape file 5)
     DDiisskk?? _d_k(0,0)                            (into root file system)
     LLaasstt cchhaannccee bbeeffoorree ssccrriibbbblliinngg oonn ddiisskk..   (type a carriage return to start)
     ""EEnndd ooff ttaappee""                            (appears on same line as message above)
     EExxiitt ccaalllleedd
     _n_nBBoooott
     ::                                        (back at tape boot level)


     This takes about 8 minutes with a TZ30 on a 11/93 and about 15 minutes using
     a TK50 on a 11/73.

If you wish, you may use the _i_c_h_e_c_k  program  on  the  tape,
_t_p(0,4),  to  check  the  consistency of the file system you
have just installed.  This has rarely  been  useful  and  is
mostly for the voyeuristic.

22..11..55..  SStteepp 55:: bboooottiinngg UUNNIIXX

     You are now ready to boot from disk.  Type:


     ::_d_k(0,0)unix                          (bring in unix from the root system)
     BBoooott:: bboooottddeevv==00nnnnnnnn bboooottccssrr==00mmmmmmmmmmmm


The  standalone  boot  program  will then load unix from the
root file system you just created,  and  the  system  should
boot:

     22..1111BBSSDD BBSSDD UUNNIIXX ##11:: SSaatt JJuull 44 0011::3333::0033 PPDDTT 11999922
         rroooott@@wwlloonneexx..iiiippoo..ggtteeggsscc..ccoomm:://uussrr//ssrrcc//ssyyss//GGEENNEERRIICC
     pphhyyss mmeemm  == _?_?_?
     aavvaaiill mmeemm == _?_?_?
     uusseerr mmeemm  == _?_?_?

     ccoonnffiigguurree ssyysstteemm
     _._._. _i_n_f_o_r_m_a_t_i_o_n _a_b_o_u_t _a_v_a_i_l_a_b_l_e _d_e_v_i_c_e_s _._._.
     (Information about various devices will print;
     most of them will probably not be found until
     the addresses are set below.)
     eerraassee==^^??,, kkiillll==^^UU,, iinnttrr==^^CC
     ##


     UNIX  itself then runs for the first time and begins by
printing out a banner identifying the release and version of
the system that is in use and the date that it was compiled.

     Next the _m_e_m messages give the amount of  real  (physi-
cal) memory, the amount of memory left over after the system



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 17


has allocated various data structures,  and  the  amount  of
memory available to user programs in bytes.

     The  information about different devices being attached
or not being found is produced by the _a_u_t_o_c_o_n_f_i_g(8) program.
Most  of this is not important for the moment, but later the
device table, _/_e_t_c_/_d_t_a_b, can be edited to correspond to your
hardware.   However,  the  tape  drive  of  the correct type
should have been detected and attached.

     The ``erase ...'' message is part of /.profile that was
executed by the root shell when it started.  This message is
present to remind you that the character erase, line  erase,
and interrupt characters are set to what is standard for DEC
systems; this insures that things are  consistent  with  the
DEC console interface characters.

     UNIX  is  now running single user on the installed root
file system, and the  `UNIX  Programmer's  Manual'  applies.
The  next  section tells how to complete the installation of
distributed software on the /usr file system.   The  `#'  is
the  prompt  from  the shell, and lets you know that you are
the super-user, whose login name is ``root''.

     The disk with the new root file system on it  will  not
be bootable directly until the block 0 bootstrap program for
your disk has been installed.  There are copies of the boot-
straps  in  /mdec.   Use  _d_d(1) to copy the right boot block
onto block 0 of the disk.

     ## dd if=/mdec/_b_o_o_t of=/dev/r_d_k0a count=1

Block zero bootstraps and the devices they support are:


     boot        driver   devices
     -------------------------------------------------------------------------
     hkuboot     hk       RK06/07
     rauboot     ra       All RA, RD, RZ, RX (except RX01,02) and RC25 drives
     rkuboot     rk       RK05
     rluboot     rl       RL01/02
     si95uboot   si       SI 9500, CDC 9766
     dvhpuboot   xp       Diva Comp V, Ampex 9300
     hpuboot     xp       RP04/05/06
     rm03uboot   xp       RM03
     rm05uboot   xp       RM05 or SI 9500, CDC 9766
     si51uboot   xp       SI 6100, Fujitsu Eagle 2351A
     si94uboot   xp       Emulex SC01B/SC03B or SI 9400, Fujitsu 160


NNOOTTEE:: If none of the above are correct (most likely  with  a
SMD drive with differing geometry) then you will have to use
a tape/floppy boot proceedure rather than a sector  0  boot-
block.   This can be fixed by creating a customized sector 0



                        17 March 1998





setup.2.11 - 18Installing and Operating 2.11BSD on the PDP-11


boot program once the system sources have been loaded.

     Once this is done, booting from this disk will load and
execute  the  block  0  bootstrap,  which  will in turn load
/boot.  //bboooott will print on the console:


     _n_nBBoooott ffrroomm _d_k((_c_t_l_r,,_u_n_i_t,,_p_a_r_t)) aatt _c_s_r
     :


The bootblock automatically loads and runs /_b_o_o_t for you; if
/_b_o_o_t  is not found, the system will hang/loop forever.  The
block 0 program is very small (has to fit in 512 bytes)  and
simple  program, however, and can only boot the second-stage
boot from the first file system.  Once /boot is running  and
prints its ``: '' prompt, boot unix as above.

     As  distributed  /_b_o_o_t will load _d_k(0,0)unix by default
if a carriage return is typed at the :: prompt.

     NNOOTTEE:: NONE the primary  bootstraps  have  a  prompt  or
alternate program name capability because of space consider-
ations.  No diagnostic message results if the file cannot be
found.

22..11..66..  SStteepp 66:: sseettttiinngg uupp tthhee //uussrr ffiillee ssyysstteemm

     First set a shell variable to the name of your disk, so
the commands used later will work regardless of the disk you
have; do one of the following:


     ## disk=hk   (if you have RK06's or RK07's)
     ## disk=rl   (if you have RL01's or RL02's)
     ## disk=ra   (if you have an MSCP drive)
     ## disk=xp   (if you have an RP06, RM03, RM05, or other SMD drive)



     The next thing to do is to extract the rest of the data
from the tape.  You might wish to review the disk configura-
tion  information in section 4.3 before continuing; you will
have to select a partition to restore the /usr  file  system
into  which  is  at least 2255 Megabytes in size (this is just
barely enough for the system binaries and such and leaves no
room for the system source.)|^
-----------
|^ NNoottee::  Previously  a  lengthy table of partition
  names organized by specific disk type was given.
  With  the  introduction of disklabels this is no
  longer necessary (or possible  since  each  site
  can  select  whatever  partitioning  scheme they
  desire).  In step 2 (creating the  disklabel)  a



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 19


     In the command below _p_a_r_t is the partition  name  (a-h)
for the partition which will hold /usr.


     nnaammee==$${{ddiisskk}}00$${{ppaarrtt}}


Next, find the tape you have in the following table and exe-
cute the commands in the right hand portion of the table:


     DEC TM02/03, TE16/TU45/TU77   ## cd /dev; rm *mt*; ./MAKEDEV ht0; sync
     DEC TS11, TK25/TU80/TS05      ## cd /dev; rm *mt*; ./MAKEDEV ts0; sync
     DEC TM11, TU10/TE10/TS03      ## cd /dev; rm *mt*; ./MAKEDEV tm0; sync
     DEC TMSCP, TK50/TZ30/TU81     ## cd /dev; rm *mt*; ./MAKEDEV tu0; sync
     EMULEX TC11                   ## cd /dev; rm *mt*; ./MAKEDEV tm0; sync


Then execute the following commands:



     ## date _y_y_m_m_d_d_h_h_m_m                                (set date, see _d_a_t_e(1))
     ....
     ## passwd root                                    (set password for super-user)
     NNeeww ppaasssswwoorrdd::                                    (password will not echo)
     RReettyyppee nneeww ppaasssswwoorrdd::
     ## hostname _m_y_s_i_t_e_n_a_m_e                            (set your hostname)
     ## newfs ${name}                                  (create empty user file system)
     (this takes a minute)
     ## mount /dev/${name} /usr                        (mount the usr file system)
     ## cd /usr                                        (make /usr the current directory)
     ## mt rew
     ## mt fsf 6
     ## tar xpbf 20 /dev/rmt12                         (extract all of usr except usr/src)
     (this takes about 15-20 minutes except for the
     TK50 and TZ30 which are mmuucchh slower)


The data on the seventh tape file has  now  been  extracted.
All  that  remains on the first tape is a small archive con-
taining source for the kernel and include files.

     If you have an existing/old password file to be  merged
back  into  2.11BSD,  special steps are necessary to convert
the old password file to the  shadow  password  file  format
(shadow  password  file  and password aging were ported from
4.3BSD and are standard in 2.11BSD ).

-----------
  partition should have been created for _/_u_s_r.  If
  this was not done then it may be easier to  per-
  form  step  2  now  than to use the more complex
  _d_i_s_k_l_a_b_e_l(8) program and _e_d(1).



                        17 March 1998





setup.2.11 - 20Installing and Operating 2.11BSD on the PDP-11


     ## mt -f /dev/rmt12 fsf                        (position tape at beginning of next tape file)
     ## mkdir src                                   (make directory for source)
     ## cd src                                      (make /usr/src the current directory)
     ## tar xpbf 20 /dev/rmt12                      (extract the system and include source)
     (this takes about 5-10 minutes)
     ## cd /                                        (back to root)
     ## chmod 755  /  /usr  /usr/src /usr/src/sys
     ## rm -f sys
     ## ln -s usr/src/sys sys                       (make a symbolic link to the system source)
     ## umount /dev/${name}                         (unmount /usr)



     The first tape has been been  completely  loaded.   You
can check the consistency of the /usr file system by doing

     ## fsck /dev/r${name}

The output from _f_s_c_k should look something like:

     **** //ddeevv//rr_x_x00gg
     FFiillee SSyysstteemm:: //uussrr

     NNEEEEDD SSCCRRAATTCCHH FFIILLEE ((117799 BBLLKKSS))
     EENNTTEERR FFIILLEENNAAMMEE::  //ttmmpp//xxxxxx
     **** LLaasstt MMoouunntteedd oonn //uussrr
     **** PPhhaassee 11 -- CChheecckk BBlloocckkss aanndd SSiizzeess
     **** PPhhaassee 22 -- CChheecckk PPaatthhnnaammeess
     **** PPhhaassee 33 -- CChheecckk CCoonnnneeccttiivviittyy
     **** PPhhaassee 44 -- CChheecckk RReeffeerreennccee CCoouunnttss
     **** PPhhaassee 55 -- CChheecckk FFrreeee LLiisstt
     667711 ffiilleess,, 33449977 uusseedd,, 113377006677 ffrreeee


     If  there  are  inconsistencies in the file system, you
may be prompted to apply corrective action; see the document
describing _f_s_c_k for information.

     To  use the /usr file system, you should now remount it
by saying

     ## mount /dev/${name} /usr


22..11..77..  SStteepp 77:: eexxttrraaccttiinngg rreemmaaiinniinngg ssoouurrccee ffrroomm tthhee  sseeccoonndd
ttaappee

     You  can  then extract the source code for the commands
from  the  second  distribution tape|^ (with the exception of
RK07's, RM03's, and RD52's and other small disks  this  will
fit in the /usr file system):
-----------
|^ On the TK50 the remaining source is the 9th file
  on the cartridge.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 21


     ## cd /usr/src
     ## tar xpb 20

If  you  get  an  error  at this point, most likely it was a
problem with tape positioning.  Rewind the tape and use  the
mmtt command to skip files, then retry the ttaarr command.

22..22..  AAddddiittiioonnaall ccoonnvveerrssiioonn iinnffoorrmmaattiioonn

     After  setting  up the new 2.11BSD filesystems, you may
restore the user files that were saved on tape before begin-
ning  the  conversion.  Note that the 2.11BSD _r_e_s_t_o_r program
does its work by accessing the raw file  system  device  and
depositing  inodes  in  the  appropriate  locations on disk.
This means that file system dumps  might  not  restore  cor-
rectly  if  the  characteristics  of  the  file  system have
changed (eg. if you're restoring a dump  of  a  file  system
into a file system smaller than the original.)  To restore a
dump tape for, say, the /u file system  something  like  the
following would be used:

     ## restor r /dev/rxp1e


     If _t_a_r images were written instead of doing a dump, you
should be sure to use the `p' option when reading the  files
back.   No matter how you restore a file system, be sure and
check its integrity with _f_s_c_k when the job is complete.

     _t_a_r tapes are preferred  (when  possible)  because  the
inode  allocation is performed by the kernel rather than the
_r_e_s_t_o_r(8) program.   This  has  the  benefit  of  allocating
inodes sequentially starting from the beginning of the inode
portion of the filesystem rather than preserving  the  frag-
mented/randomized order of the old filesystem.






















                        17 March 1998





setup.2.11 - 22Installing and Operating 2.11BSD on the PDP-11


              33.. UUPPGGRRAADDIINNGG AANN EEXXIISSTTIINNGG SSYYSSTTEEMM



     Begin  by  reading the document ``Changes to the System
in 2.11BSD'' to get an idea of how the system  changes  will
affect  your  local modifications.  If you have local device
drivers, see the file _/_s_y_s_/_O_T_H_E_R_S_/_R_E_A_D_M_E for hints on how to
integrate your drivers into 2.11BSD.

     The  only upgrade path to 2.11BSD is to do a full boot-
strap as described in Chapter 2.  As always, full backups of
the  existing  system should be made to guard against errors
or failures.  NNOOTTEE:: The old filesystems can not  be  mounted
by the new kernel.  If you must access old discs or filesys-
tems, there is a version  of  _d_u_m_p(8)  in  /usr/src/old/dump
which can be used with the rraaww disc to dump old filesystems.

     The archive file format has changed, the  4.3BSD  _a_r(5)
format  is  now  used.   Local archives will have to be con-
verted by the _/_u_s_r_/_o_l_d_/_a_r_c_v program.

33..11..  FFiilleess ttoo ssaavvee

     The following list enumerates the standard set of files
you will want to save and suggests directories in which site
specific files should be present.  Note that because 2.10BSD
changed  so  radically from previous versions of UNIX on the
PDP-11, many of these files may not exist  on  your  system,
and  will  almost  certainly  require  extensive changes for
2.11BSD, but it's still handy to have them around as  you're
configuring  2.11BSD.   This  list  will likely be augmented
with non-standard files you have added to your system.

     You should create a _t_a_r image of  (at  a  minimum)  the
following files before the new file systems are created.  In
addition, you should do a full dump  before  rebuilding  the
file  system  to  guard  against missing something the first
time around.  The 2.11BSD _r_e_s_t_o_r(8)  program  can  read  and
convert old _d_u_m_p(8) tapes.

















                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 23


     /.cshrc                |^   root csh startup script
     /.login                |^   root csh login script
     /.profile              |^   root sh startup script
     /.rhosts               |^   for trusted machines and users
     /dev/MAKEDEV           |=   in case you added anything here
     /dev/MAKEDEV.local     *   for making local devices
     /etc/disktab           *   in case you changed disk partition sizes
     /etc/dtab              |=   table of devices to attach at boot time
     /etc/fstab             |^   disk configuration data
     /etc/ftpusers          |^   for local additions
     /etc/gateways          |^   routing daemon database
     /etc/gettytab          |^   getty database
     /etc/group             |^   group data base
     /etc/hosts             |^   for local host information
     /etc/hosts.dir         *   must be rebuilt with mkhosts
     /etc/hosts.pag         *   must be rebuilt with mkhosts
     /etc/hosts.equiv       |^   for local host equivalence information
     /etc/networks          |^   for local network information
     /etc/netstart          *   site dependent network startup script
     /etc/passwd            *   must be converted to shadow password file format
     /etc/passwd.dir        *   must be rebuilt with mkpasswd
     /etc/passwd.pag        *   must be rebuilt with mkpasswd
     /etc/printcap          |^   line printer database
     /etc/protocols         |=   in case you added any local protocols
     /etc/rc                *   for any local additions
     /etc/rc.local          *   site specific system startup commands
     /etc/remote            |^   auto-dialer configuration
     /etc/services          |=   for local additions
     /etc/syslog.conf       |^   system logger configuration
     /etc/securettys        *   for restricted list of ttys where root can log in
     /etc/ttys              |^   terminal line configuration data
     /etc/ttytype           *   terminal line to terminal type mapping data
     /etc/termcap           |=   for any local entries that may have been added
     /lib                   |=   for any locally developed language processors
     /usr/dict/*            |=   for local additions to words and papers
     /usr/hosts/MAKEHOSTS   |^   for local changes
     /usr/include/*         |=   for local additions
     /etc/aliases           |^   mail forwarding data base
     /etc/crontab           |^   cron daemon data base
     /usr/share/font/*      |=   for locally developed font libraries
     /usr/lib/lib*.a        |^   for local libraries
     /usr/share/lint/*      |=   for locally developed lint libraries
     /etc/sendmail.cf       |^   sendmail configuration
     /usr/share/tabset/*    |=   for locally developed tab setting files
     /usr/share/term/*      |=   for locally developed nroff drive tables
     /usr/share/tmac/*      |=   for locally developed troff/nroff macros
     /etc/uucp/*            |^   for local uucp configuration files
     /usr/man/manl          *   for manual pages for locally developed programs
     /usr/msgs              |^   for current msgs
     /usr/spool/*           |^   for current mail, news, uucp files, etc.
     /usr/src/local         |^   for source for locally developed programs
     /sys/conf/HOST         |^   configuration file for your machine
     /sys/conf/files.HOST   |^   list of special files in your kernel
     /*/quotas              *   file system quota files



                        17 March 1998





setup.2.11 - 24Installing and Operating 2.11BSD on the PDP-11


     |^Files that can be used from 2.10BSD without change.
     |=Files that need local modifications merged into 2.11BSD files.
     *Files that require special work to merge and are discussed below.



33..11..11..  IInnssttaalllliinngg 22..1111BBSSDD

     The  next  step  is  to build a working 2.11BSD system.
This can be done by following the steps in section 2 of this
document  for extracting the root and /usr file systems from
the distribution tape onto unused disk partitions.

     Once you have extracted the 2.11BSD system  and  booted
from it, you will have to build a kernel customized for your
configuration.  If you have any local device  drivers,  they
will  have to be incorporated into the new kernel.  See sec-
tion 4.2.3 and ``Building 2.11BSD UNIX Systems.''

     With the introduction of disklabels the disk partitions
in  2.11BSD  the /etc/disktab file has changed dramatically.
There is a detailed description later in this chapter  about
the  changes.   If you have modified the partition tables in
previous versions of 2.11BSD you will need to create  a  new
disktab entry or modify an existing one.

33..22..   MMeerrggiinngg  yyoouurr  ffiilleess ffrroomm eeaarrlliieerr PPDDPP--1111 UUNNIIXX ssyysstteemmss
iinnttoo 22..1111BBSSDD

     When your system is booting reliably and you  have  the
2.11BSD  root and /usr file systems fully installed you will
be ready to continue with the next step  in  the  conversion
process, merging your old files into the new system.

     If you saved the files on a _t_a_r tape, extract them into
a scratch directory, say /usr/convert:

     ## mkdir /usr/convert
     ## cd /usr/convert
     ## tar x


     For sites running 2.10.1BSD, converting local  configu-
ration  files should be very simple.  In general very little
has changed between 2.10.1BSD and  2.11BSD  with  regard  to
these files.

     For  sites  running  a  pre-2.10BSD UNIX, there is very
little that can be said here as the variety of previous ver-
sions  of PDP-11 UNIX systems and how they were administered
is large.  As an example, most previous versions  of  PDP-11
UNIX  systems  used  the files _/_e_t_c_/_t_t_y_s and _/_e_t_c_/_t_t_y_t_y_p_e to
administer  which  terminals  should  have  login  processes
attached to them and what the types of terminals those were.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 25


Under 2.11BSD /etc/ttytype  has  disappeared  entirely,  its
functions subsumed by /etc/ttys along with several new func-
tions.  In general you will simply have to use your previous
configuration  files  as references as you configure 2.11BSD
to your site needs.  Familiarity with  4.3BSD  configuration
is  very helpful at this point since 2.11BSD is nearly iden-
tical in most of the files listed in the previous section.

     If you have any home  grown  device  drivers  that  use
major device numbers reserved by the system you will have to
modify the commands used to create the devices or alter  the
system device configuration tables in /sys/pdp/conf.c.  Note
that almost all 2.11BSD major device numbers  are  different
from those in previous PDP-11 UNIX systems except 2.10.1BSD.
A couple more device numbers were added since the release of
2.10.1BSD  for the kernel logging facility (/dev/klog) and a
(new) TK50/TU81 driver.

     System security  changes  require  adding  several  new
``well-known''  groups  to  /etc/group.  The groups that are
needed by the system as distributed are:


     name       number
     ------------------
     wheel        0
     daemon       1
     kmem         2
     sys          3
     tty          4
     operator     5
     staff        10
     bin          20


Only users in the ``wheel'' group are  permitted  to  _s_u  to
``root''.    Most   programs   that  manage  directories  in
/usr/spool now run set-group-id to ``daemon'' so that  users
cannot  directly  access the files in the spool directories.
The special files that access kernel memory,  _/_d_e_v_/_k_m_e_m  and
_/_d_e_v_/_m_e_m,  are  made readable only by group ``kmem''.  Stan-
dard system programs that require this access are made  set-
group-id  to  that  group.  The group ``sys'' is intended to
control access to system sources, and other  sources  belong
to  group  ``staff.''   Rather  than  make  user's terminals
writable by all users, they are now placed in group  ``tty''
and  made only group writable.  Programs that should legiti-
mately have access to write on user's terminals such as _t_a_l_k
and _w_r_i_t_e now run set-group-id to ``tty''.  The ``operator''
group controls access to disks.  By default, disks are read-
able  by group ``operator'', so that programs such as _d_f can
access the file system information without being set-user-id
to ``root''.




                        17 March 1998





setup.2.11 - 26Installing and Operating 2.11BSD on the PDP-11


     Several  new users have also been added to the group of
``well-known'' users in /etc/passwd.  The current list is:


     name       number
     ------------------
     root         0
     daemon       1
     operator     2
     uucp         66
     nobody     32767


The ``daemon'' user is used for daemon processes that do not
need  root  privileges.  The ``operator'' user-id is used as
an account for dumpers so that they can log in without  hav-
ing  the root password.  By placing them in the ``operator''
group, they can get read access to the disks.  The  ``uucp''
login  has  existed  long  before 2.11BSD, and is noted here
just to  provide  a  common  user-id.   The  password  entry
``nobody''  has  been  added  to specify the user with least
privilege.

     After   restoring   your   old   password   file   from
tape/backups,  a conversion is required to create the shadow
password file.  Only the steps to  convert  /etc/passwd  are
given  here,  see  the  various  man  pages  for  _c_h_p_a_s_s(1),
_v_i_p_w(8), _m_k_p_a_s_s_w_d(8), etc.

     ## awk -f /etc/awk.script < /etc/passwd >/etc/junk
     ## mkpasswd -p /etc/junk
     ## mv /etc/junk.orig /etc/passwd
     ## mv /etc/junk.pag /etc/passwd.pag
     ## mv /etc/junk.dir /etc/passwd.dir
     ## mv /etc/junk /etc/master.passwd
     ## chown root /etc/passwd* /etc/master.passwd
     ## chmod 0600 /etc/master.passwd


     The format of the cron table, /etc/crontab, is the same
as that of 2.10.1BSD.

     Some  of  the commands previously in /etc/rc.local have
been moved to /etc/rc; several new functions are now handled
by  /etc/rc.local.  You should look closely at the prototype
version of /etc/rc.local and read the manual pages  for  the
commands  contained  in it before trying to merge your local
copy.   Note  in  particular  that  _i_f_c_o_n_f_i_g  has  had  many
changes,  and  that  host  names  are now fully specified as
domain-style names (e.g, boris.Oswego.EDU).

     The C library and system binaries on  the  distribution
tape  are  compiled with versions of _g_e_t_h_o_s_t_b_y_n_a_m_e and _g_e_t_h_-
_o_s_t_b_y_a_d_d_r which use ndbm host table lookup routines  instead



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 27


of  the  name server.  You must run _m_k_h_o_s_t_s(8) to create the
_n_d_b_m host table database from _/_e_t_c_/_h_o_s_t_s.  For  2.11BSD  the
_m_k_h_o_s_t_s  program  has  been  enhanced  to  support  multiple
addresses per host with order being preserved (the order  in
which  the  multiple  addresses appear in _/_e_t_c_/_h_o_s_t_s for the
same host is the same order the addresses will  be  returned
to the caller of _g_e_t_h_o_s_t_b_y_n_a_m_e).

     There  is  a version of the nameserver which runs under
2.11BSD.  However in addition to having a voracious appetite
for  memory  there  are memory leaks which cause _n_a_m_e_d(8) to
crash after running  for  an  extended  period.   Restarting
_n_a_m_e_d(8)  nightly from _c_r_o_n is the only work around solution
at present.

     If you want to compile your  system  to  use  the  name
server resolver routines instead of the ndbm host table, you
will need to modify /usr/src/lib/libc/Makefile according  to
the  instructions there and then recompile all of the system
and local programs (see section 6.5).|^

     The format of /etc/ttys is the same  as  it  was  under
2.10BSD.  It includes the terminal type and security options
that were previously in /etc/ttytype and /etc/securettys.

     _s_y_s_l_o_g is the 4.4BSD-Lite version now.   See  _s_y_s_l_o_g(3)
and  _s_y_s_l_o_g_d(8)  for  details.  They are used by many of the
system daemons to monitor system problems more closely,  for
example network routing changes.

     Again, it must be emphasized that the nameserver is not
robust under 2.11BSD, and if the _h_o_s_t_s files are not desired
then the best alternative is to use the _r_e_s_o_l_v_e_r(5) routines
and use the nameserver on  a  remote  larger  machine.   The
_r_e_s_o_l_v_e_r(5) routines are known to work.

     The  spooling directories saved on tape may be restored
in their eventual resting places without too  much  concern.
Be  sure  to  use  the ``p'' option to _t_a_r so that files are
recreated with the same file modes:

     ## cd /usr
     ## tar xp msgs spool/mail spool/uucp spool/uucppublic spool/news


     The ownership and modes of  two  of  these  directories
needs  to be changed, because _a_t now runs set-user-id ``dae-
mon'' instead of root.  Also, the uucp directory  no  longer
-----------
|^ Note: The resolver routines  add  about  5kb  of
  text and 1kb of data to each program.  Also, the
  resolver routines use more stack space which may
  cause  large programs to crash due to failure to
  extend the stack area.



                        17 March 1998





setup.2.11 - 28Installing and Operating 2.11BSD on the PDP-11


needs  to be publicly writable, as _t_i_p reverts to privileged
status to remove its lock files.  After copying your version
of /usr/spool, you should do the following:

     ## chown -R daemon /usr/spool/at
     ## chown -R root /usr/spool/uucp
     ## chgrp -R daemon /usr/spool/uucp
     ## chmod -R o-w /usr/spool/uucp


     Whatever  else is left is likely to be site specific or
require careful scrutiny  before  placing  in  its  eventual
resting  place.   Refer to the documentation and source code
before arbitrarily overwriting a file.

33..33..  HHiinnttss oonn ccoonnvveerrttiinngg ffrroomm pprreevviioouuss PPDDPP--1111 UUNNIIXX  ssyysstteemmss
ttoo 22..1111BBSSDD

     This section summarizes some of the significant changes
in 2.11BSD  from  2.10.1BSD.   The  installation  guide  for
2.10.1BSD    is    included    in    the   distribution   as
/usr/doc/2.10/setup.2.10 and should be read if you  are  not
presently running 2.10BSD or 2.10.1BSD.  It does not include
changes in the network; see chapter  5  for  information  on
setting up the network.

     Old  core files will not be intelligible by the current
debuggers because of numerous changes to the user structure.
Also  removed  from  the  user  structure  are  the  members
u_offset,   u_count,   u_base,    u_segflg,    the    4.3BSD
uio/iovec/rdwri  kernel  i/o model having been put in place.
The 4.3BSD _n_a_m_e_i argument encapsulation technique  has  been
ported, which adds the u_nd member to the user structure.

     Note,  once  your  system is installed and running, you
should make sure that you recompile and reinstall the direc-
tory  _/_u_s_r_/_s_r_c_/_s_h_a_r_e_/_z_o_n_e_i_n_f_o.   Read  through  the Makefile
first, if you're not located on the West Coast you will have
to  change  it.  This directory is an addition since 4.3BSD,
and is intended to solve the Daylight Savings Time  problems
once and for all.

     The  incore  inode  structure  has  had the i_id member
added as part of implementing the 4.3BSD namei  cache.   The
di_addr  member  of  the  on  disk inode structure is now an
array of type ddaaddddrr__tt instead  of  cchhaarr.   The  old  3  byte
packed block number is obsolete at last.

     The  on disk directory structure is that of 4.3BSD with
the difference that the inode number is  an  unsigned  short
instead  of  a  long.  This was done to reduce the amount of
long arithmetic in the kernel and to maintain  compatibility
with  earlier  versions with regard to the maximum number of
inodes per filesystem.  Given the typical size of discs used



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 29


with  2.11BSD the limit on the number of inodes per filesys-
tem will not be a problem.

     And again, 2.11BSD is not  filesystem  compatible  with
any previous PDP-11 UNIX system.

     If  you  want to use _p_s after booting a new kernel, and
before going multiuser, you must initialize  its  name  list
database by running _p_s _-_U.

33..44..    HHiinnttss   oonn  ppoossssiibbllee  pprroobblleemmss  uuppggrraaddiinngg  ffrroomm  tthhee
22..1100..11BBSSDD

33..44..11..  NNeeww uuttmmpp UUTT__NNAAMMEESSIIZZEE..

     UUTT__NNAAMMEESSIIZZEE in >_<utmp.h was changed from 8 to 15.  This
won't  affect correctly written programs (those which do not
hard code the constant 8) at the source level but does cause
changes  in various databases.  This means that old binaries
won't be able to cope with new databases  (passwd,  aliases,
etc) and vice versa.

     This  change  was necessary since the systems available
for 2.11BSD development had to be  shared  with  systems  in
which    UT_NAMESIZE    was    set    at    15.    If   this
change/incompatibility  is  not  desired,  then  utmp.h  and
wtmp.h will have to be modified and the system libraries and
applications rebuilt before proceeding to load  local  soft-
ware.

     The  simplest  way to deal with this incompatibility is
simply to rebuild all your databases from the  source  data.
In  particular,  you should be sure you rebuild _/_e_t_c_/_p_a_s_s_w_d,
_/_e_t_c_/_h_o_s_t_s, and _/_e_t_c_/_a_l_i_a_s_e_s  databases  via  the  commands:
_m_k_p_a_s_s_w_d     _/_e_t_c_/_p_a_s_s_w_d,     _m_k_h_o_s_t_s     _/_e_t_c_/_h_o_s_t_s,    and
_/_u_s_r_/_u_c_b_/_n_e_w_a_l_i_a_s_e_s_.

33..44..22..  mmaann ssyysstteemm

     The manual system continues to track the changes  going
on  in 4BSD.  I'm not convinced the new setup is better, but
it does seem to be the method of the moment.  The  setup  is
essentially  the  same as that in the 44..33BBSSDD--TTAAHHOOEE distribu-
tion with the manual source in /usr/src/man.

33..44..33..  NNMMOOUUNNTT lloowweerreedd

     The value of NNMMOOUUNNTT in _/_s_y_s_/_h_/_p_a_r_a_m_._h is set  to  5  in
the  distribution  system.   This will be too small for many
sites.  Since each mount table entry costs about  440  bytes
of  valuable  kernel  dataspace this number should be chosen
with care.  See Appendix A for  an  explanation  of  how  to
reconfigure NNMMOOUUNNTT..




                        17 March 1998





setup.2.11 - 30Installing and Operating 2.11BSD on the PDP-11


33..44..44..  SShhaaddooww ppaasssswwoorrddss

     The May 1989 release of the 4.3BSD shadow password file
has been ported to 2.11BSD.  Password aging is  also  imple-
mented.

33..44..55..  NNeeww //eettcc//rrcc ssttaarrttuupp ssccrriippttss

     _/_e_t_c_/_r_c  and _/_e_t_c_/_r_c_._l_o_c_a_l have changed fairly signifi-
cantly, and

     _/_e_t_c_/_n_e_t_s_t_a_r_t has been added to configure site specific
network  features  (much  of  this  was  pulled from the old
rc.local).  _/_e_t_c_/_n_e_t_s_t_a_r_t  uses  the  tiny  program  _t_e_s_t_n_e_t
which attempts to create a socket and prints NO on stdout if
an error is returned by the kernel,  YES  if  no  error  was
returned.

33..44..66..  mmkkffss,, mmkkpprroottoo,, mmkklloosstt++ffoouunndd

     _m_k_f_s(8) no longer can populate a filesystem with files.
The 4.3BSD versions of _m_k_f_s(8) and _m_k_p_r_o_t_o(8) were ported to
2.11BSD.   There  is  a  limit on the size of the file which
_m_k_p_r_o_t_o(8) can place on a newly  created  filesystem.   Only
files  up  to single indirect (about 260kb) may be copied at
this time.

     _m_k_l_o_s_t_+_f_o_u_n_d(8) is a ported version  from  4.3BSD,  the
only  change being to use 63 character file names (MAXNAMLEN
is  63  at  this  time   in   2.11BSD)   instead   of   255.
_m_k_l_o_s_t_+_f_o_u_n_d(8) is really not needed, _f_s_c_k(8) is now capable
of automatically extending lost+found by up to the number of
direct blocks in an inode.

33..44..77..  //eettcc//ddiisskkttaabb

     The  format  of /etc/disktab is now the same as 4.3BSD-
Reno and 4.4BSD.  Previously to describe a  drive  (an  RM03
for example) the /etc/disktab file had entries of the form:

:ty=removable:ns#32:nt#5:nc#823:sf:
:b0=/mdec/rm03uboot:
:pa#9600:ba#1024:fa#1024:
:pb#9600:bb#1024:fb#1024:
:pc#131520:bc#1024:fc#1024:
:pf#121920:bf#1024:ff#1024:
:pg#112320:bg#1024:fg#1024:
:ph#131520:bh#1024:fh#1024:

Note  that there is no information at all about which cylin-
der a partition starts at or which  partitions  overlap  and
may  not  be used simultaneously.  That information was kept
in tables in the driver.  If you  modified  /etc/disktab  it
would  have  no  effect without also changing the driver and



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 31


recompiling the kernel.

The new /etc/disktab file looks like this:

:ty=removable:ns#32:nt#5:nc#823:sf:
:b0=/mdec/rm03uboot:
:pa#9600:oa#0:ba#1024:fa#1024:ta=2.11BSD:
:pb#9600:ob#9600:bb#1024:fb#1024:tb=swap:
:pc#131520:oc#0:bc#1024:fc#1024:
:pf#121920:of#9600:bf#1024:ff#1024:tf=2.11BSD:
:pg#112320:og#19200:bg#1024:fg#1024:tg=2.11BSD:
:ph#131520:oh#0:bh#1024:fh#1024:th=2.11BSD


     There are two new fields per partition,  the  'o'  (oa,
ob,  usw.)  field  specifies  the offset in sectors that the
partition begins at.  The 't' field specifies the  partition
type.   Only those partitions which are 22..1111BBSSDD will be rec-
ognized by _n_e_w_f_s(8) and the kernel as filesystems.  The ker-
nel  also will not swap or place a crash dump on a partition
that is not of type sswwaapp.

     The two examples above are equivalent  and  provide  an
example  of  a translating an old style disktab entry into a
new style entry.  To translate a customized disktab  entries
you  will  need:  1) a copy of your current partition tables
from the device driver, 2) a copy of the old disktab  entry,
3) your current /etc/fstab file.  In new disktab entries you
should only place those partitions you actually use.   There
is  no  need  to declare (as was done in the examples above)
all of the possible partitions.

     If you have changed the disk partition sizes,  be  sure
to  make  the  necessary /etc/disktab changes and label your
disks BEFORE trying to access any of your old file  systems!
There  are  two  ways  to  label your disks.  The standalone
disklabel program is one way.  It is also possible to  label
disks  using  _d_i_s_k_l_a_b_e_l(8)  with  the -r option - this works
even when running on a kernel which does not support  labels
(-r  reads  and  writes the raw disk, thus it is possible to
label disks on an older kernel as long as  the  _d_i_s_k_l_a_b_e_l(8)
program is present).















                        17 March 1998





setup.2.11 - 32Installing and Operating 2.11BSD on the PDP-11


                      44.. SSYYSSTTEEMM SSEETTUUPP



     This  section  describes  procedures  used  to set up a
PDP-11 UNIX system.  These procedures are used when a system
is first installed or when the system configuration changes.
Procedures for normal system operation are described in  the
next section.

44..11..  CCrreeaattiinngg aa UUNNIIXX bboooott

     _/_b_o_o_t uses the device information passed to it from the
bootstrap in determining the device, unit and file to  load.
If  an  autoreboot is being done the kernel will have passed
the device information to the bootstrap as well  as  setting
the autoreboot flag.

     _/_b_o_o_t  does not require recompilation to adapt to a new
autoreboot device.

44..22..  KKeerrnneell ccoonnffiigguurraattiioonn

     This section briefly describes the layout of the kernel
code and how files for devices are made.

44..22..11..  KKeerrnneell oorrggaanniizzaattiioonn

     As  distributed, the kernel source is in a separate tar
image.  The source may be physically located anywhere within
any  file  system so long as a symbolic link to the location
is created for the file /sys (many files in /usr/include are
normally  symbolic links relative to /sys).  In further dis-
cussions of the system source all path names will  be  given
relative to /sys.

     The  directory  /sys/sys  contains the mainline machine
independent operating system code.  Files within this direc-
tory are conventionally named with the following prefixes:


     init_        system initialization
     kern_        kernel (authentication, process management, etc.)
     quota_       kernel portion of disk quota system
     subr_        misc. subroutines used throughout the kernel
     sys_         system calls and the like
     tty_         terminal handling
     ufs_         file system
     uipc_        interprocess communication
     vm_          memory management







                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 33


     The remaining directories are organized as follows:


     /sys/h         machine independent include files
     /sys/conf      site configuration files and basic templates
     /sys/net       network independent, but network related code
     /sys/netinet   DARPA Internet code
     /sys/netimp    IMP support code
     /sys/netns     Xerox NS support code
     /sys/pdp       PDP-11 specific mainline code
     /sys/pdpif     PDP-11 network interface code
     /sys/pdpmba    PDP-11 MASSBUS device drivers and related code
     /sys/pdpuba    PDP-11 UNIBUS device drivers and related code



     Many   of  these  directories  are  referenced  through
/usr/include   with   symbolic    links.     For    example,
/usr/include/sys  is  a symbolic link to /sys/h.  The system
code, as distributed, is mostly independent of  the  include
files  in /usr/include.  Unfortunately not all references to
/usr/include have been eradicated, so compiling  the  system
requires the /usr file system to be mounted.

44..22..22..  DDeevviicceess aanndd ddeevviiccee ddrriivveerrss

     Devices supported by UNIX are implemented in the kernel
by drivers whose source is kept in /sys/pdp, /sys/pdpuba, or
/sys/pdpmba.   These drivers are loaded into the system when
included in a cpu specific configuration file  kept  in  the
conf  directory.  Devices are accessed through special files
in the file system, made by the _m_k_n_o_d(8)  program  and  nor-
mally  kept in the /dev directory.  For all the devices sup-
ported by the distribution system, the  files  in  /dev  are
created by the /dev/MAKEDEV shell script.

     Determine the set of devices that you have and create a
new /dev directory by running  the  MAKEDEV  script.   First
create  a  new directory /newdev, copy MAKEDEV into it, edit
the file MAKEDEV.local to provide an entry for local  needs,
and  run  it to generate a /newdev directory.  For instance,
if your machine has a single DZ11, a single  DH11,  an  RM03
disk,  an  EMULEX  UNIBUS SMD disk controller, an AMPEX 9300
disk, and a TE16 tape drive you would do:

     ## cd /
     ## mkdir newdev
     ## cp dev/MAKEDEV newdev/MAKEDEV
     ## cd newdev
     ## MAKEDEV dz0 dh0 xp0 xp1 ht0 std LOCAL

Note the ``std'' argument causes standard  devices  such  as
_/_d_e_v_/_c_o_n_s_o_l_e,  the  machine  console,  _/_d_e_v_/_n_u_l_l,  _/_d_e_v_/_t_t_y,
_/_d_e_v_/_k_l_o_g, etc.  to be created.



                        17 March 1998





setup.2.11 - 34Installing and Operating 2.11BSD on the PDP-11


     You can then do

     ## cd /
     ## mv dev olddev ; mv newdev dev
     ## sync

to  install the new device directory.|^ As distributed almost
all of the device nodes are already present and you may wish
to  remove  unused entries from /dev to speed up scanning of
the directory.  The  terminal  nodes  are  almost  certainly
incorrect  for  your  site  and  will need to be deleted and
recreated.  Directly connected  terminals  should  have  the
softcarrier  bit  on  in  their minor device numbers.  Since
MAKEDEV by default creates terminal (dh, dz, etc) nodes with
the  softcarrier bit off you will have to delete those nodes
and recreate those terminal nodes which  are  directly  con-
nected:

     ## cd /dev
     ## rm ttyh0
     ## mknod ttyh0 c 3 128


44..22..33..  BBuuiillddiinngg nneeww ssyysstteemm iimmaaggeess

     The   kernel  configuration  of  each  UNIX  system  is
described by a single  configuration  file,  stored  in  the
_/_s_y_s_/_c_o_n_f directory.  The format of this file is very simple
consisting of lines starting with an _i_d_e_n_t_i_f_i_e_r followed  by
a  _v_a_l_u_e.   Blank lines and anything past a ``#'' (including
the #) are comments.  This file is processed  by  the  shell
script  _c_o_n_f_i_g  in  the same directory.  The manual pages in
section 4 of the UNIX manual specify the configuration lines
necessary for various devices.  A comprehensive list of sys-
tem options with descriptions of their meanings and  effects
can be found in appendix A.

     The  configuration  file  _G_E_N_E_R_I_C in the conf directory
was used to build the generic distribution kernel.  To build
a  local configuration file, copy GENERIC to a new file _S_Y_S_-
_T_E_M, edit _S_Y_S_T_E_M for your local  system  configuration,  and
then type "./config _S_Y_S_T_E_M".  This will create the directory
_._._/_S_Y_S_T_E_M and copy specially edited files into based on  the
definitions in _S_Y_S_T_E_M.  Change directory into the new system
directory and type "make all".|^,




-----------
|^ You must  reboot  your  system  before  you  can
  remove the /olddev directory.
|^ note that non-separate systems are not currently
  supported



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 35


     ## cp GENERIC _S_Y_S_T_E_M
     ## TERM=_t_e_r_m_i_n_a_l___t_y_p_e; export TERM
     ## vi _S_Y_S_T_E_M
     ## ./config _S_Y_S_T_E_M
     ## cd ../_S_Y_S_T_E_M
     ## make


     Note  that  the  overlay  scheme in the Makefile copied
into the new system directory may fail  because  either  the
_b_a_s_e  _s_e_g_m_e_n_t is too small, too large or one or more _o_v_e_r_l_a_y
_s_e_g_m_e_n_t_s are too large.  If this happens the system  objects
will  have  to  be  re-arranged in the _b_a_s_e and _o_v_e_r_l_a_y seg-
ments.  The comments in the Makefile should make  it  fairly
clear  what  the restrictions on object placement are in the
system.

     The  configured system image ``unix''|= should be copied
to the root, and then booted to try it out.  It is  best  to
save the old kernel to a known name so as not to destroy the
working system until you're sure the new one does work.   It
is an bbeetttteerr idea to have a non network kernel (/emergencyu-
nix) always kept on the system:

     ## cp /unix /oldunix
     ## make install
     ## sync

To boot the new version of the system you should follow  the
bootstrap  procedures outlined in section titled ``BBoooottssttrraapp
aanndd sshhuuttddoowwnn pprroocceedduurreess'' A systematic scheme for  numbering
and saving old versions of the system may be useful.

44..33..  DDiisskk ccoonnffiigguurraattiioonn

     This  section  describes  how to layout file systems to
make use of the available space and to balance disk load for
better system performance.

44..33..11..  DDiisskk nnaammiinngg aanndd ddiivviissiioonnss

     Each  physical  disk  drive can be divided into up to 8
partitions; UNIX typically uses only 3 or 4 partitions.  For
instance,  on an RP06 the first partition, xp0a, is used for
a root file system, a backup thereof, or a small file system
like, /tmp; the second partition, xp0b, is used for swapping
or a small file system; and a combination of  the  remaining
partitions  (xp0d,  xp0e,  xp0f, xp0g, xp0h) would hold user
file systems.


-----------
|= on networked systems there are two images  _u_n_i_x,
  and _n_e_t_n_i_x.



                        17 March 1998





setup.2.11 - 36Installing and Operating 2.11BSD on the PDP-11


          WWaarrnniinngg::  for disks on which DEC standard 144  bad
     sector  forwarding  is supported, the last track and up
     to 126 preceding sectors  contain  replacement  sectors
     and  bad  sector  lists.  Disk-to-disk copies should be
     careful to avoid  overwriting  this  information.   See
     _b_a_d_1_4_4(8).  Bad sector forwarding is optional in the hhkk
     and  xxpp  drivers.   The  partition  sizes   listed   in
     _/_e_t_c_/_d_i_s_k_t_a_b  that  _n_e_w_f_s(8) uses automatically reserve
     the maximum amount of room that  may  be  used  by  bad
     block forwarding on a disk.

          Note  also  that bad144 style bad block forwarding
     _c_a_n _n_o_t be used with SI controllers on the xp driver as
     the  controllers  use their own internal scheme for bad
     block forwarding, and you can in fact make  your  disks
     unusable on the SI controllers if you write anything in
     the  last  five  cylinders.   The  partition  sizes  in
     _/_e_t_c_/_d_i_s_k_t_a_b also handle this constraint automatically.

          The generic distribution kernel does  not  do  bad
     block forwarding.  There is unfortunately no way to run
     bad144 style bad  block  forwarding  on  some  of  your
     disks,  but  not others.  As a final bug, the hk and xp
     drivers do not reread the bad sector forwarding  infor-
     mation  when  disk  packs are changed and so will erro-
     neously use bad block forwarding information  from  the
     wrong packs!


     The space available on a disk varies, not surprisingly,
per device.  Disklabels make a table giving  sizes  meaning-
less  since there are no predefined partition sizes embedded
in the kernel any longer.  The root filesystem (aa)  must  be
at  least  4Mb,  preferably  6 to 7Mb if possible.  The swap
area (almost always the bb partition) should be about 3Mb  or
so.   If  your  system has a small amount (less than 2Mb) of
memory you will need more swap space, perhaps 4 or 5Mb.   It
is  a  rare  case  where more than 5 or 6Mb of swap space is
required.   The system will run out of  other  resources  by
the time enough activity is generated to need that much swap
space.

     The system (boot) disk has a swapping area and  a  root
file  system.   Other  drives  may  use those partitions for
data.  RReemmeemmbbeerr:: the aa partition must start at sector  0  or
_d_i_s_k_l_a_b_e_l(8)  or  else  the  kernel  will  not  be  able  to
read/write the label.

     The  distributed  system  binaries  occupy   about   34
Megabytes   while   the  major  sources  occupy  another  36
Megabytes.  Adding  in  the  miscellaneous  sources,  a  few
locate works of art bring the total for a complete system to
about 90 Megabytes.  This overflows RK07, RL02 and RM03 sys-
tems, but fits easily on most other hardware configurations.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 37


2.11BSD is quite happy on RD54 or  larger.   Simply  fitting
the  distribution  isn't  enough,  there must still be space
left for user files, objects when compiling programs, spool-
ing directories, usw.

     Be  aware  that  the disks have their sizes measured in
disk sectors (512 bytes), while the UNIX file system  blocks
are  1024  bytes  each.   Thus if a disk partition has 10000
sectors (disk blocks), it will have only 5000 UNIX file sys-
tem blocks, and you _m_u_s_t divide by 2 to use 5000 when speci-
fying the size  to  the  _m_k_f_s  command  for  instance.   The
_n_e_w_f_s(8)  program  performs  this calculation automatically.
You should nneevveerr need to run _m_k_f_s manually.  All  user  pro-
grams report disk space in kilobytes and, where needed, disk
sizes  are  always  specified  in  units  of  sectors.   The
/etc/disktab file used in making file systems specifies disk
partition sizes in sectors; the default sector size  may  be
overridden  with  the  ``se'' attribute.  NNoottee that the only
sector size  currently  supported  is  NBPG  as  defined  in
_/_s_y_s_/_p_d_p_/_m_a_c_h_p_a_r_a_m_._h.   This restriction is enforced in sev-
eral places in  the  disklabeling  process  as  a  safeguard
against specifying a sector size other than NBPG (512).  Any
other sector size would produce strange results  and  almost
certainly curdled filesystems.

44..33..22..  LLaayyoouutt ccoonnssiiddeerraattiioonnss

     There  are  several  considerations  in deciding how to
adjust the arrangement of things on your  disks.   The  most
important  is  making  sure that there is adequate space for
what is required; secondarily, throughput  should  be  maxi-
mized.   Swap  space  is  an  important  parameter  since it
defines the maximum process image load that may be run.  If,
for instance, your swap area were smaller than the amount of
main memory available after the kernel took its share,  some
of your memory would never be used.

     Many  common system programs (C, the editor, the assem-
bler etc.)  create intermediate files in the /tmp directory,
so  the file system where this is stored also should be made
large enough to accommodate most high-water  marks;  if  you
have  several  disks,  it  makes  sense  to  mount this in a
``root'' (i.e. first partition) file system on another disk.
All  the  programs  that  create  files in /tmp take care to
delete them, but are not immune to rare events and can leave
dregs.   The directory should be examined every so often and
the old files deleted.

     The efficiency with which UNIX is able to use  the  CPU
is often strongly affected by the configuration of disk con-
trollers.  For general time-sharing applications,  the  best
strategy  is to try to split the most actively-used sections
among several disk arms.




                        17 March 1998





setup.2.11 - 38Installing and Operating 2.11BSD on the PDP-11


     It is critical for good  performance  to  balance  disk
load.   There  are at least five components of the disk load
that you can divide between the available disks:

     1. The root file system.
     2. The /tmp file system.
     3. The /usr file system.
     4. The user files.
     5. The swapping activity.

The following possibilities are ones that have been used  at
times when 2, 3 and 4 disks were available:

                +--------------------------+
                +----------+---------------+
                |          |   | disk|s     |
                |what      | 2 | 3   | 4   |
                +----------+---+-----+-----+
                |/         | 0 | 0   | 0   |
                |tmp       | 1 | 2   | 3   |
                |usr       | 1 | 1   | 1   |
                |swapping|^ | 0 | 2   | 2   |
                |users     | 0 | 0+2 | 0+2 |
                |archive   | x | x   | 3   |
                +----------+---+-----+-----+
                +--------------------------+
     The most important things to consider are to  even  out
the  disk load as much as possible, and to do this by decou-
pling file systems (on separate arms)  between  which  heavy
copying occurs.  Note that a long term average balanced load
is not important; it is  much  more  important  to  have  an
instantaneously balanced load when the system is busy.  When
placing several busy file systems on the same  disk,  it  is
helpful  to  group  them  together to minimize arm movement,
with less active file systems off to the side.

     Intelligent experimentation  with  a  few  file  system
arrangements  can  pay off in much improved performance.  It
is particularly easy to move the root, the /tmp file  system
and  the  swapping  area.  Note, though, that the disks con-
taining the root and swapping  area  can  never  be  removed
while  UNIX  is  running.  Place the user files and the /usr
directory as space needs dictate  and  experiment  with  the
other, more easily moved file systems.



-----------
|^ Note  also,  that only a single swapping area is
  supported.  The _s_w_a_p_o_n(2) system call and multi-
  ple  swapping  areas  have  nnoott been implemented
  under 2.11BSD (yet.  no real need  since  enough
  other  resources are exhausted by the time a 4mb
  11/73 needs additional swap space).



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 39


44..33..33..  IImmpplleemmeennttiinngg aa llaayyoouutt

     To put a chosen disk layout into effect, you should use
the _n_e_w_f_s(8) command to create each new file  system.   Each
file  system  must  also  be added to the file /etc/fstab so
that it will be checked and mounted when the system is boot-
strapped.

     As  an  example, consider a system with RA80's.  On the
first RA80, ra0, we will put the root file system  in  ra0a,
and  the /usr file system in ra0c, which has enough space to
hold it and then some.  The /tmp directory will be  part  of
the  root  file system, as no file system will be mounted on
/tmp.  If we had only one RA80, we would put user  files  in
the ra0c partition with the system source and binaries.

     If  we  had a second RA80, we would place _/_u_s_r in ra1c.
We would put user files in ra0c,  calling  the  file  system
/mnt.   We  would  put swap on _r_a_0_b.  We would keep a backup
copy of the root file system in the rraa11aa disk partition  and
put /tmp on _r_a_1_b.  _/_e_t_c_/_f_s_t_a_b would then contain

     /dev/ra0a:/:rw:1:1
     /dev/ra0b::sw::
     /dev/ra0c:/mnt:rw:1:2
     /dev/ra1b:/tmp:rw::
     /dev/ra1c:/usr:rw:1:2


     To make the /mnt file system we would do:

     ## cd /dev
     ## MAKEDEV ra1
     ## newfs ra1c ra80
     (information about file system prints out)
     (to specify an alternate _m value: newfs -m # ra1c ra80)
     (where # is between 1 and 31)
     ## mkdir /mnt
     ## mount /dev/ra1c /mnt


44..44..  CCoonnffiigguurriinngg tteerrmmiinnaallss

     If   UNIX   is  to  support  simultaneous  access  from
directly-connected terminals other  than  the  console,  the
file _/_e_t_c_/_t_t_y_s (_t_t_y_s(5)) must be edited.

     Terminals connected via DZ11 interfaces are convention-
ally named ttttyyDDDD where DD is a decimal number,  the  ``minor
device''  number.   The  lines  on dz0 are named /dev/tty00,
/dev/tty01, ... /dev/tty07.  By convention, all other termi-
nal  names  are  of the form ttttyyCX, where C is an alphabetic
character according to the type of terminal multiplexor  and
its unit number, and X is a digit for the first ten lines on



                        17 March 1998





setup.2.11 - 40Installing and Operating 2.11BSD on the PDP-11


the interface and an increasing lower case  letter  for  the
rest  of  the  lines.  C is defined for the number of inter-
faces of each type listed below.  Since tty  structures  are
approximately 78 bytes each, it is highly doubtful that more
than 3 or 4 terminal interface boards will ever be  attached
to a PDP-11 (especially in a BA23 cabinet).


     +------------------------------------------------------+
     |Interface                Number of lines   Number of  |
     |  Type      Characters      per board      Interfaces |
     +------------------------------------------------------+
     |DZ11        see above           8              10     |
     |DH11           h-o             16               8     |
     |DHU11          S-Z             16               8     |
     |pty            p-u             16               6     |
     +------------------------------------------------------+


     To  add  a  new  terminal device, be sure the device is
configured into the system and that the  special  files  for
the device have been made by /dev/MAKEDEV.  Then, enable the
appropriate lines of /etc/ttys  by  setting  the  ``status''
field  to  oonn  (or  add  new  lines).   Note  that  lines in
_/_e_t_c_/_t_t_y_s are one-for-one with entries in the file  of  cur-
rent users (_/_v_a_r_/_r_u_n_/_u_t_m_p), and therefore it is best to make
changes while running in single-user mode and to add all  of
the entries for a new device at once.

     The format of the /etc/ttys file is the same in 2.11BSD
as in 2.10BSD and 4.3BSD.  Each line in the file  is  broken
into  four tab separated fields (comments are shown by a `#'
character and extend to the end of the line).  For each ter-
minal  line the four fields are: the device (without a lead-
ing /dev), the program /etc/init should startup  to  service
the line (or nnoonnee if the line is to be left alone), the ter-
minal type (found  in  /etc/termcap),  and  optional  status
information describing if the terminal is enabled or not and
if it is ``secure'' (i.e. the super user should  be  allowed
to  login  on  the  line).  All fields are character strings
with entries requiring embedded white space enclosed in dou-
ble quotes.  Thus a newly added terminal /dev/tty00 could be
added as

     tty00     "/usr/libexec/getty std.9600" vt100     on secure # Steve's office

The std.9600 parameter  provided  to  /usr/libexec/getty  is
used  in  searching  the  file /etc/gettytab; it specifies a
terminal's characteristics (such as  baud  rate).   To  make
custom  terminal types, consult _g_e_t_t_y_t_a_b(5) before modifying
/etc/gettytab.

     Dialup terminals should be wired  so  that  carrier  is
asserted  only  when  the phone line is dialed up.  For non-



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 41


dialup terminals from which modem control is not  available,
you  must  either  wire back the signals so that the carrier
appears to always be present, or show in  the  minor  device
number that carrier is to be assumed to be present by adding
128 decimal to the minor device  number  when  creating  the
device node.  This differs from 4.3BSD where the softcarrier
state is specified at kernel configuration time.

     For network terminals (i.e. pseudo terminals), no  pro-
gram  should  be  started up on the lines.  Thus, the normal
entry in /etc/ttys would look like

     ttyp0     none network

(Note the fourth field is not needed here.)

     When the system is running  multi-user,  all  terminals
that  are  listed  in  /etc/ttys  as  oonn have their line are
enabled.  If, during normal operations,  it  is  desired  to
disable  a terminal line, you can edit the file /etc/ttys to
change the terminal's status to ooffff and then send  a  hangup
signal to the _i_n_i_t process, by doing

     ## kill -1 1

Terminals  can  similarly  be enabled by changing the status
field from ooffff to oonn and sending a hangup signal to _i_n_i_t.

     Note that if a special file is inaccessible  when  _i_n_i_t
tries to create a process for it, init will log a message to
the system error logging process (/usr/sbin/syslogd) and try
to  reopen the terminal every minute, reprinting the warning
message every 10 minutes.  Messages of this  sort  are  nor-
mally printed on the console, though other actions may occur
depending  on  the  configuration   information   found   in
/etc/syslog.conf.

     Finally  note  that  you should change the names of any
dialup terminals to ttyd?  where ?  is  in  [0-9a-zA-Z],  as
some programs use this property of the names to determine if
a terminal is a dialup.  Shell commands to do this should be
put in the /dev/MAKEDEV.local script.

44..55..  AAddddiinngg uusseerrss

     New  users  can be added to the system by adding a line
to the password file /etc/passwd.  The procedure for  adding
a new user is described in _a_d_d_u_s_e_r(8).

     You should add accounts for the initial user community,
giving each a directory and a password,  and  putting  users
who will wish to share software in the same groups.





                        17 March 1998





setup.2.11 - 42Installing and Operating 2.11BSD on the PDP-11


     Several  guest  accounts have been provided on the dis-
tribution system; these accounts are for people at Berkeley,
Bell  Laboratories,  and  others who have done major work on
UNIX in the past.  You can delete these accounts,  or  leave
them  on  the  system  if you expect that these people would
have occasion to login as guests on your system.

44..66..  SSiittee ttaaiilloorriinngg

     All programs that require the site's name, or some sim-
ilar  characteristic,  obtain the information through system
calls or from files located in /etc.  Aside  from  parts  of
the  system  related to the network, to tailor the system to
your site you must simply select a site name, then edit  the
file

     /etc/netstart

At  or about line 25 in /etc/netstart you should find a line
similar to:

     /bin/hostname _m_y_n_a_m_e_._m_y_._d_o_m_a_i_n

defines the value  returned  by  the  _g_e_t_h_o_s_t_n_a_m_e(2)  system
call.   Your  hostname should be your fully qualified domain
name.  Programs such as _g_e_t_t_y(8), _m_a_i_l(1), _w_a_l_l(1), _u_u_c_p(1),
and  _w_h_o(1)  use  this system call so that the binary images
are site independent.

44..77..  SSeettttiinngg uupp tthhee mmaaiill ssyysstteemm

     The mail system consists of the following commands:


     /bin/mail             old standard mail program, _b_i_n_m_a_i_l(1)
     /usr/ucb/mail         UCB mail program, described in _m_a_i_l(1)
     /usr/sbin/sendmail    mail routing program
     /usr/spool/mail       mail spooling directory
     /etc/aliases          mail forwarding information
     /usr/bin/newaliases   command to rebuild binary forwarding database
     /usr/ucb/biff         mail notification enabler|^
     /usr/libexec/comsat   mail notification daemon|^


Mail is normally sent and received using  the  _m_a_i_l(1)  com-
mand,  which  provides a front-end to edit the messages sent
and received, and passes the  messages  to  _s_e_n_d_m_a_i_l(8)  for
routing.   The  routing algorithm uses knowledge of the net-
work name syntax, aliasing and forwarding  information,  and
network  topology,  as  defined  in  the  configuration file
/etc/sendmail.cf, to process each piece of mail.  Local mail
is delivered by giving it to the program /bin/mail that adds
it     to     the     mailboxes     in     the     directory
/usr/spool/mail/_u_s_e_r_n_a_m_e,  using a locking protocol to avoid



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 43


problems with  simultaneous  updates.   After  the  mail  is
delivered,     the     local     mail     delivery    daemon
/usr/libexec/comsat is  notified,  which  in  turn  notifies
users  who  have  issued  a ``_b_i_f_f y'' command that mail has
arrived|^.

     To  set  up  the  mail  facility  you  should  read the
instructions  in  the  file   READ_ME   in   the   directory
/usr/src/usr.lib/sendmail and then adjust the necessary con-
figuration  files.   You  should  also  set  up   the   file
/etc/aliases  for your installation, creating mail groups as
appropriate.  Documents describing _s_e_n_d_m_a_i_l's operation  and
installation are also included on the distribution tape.

44..77..11..  SSeettttiinngg uupp aa UUUUCCPP ccoonnnneeccttiioonn

     The  version of _u_u_c_p included in 2.11BSD is an enhanced
version of the one originally distributed with  32/V|^.   The
enhancements include:

+o  support  for many auto call units and dialers in addition
   to the DEC DN11,

+o  breakup of the spooling area  into  multiple  subdirecto-
   ries,

+o  addition of an _L_._c_m_d_s file to control the set of commands
   that may be executed by a remote site,

+o  enhanced ``expect-send'' sequence capabilities when  log-
   ging in to a remote site,

+o  new  commands  to  be used in polling sites and obtaining
   snap shots of _u_u_c_p activity,

+o  additional protocols for different communication media.

This section gives a brief overview of _u_u_c_p and  points  out
the most important steps in its installation.

     To  connect  two UNIX machines with a _u_u_c_p network link
using modems, one site must have an automatic call unit  and
the  other  must  have  a dialup port.  It is better if both
sites have both.


-----------
|^ comsat and biff are only available under systems
  configured for networking support.
|^ The _u_u_c_p included in this  distribution  is  the
  result  of  work  by  many people; we gratefully
  acknowledge  their  contributions,  but  refrain
  from mentioning names in the interest of keeping
  this document current.



                        17 March 1998





setup.2.11 - 44Installing and Operating 2.11BSD on the PDP-11


     You should first read the paper in the UNIX System Man-
ager's  Manual:  ``Uucp  Implementation  Description''.   It
describes in detail the file formats  and  conventions,  and
will  give  you a little context.  In addition, the document
``setup.tblms'',     located      in      the      directory
/usr/src/usr.bin/uucp/UUAIDS, may be of use in tailoring the
software to your needs.

     The _u_u_c_p support is located in three major directories:
/usr/bin, /etc/uucp, and /usr/spool/uucp.  User commands are
kept in /usr/bin, operational  commands  in  /etc/uucp,  and
/usr/spool/uucp is used as a spooling area.  The commands in
/usr/bin are:


     /usr/bin/uucp       file-copy command
     /usr/bin/uux        remote execution command
     /usr/bin/uusend     binary file transfer using mail
     /usr/bin/uuencode   binary file encoder (for _u_u_s_e_n_d)
     /usr/bin/uudecode   binary file decoder (for _u_u_s_e_n_d)
     /usr/bin/uulog      scans session log files
     /usr/bin/uusnap     gives a snap-shot of _u_u_c_p activity
     /usr/bin/uupoll     polls remote system until an answer is received
     /usr/bin/uuname     prints a list of known uucp hosts
     /usr/bin/uuq        gives information about the queue


The important files and commands in /etc/uucp are:


     /etc/uucp/L-devices     list of dialers and hard-wired lines
     /etc/uucp/L-dialcodes   dialcode abbreviations
     /etc/uucp/L.aliases     hostname aliases
     /etc/uucp/L.cmds        commands remote sites may execute
     /etc/uucp/L.sys         systems to communicate with, how to connect, and when
     /etc/uucp/SEQF          sequence numbering control file
     /etc/uucp/USERFILE      remote site pathname access specifications
     /usr/sbin/uucico        _u_u_c_p protocol daemon
     /etc/uucp/uuclean       cleans up garbage files in spool area
     /usr/libexec/uuxqt      _u_u_c_p remote execution server


while the spooling area  contains  the  following  important
files and directories:













                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 45


     /usr/spool/uucp/C.           directory for command, ``C.'' files
     /usr/spool/uucp/D.           directory for data, ``D.'', files
     /usr/spool/uucp/X.           directory for command execution, ``X.'', files
     /usr/spool/uucp/D._m_a_c_h_i_n_e    directory for local ``D.'' files
     /usr/spool/uucp/D._m_a_c_h_i_n_eX   directory for local ``X.'' files
     /usr/spool/uucp/TM.          directory for temporary, ``TM.'', files
     /usr/spool/uucp/LOGFILE      log file of _u_u_c_p activity
     /usr/spool/uucp/SYSLOG       log file of _u_u_c_p file transfers



     To  install  _u_u_c_p  on your system, start by selecting a
site name.  A _u_u_c_p account must be created in  the  password
file  and  a  password set up.  Then, create the appropriate
spooling directories with mode 755 and owned by  user  _u_u_c_p,
group _d_a_e_m_o_n.

     If  you have an auto-call unit, the L.sys, L-dialcodes,
and L-devices files  should  be  created.   The  L.sys  file
should   contain  the  phone  numbers  and  login  sequences
required to establish a connection with  a  _u_u_c_p  daemon  on
another machine.  For example, my L.sys file looks something
like:


     elisa Any ACU 1200 7064297  "" \\r\\c ogin-EOT-ogin-\\r\\c-ogin xelisa assword: XXX
     etn-ra Any ACU 1200 8891237  "" \\r\\c ogin nuucp assword XXX
     anagld Never ACU 2400 8894517 name:-EOT-name: uucp assword: XXX


The first field is the name of a site, the second shows when
the machine may be called, the third field specifies how the
host is connected (through an ACU, a hard-wired line, etc.),
then  comes the phone number to use in connecting through an
auto-call unit, and finally a  login  sequence.   The  phone
number  may contain common abbreviations that are defined in
the L-dialcodes file.  The device specification should refer
to  devices  specified  in the L-devices file.  Listing only
ACU causes the _u_u_c_p daemon, _u_u_c_i_c_o, to search for any avail-
able  auto-call  unit in L-devices.  Our L-dialcodes file is
of the form:

     ny   1-315-
     nj   1-201-
     bostn     1-617-

while our L-devices file is:

     ACU cul0 unused 1200 ventel

Refer to the README file in the _u_u_c_p  source  directory  for
more information about installation.





                        17 March 1998





setup.2.11 - 46Installing and Operating 2.11BSD on the PDP-11


     As  _u_u_c_p  operates  it creates (and removes) many small
files in the directories underneath /usr/spool/uucp.   Some-
times files are left undeleted; these are most easily purged
with the _u_u_c_l_e_a_n program.  The log files  can  grow  without
bound  unless  trimmed  back;  _u_u_l_o_g  maintains these files.
Many useful aids in maintaining your _u_u_c_p  installation  are
included     in     a     subdirectory     UUAIDS    beneath
/usr/src/usr.bin/uucp.  Peruse this directory and  read  the
``setup'' instructions also located there.
















































                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 47


                      55.. NNEETTWWOORRKK SSEETTUUPP



     The following section has been lightly edited to corre-
spond to the current 2.11BSD networking.  Several  parts  of
it  do  not  really  apply  to  2.11BSD,  for example, it is
unlikely that anyone will connect a PDP-11 to an IMP but  it
is possible as the LH/DH-11 networking interface and the IMP
modules have been ported and lightly tested, or that  anyone
will  run  the  nameserver.  The ``correct'' use of the net-
working in 2.11BSD is probably with a list of the local  net
addresses  in the _/_e_t_c_/_h_o_s_t_s file and with one default gate-
way for all network traffic.   In  particular,  do  not  run
_r_o_u_t_e_d(8)  unless  you're  extremely sure that you know what
you're doing.  This is doubly true if SL/IP is being used as
the  primary  connection  to the outside world.  The IMP and
PRONET drivers are known to work, but long  term  robustness
is  unknown.  Sites that wish to hook 2.11BSD into more than
a simple local ethernet may have some work  ahead  of  them.
If  any additional drivers are ported, I would really like a
copy.

     The networking in 2.11BSD,  runs  in  supervisor  mode,
separate  from the mainstream kernel.  There is room without
overlaying to hold both a SL/IP and ethernet  driver.   This
is  a major win, as it allows the networking to maintain its
mbufs in normal data space, among other  things.   The  net-
working portion of the kernel resides in ``/netnix'', and is
loaded after the kernel is running.  Since the  kernel  only
looks  for  the  file  ``/netnix'', it will not run if it is
unable to load ``/netnix'' , sites should build and  keep  a
non-networking  kernel  in  ``/'' at all times, as a backup.
NNOOTTEE:  The ``/unix'' and ``/netnix'' imagines must have been
created  at  the same time, do not attempt to use mismatched
images.   The ability to have bboooott  tell  the  kernel  which
network image to load is on the wish list (had to have some-
thing take the place of wishing for disklabels ;-)).

     2.11BSD provides support for the DARPA standard  Inter-
net  protocols  IP, ICMP, TCP, and UDP.  These protocols may
be used on top of a variety of hardware devices ranging from
the IMP's (PSN's) used in the Internet to local area network
controllers for the Ethernet.  Network  services  are  split
between  the  kernel (communication protocols) and user pro-
grams (user services such as TELNET and FTP).  This  section
describes  how  to configure your system to use the Internet
networking support.  2.11BSD also includes code  to  support
the  Xerox Network Systems (NS) protocols; the basic porting
work has been done, but it is completely untested.







                        17 March 1998





setup.2.11 - 48Installing and Operating 2.11BSD on the PDP-11


55..11..  SSyysstteemm ccoonnffiigguurraattiioonn

     To configure the kernel to include the Internet  commu-
nication  protocols, define the INET option.  This automati-
cally defines the NLOOP  option.   TCP_COMPAT_42  is  always
defined.   Xerox  NS  support is enabled with the NS option.
In either case, include the pseudo-device  ``pty''  in  your
machine's  configuration  file, using the NPTY options.  The
``pty'' pseudo-device  forces  the  pseudo  terminal  device
driver  to  be  configured into the system, see _p_t_y(4).  The
NLOOP option  forces  inclusion  of  the  software  loopback
interface  driver.  The loop driver is used in network test-
ing as well as for the system talking to itself rather  than
transmitting the data over the wire.

     If you are planning to use the Internet network facili-
ties on  a  10Mb/s  Ethernet,  the  pseudo-device  ``ether''
should  also  be  included  in  the  configuration using the
NETHER option; this forces inclusion of the Address  Resolu-
tion Protocol module used in mapping between 48-bit Ethernet
and 32-bit Internet addresses.  Also, if  you  have  an  IMP
connection,  you  will  need  to  include  the pseudo-device
``imp'', using the option NIMP.  The IMP software is  ported
and is in use at at least one site.

     Before configuring the appropriate networking hardware,
you should consult the manual pages in section 4 of the Pro-
grammer's Manual.  The following table lists the devices for
which software support exists.  Again, much of this software
is unported and untested; only the basic networking has been
stressed at all.  Many  other  devices  are  available,  but
unported.   Porting  should simply be a matter of making the
hardware device work.  The  directories  ``/sys/pdpif''  and
``/sys/vaxif''  contain many drivers.  The ones in ``pdpif''
are either the current, working drivers, or drivers that, at
some  time,  worked  on PDP-11's.  The ones in ``vaxif'' are
the current VAX drivers, and, as such,  will  have  to  have
their  memory usage changed, but serve as an excellent exam-
ple of how the hardware works.


     Device name   Manufacturer and product
     ------------------------------------------------------------------
     de            DEC DEUNA/DELUA 10Mb/s Ethernet
     qe            DEC DEQNA 10Mb/s Ethernet
     qt            DEC DELQA-YM 10Mb/s Ethernet
     ec            3Com 10Mb/s Ethernet
     il            Interlan 1010 and 10101A 10Mb/s Ethernet interfaces
     vv            Proteon ProNET - Token Ring Interface
     acc           LH/DH-11 1822 IMP/PSN Interface







                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 49


     SL/IP is also available.  It is surprisingly efficient.
Over  a 9600 baud line it is not unusual to see ffttpp rates in
the 800 bytes per second range (depending how busy the  sys-
tem is).

     All  network  interface  drivers including the loopback
interface, require that their host address(es) be defined at
boot  time.  This is done with _i_f_c_o_n_f_i_g(8) commands included
in the _/_e_t_c_/_r_c_._l_o_c_a_l file.   Interfaces  that  are  able  to
dynamically  deduce  the  host  part of an address may check
that the host part of the address is  correct.   The  manual
page for each network interface describes the method used to
establish a host's address.  _I_f_c_o_n_f_i_g(8) can also be used to
set options for the interface at boot time.  Options are set
independently for each interface, and apply to  all  packets
sent  using that interface.  These options include disabling
the use of the Address Resolution Protocol; this may be use-
ful  if a network is shared with hosts running software that
does not yet provide this function.  Alternatively, transla-
tions  for such hosts may be set in advance or ``published''
by a 2.11BSD host by use of the _a_r_p(8) command.   Note  that
the  use  of  trailer  link-level  is now negotiated between
2.11BSD hosts using ARP, and it is thus no longer  necessary
to  disable  the  use  of  trailers  with  _i_f_c_o_n_f_i_g.   It is
SSTTRROONNGGLLYY recommended, however, that  2.11BSD  networking  be
run  without  trailers,  as  the trailer code in most of the
drivers has either been removed, commented out, is  untested
or  is  kknnoowwnn  not  to work.  This is a problem with certain
releases of _U_l_t_r_i_x, which has to  be  explicitly  configured
not to send trailers if it and 2.11BSD are to coexist.

     To  use  the  pseudo  terminals just configured, device
entries must be created in the ``/dev'' directory.  To  cre-
ate  32  pseudo  terminals  (plenty, you can probably get by
with many less) execute the following commands.

     ## cd /dev
     ## MAKEDEV pty0 pty1

More pseudo terminals may be made by specifying _p_t_y_2,  _p_t_y_3,
etc.   The  kernel  normally  includes support for 16 pseudo
terminals unless the configuration file specifies a  differ-
ent  number.   Each  pseudo  terminal really consists of two
files in /dev: a master and a slave.  The master pseudo ter-
minal  file  is  named  /dev/ptyp?,  while the slave side is
/dev/ttyp?.  Pseudo terminals are also used by several  pro-
grams not related to the network.  NNOOTTEE: the terminal struc-
tures are 78 bytes each, declaring more than 16 pseudo  ter-
minals  is  potentially wasteful of kernel D space.  See the
comment in the kernel config files.  In addition to creating
the  pseudo  terminals,  be  sure  to  install  them  in the
_/_e_t_c_/_t_t_y_s file (with a `none' in the  second  column  so  no
_g_e_t_t_y is started).




                        17 March 1998





setup.2.11 - 50Installing and Operating 2.11BSD on the PDP-11


55..22..  LLooccaall ssuubbnneettwwoorrkkss

     In  2.11BSD  the  DARPA  Internet  support includes the
notion of ``subnetworks''.  This is  a  mechanism  by  which
multiple  local  networks  may  appears as a single Internet
network to off-site hosts.  Subnetworks are  useful  because
they  allow  a  site to hide their local topology, requiring
only a single route in external gateways; it also means that
local  network  numbers  may  be  locally administered.  The
standard describing this change in  Internet  addressing  is
RFC-950.

     To  set  up local subnetworks one must first decide how
the available address space (the Internet ``host  part''  of
the  32-bit  address)  is  to  be partitioned.  Sites with a
class A network number have  a  24-bit  address  space  with
which  to  work,  sites with a class B network number have a
16-bit address space, while sites with  a  class  C  network
number have an 8-bit address space|^.  To define  local  sub-
nets  you  must  steal some bits from the local host address
space for use in extending the network portion of the Inter-
net address.  This reinterpretation of Internet addresses is
done only for local networks; i.e.  it  is  not  visible  to
hosts  off-site.   For  example,  if your site has a class B
network number, hosts  on  this  network  have  an  Internet
address  that  contains the network number, 16 bits, and the
host number, another 16 bits.  To define 254 local  subnets,
each  possessing at most 255 hosts, 8 bits may be taken from
the local part.  (The use of subnets 0 and all-1's,  255  in
this example, is discouraged to avoid confusion about broad-
cast addresses.)  These new network numbers  are  then  con-
structed by concatenating the original 16-bit network number
with the extra 8 bits containing the local  subnetwork  num-
ber.

     The  existence  of local subnetworks is communicated to
the system at the time a  network  interface  is  configured
with  the  _n_e_t_m_a_s_k option to the _i_f_c_o_n_f_i_g program.  A ``net-
work mask'' is specified to define the portion of the Inter-
net  address  that  is to be considered the network part for
that network.  This mask normally contains the  bits  corre-
sponding to the standard network part as well as the portion
of the local part that has been assigned to subnets.  If  no
mask  is  specified  when the address is set, it will be set
according to the class of  the  network.   For  example,  at
Berkeley  (class  B network 128.32) 8 bits of the local part
have been reserved for  defining  subnetworks;  consequently
the /etc/rc.local file contains lines of the form

-----------
|^ If you are unfamiliar with the Internet address-
  ing  structure,  consult  ``Address  Mappings'',
  Internet  RFC-796, J. Postel; available from the
  Internet Network Information Center at SRI.



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 51


     ifconfig en0 netmask 0xffffff00 128.32.1.7

This specifies that for interface ``en0'', the upper 24 bits
of the Internet address should be used in  calculating  net-
work  numbers  (netmask  0xffffff00),  and  the  interface's
Internet  address  is  ``128.32.1.7''  (host  7  on  network
128.32.1).   Hosts  _m on sub-network _n of this network would
then have addresses of the form ``128.32._n._m'';   for  exam-
ple,   host   99  on  network  129  would  have  an  address
``128.32.129.99''.  For hosts with multiple interfaces,  the
network  mask  should be set for each interface, although in
practice only the mask of the first interface on  each  net-
work is actually used.

55..33..  IInntteerrnneett bbrrooaaddccaasstt aaddddrreesssseess

     The address defined as the broadcast address for Inter-
net networks according to RFC-919 is the address with a host
part of all 1's.  The address used by 4.2BSD was the address
with a host part of 0.  2.11BSD uses the standard  broadcast
address  (all  1's)  by  default,  but  allows the broadcast
address to be set (with _i_f_c_o_n_f_i_g) for each interface.   This
allows  networks consisting of both 4.2BSD and 2.11BSD hosts
to coexist.  In  the  presence  of  subnets,  the  broadcast
address  uses the subnet field as for normal host addresses,
with the remaining host part set to 1's (or 0's, on  a  net-
work that has not yet been converted).  2.11BSD hosts recog-
nize and accept packets sent to the  logical-network  broad-
cast  address  as well as those sent to the subnet broadcast
address, and when using an all-1's broadcast, also recognize
and receive packets sent to host 0 as a broadcast.

55..44..  RRoouuttiinngg

     If  your  environment  allows  access  to  networks not
directly attached to your host you will need to set up rout-
ing information to allow packets to be properly routed.  Two
schemes are supported  by  the  system.   The  first  scheme
employs  the routing table management daemon _r_o_u_t_e_d to main-
tain the system routing tables.  The routing daemon  uses  a
variant  of  the Xerox Routing Information Protocol to main-
tain up to date routing tables in a cluster  of  local  area
networks.   By  using  the  _/_e_t_c_/_g_a_t_e_w_a_y_s  file  created  by
_h_t_a_b_l_e(8), the routing daemon can also be used to initialize
static  routes to distant networks (see the next section for
further discussion).  When the routing daemon is started  up
(usually  from  _/_e_t_c_/_r_c_._l_o_c_a_l)  it reads _/_e_t_c_/_g_a_t_e_w_a_y_s if it
exists and installs those routes defined there, then  broad-
casts on each local network to which the host is attached to
find  other  instances  of  the  routing  daemon.   If   any
responses  are  received,  the  routing daemons cooperate in
maintaining a globally consistent view  of  routing  in  the
local  environment.   This  view  can be extended to include
remote sites also running the routing daemon by  setting  up



                        17 March 1998





setup.2.11 - 52Installing and Operating 2.11BSD on the PDP-11


suitable  entries  in _/_e_t_c_/_g_a_t_e_w_a_y_s; consult _r_o_u_t_e_d(8) for a
more thorough discussion.

     The second approach is to define a default or  wildcard
route  to  a smart gateway and depend on the gateway to pro-
vide ICMP routing redirect information to dynamically create
a routing data base.  This is done by adding an entry of the
form

     route add default _s_m_a_r_t_-_g_a_t_e_w_a_y 1

to _/_e_t_c_/_r_c_._l_o_c_a_l; see _r_o_u_t_e(8) for  more  information.   The
default  route  will  be  used  by  the  system  as a ``last
resort'' in routing packets to their destination.   Assuming
the  gateway to which packets are directed is able to gener-
ate the proper routing redirect messages,  the  system  will
then add routing table entries based on the information sup-
plied.  This approach has certain advantages over the  rout-
ing  daemon, but is unsuitable in an environment where there
are only bridges (i.e.  pseudo gateways that, for  instance,
do not generate routing redirect messages).  Further, if the
smart gateway goes down there is no alternative, save manual
alteration  of  the routing table entry, to maintaining ser-
vice.

     The system always listens, and processes, routing redi-
rect  information,  so it is possible to combine both of the
above facilities.  For example, the routing table management
process  might  be  used  to maintain up to date information
about routes to geographically local networks, while employ-
ing  the  wildcard  routing  techniques for ``distant'' net-
works.  The _n_e_t_s_t_a_t(1) program may be used to display  rout-
ing  table  contents  as  well  as  various routing oriented
statistics.  For example,

     ##netstat -r

will display the contents of the routing tables, while

     ##netstat -r -s

will show the number of routing  table  entries  dynamically
created as a result of routing redirect messages, etc.

55..55..  UUssee ooff 22..1111BBSSDD mmaacchhiinneess aass ggaatteewwaayyss

     Only  sheer  insanity  could  prompt the use of 2.11BSD
machines as gateways.  If you rreeaallllyy want to  do  this  then
the  best  recourse is to prowl the sources and see what has
to be done.  The code is all there, and  the  "ipforwarding"
variable is present.

     Local  area  routing  within  a group of interconnected
Ethernets  and  other  such  networks  may  be  handled   by



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 53


_r_o_u_t_e_d(8).   Gateways  between  the Internet and one or more
local networks require an additional routing  protocol,  the
Exterior Gateway Protocol (EGP), to inform the core gateways
of their presence and to acquire  routing  information  from
the core.

55..66..  NNeettwwoorrkk sseerrvveerrss

     In  2.11BSD  most of the server programs are started up
by a ``super server'', the Internet  daemon.   The  Internet
daemon,  _i_n_e_t_d,  acts as a master server for programs speci-
fied in its configuration file,  _/_e_t_c_/_i_n_e_t_d_._c_o_n_f,  listening
for  service requests for these servers, and starting up the
appropriate program whenever a  request  is  received.   The
configuration  file contains lines containing a service name
(as found in _/_e_t_c_/_s_e_r_v_i_c_e_s), the type of socket  the  server
expects (e.g. stream or dgram), the protocol to be used with
the socket (as found in _/_e_t_c_/_p_r_o_t_o_c_o_l_s), whether to wait for
each server to complete before starting up another, the user
name as which the server should run,  the  server  program's
name,  and at most five arguments to pass to the server pro-
gram.  Some trivial services are implemented  internally  in
_i_n_e_t_d,  and  their  servers are listed as ``internal.''  For
example, an entry for  the  file  transfer  protocol  server
would appear as

     ftp  stream    tcp  nowait    root /usr/libexec/ftpd   ftpd -l

or if you are using the _t_c_p___w_r_a_p_p_e_r program as

     ftp  stream    tcp  nowait    root /usr/libexec/tcpd   ftpd -l

Consult  _i_n_e_t_d(8)  for more detail on the format of the con-
figuration file and the operation of the Internet daemon.

55..77..  NNeettwwoorrkk ddaattaa bbaasseess

     Several data files are used by the network library rou-
tines  and  server  programs.   Most of these files are host
independent and updated only rarely.

















                        17 March 1998





setup.2.11 - 54Installing and Operating 2.11BSD on the PDP-11


     File               Manual reference   Use
     -------------------------------------------------------------------------------
     /etc/hosts         _h_o_s_t_s(5)           host names
     /etc/networks      _n_e_t_w_o_r_k_s(5)        network names
     /etc/services      _s_e_r_v_i_c_e_s(5)        list of known services
     /etc/protocols     _p_r_o_t_o_c_o_l_s(5)       protocol names
     /etc/hosts.equiv   _r_s_h_d(8)            list of ``trusted'' hosts
     /etc/rc.local      _r_c(8)              command script for starting servers
     /etc/ftpusers      _f_t_p_d(8)            list of ``unwelcome'' ftp users
     /etc/hosts.lpd     _l_p_d(8)             list of hosts allowed to access printers
     /etc/inetd.conf    _i_n_e_t_d(8)           list of servers started by _i_n_e_t_d


The files distributed are set up for Internet hosts.   Local
networks  and  hosts  should  be added to describe the local
configuration.  Network numbers will have to be  chosen  for
each  Ethernet.   For  sites  not connected to the Internet,
these can be chosen more or less arbitrarily, otherwise  the
normal  channels  should  be  used for allocation of network
numbers.

55..77..11..  RReeggeenneerraattiinngg //eettcc//hhoossttss aanndd //eettcc//nneettwwoorrkkss

     When using the  host  address  routines  that  use  the
Internet  name  server, the file _/_e_t_c_/_h_o_s_t_s is only used for
setting interface addresses and  at  other  times  that  the
server  is  not  running, and therefore it need only contain
addresses for local hosts.  There is no  equivalent  service
for  network  names yet.  The days of retrieving a host file
containing all systems on the Internet are  over.   Besides,
you  would  grow  very  old  and run out of disk space while
waiting for _m_k_h_o_s_t_s(8) to process a  hosts  file  containing
the  several  million  entries.   Therefore  the  details of
retrieving  a  master  hosts  file   using   _h_t_a_b_l_e(8)   and
_g_e_t_t_a_b_l_e(8)  have  been removed from this document.  However
if you do use local hosts files you will still need  to  run
_m_k_h_o_s_t_s(8) and this is described below.

     If  you  are  using  the  host  table for host name and
address mapping, you should run _m_k_h_o_s_t_s(8) after  installing
_/_e_t_c_/_h_o_s_t_s.   The  _m_k_h_o_s_t_s(8)  program has been enhanced for
2.11BSD to allow multiple addresses per host.  The order  in
which the addresses are given in _/_e_t_c_/_h_o_s_t_s is preserved, so
the entries for a given host should be in  order  of  impor-
tance.   If  you are using the name server for the host name
and address mapping, you only need to install _n_e_t_w_o_r_k_s and a
small  copy  of  _h_o_s_t_s  describing your local machines.  The
full host table in this case might be placed somewhere  else
for  reference by users.  The gateways file may be installed
in _/_e_t_c_/_g_a_t_e_w_a_y_s if you use _r_o_u_t_e_d(8) for local routing  and
wish to have static external routes installed when _r_o_u_t_e_d is
started.  This procedure is essentially  obsolete,  however,
except  for  individual  hosts that are on the Milnet and do
not forward packets from a local network.  Other  situations



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 55


require the use of ggaatteedd.  That program can never be made to
run on a PDP-11 due to address space considerations.   Also,
the  networking code could not even begin to handle the num-
ber of routes which would be received.

     If you are connected to the Internet, it is highly rec-
ommended  that you use the name server resolver routines for
your host name and address mapping, as this provides  access
to  a much larger set of hosts than are provided in the host
table.  Many large organization on  the  network,  currently
have  only  a  small percentage of their hosts listed in the
host table retrieved from NIC.

55..77..22..  //eettcc//hhoossttss..eeqquuiivv

     The remote login and shell servers use  an  authentica-
tion  scheme  based  on trusted hosts.  The _h_o_s_t_s_._e_q_u_i_v file
contains a list of hosts that are  considered  trusted  and,
under a single administrative control.  When a user contacts
a remote login  or  shell  server  requesting  service,  the
client  process passes the user's name and the official name
of the host on which the client is located.  In  the  simple
case,  if  the host's name is located in _h_o_s_t_s_._e_q_u_i_v and the
user has an account on the server's machine, then service is
rendered (i.e. the user is allowed to log in, or the command
is executed).  Users  may  expand  this  ``equivalence''  of
machines  by installing a _._r_h_o_s_t_s file in their login direc-
tory.  The root login is handled  specially,  bypassing  the
_h_o_s_t_s_._e_q_u_i_v file, and using only the _/_._r_h_o_s_t_s file.

     Thus,  to  create  a  class of equivalent machines, the
_h_o_s_t_s_._e_q_u_i_v file should contain the _o_f_f_i_c_i_a_l names for those
machines.   If you are running the name server, you may omit
the domain part of the host name for machines in your  local
domain.   For  example, several machines on my local network
are considered trusted, so the _h_o_s_t_s_._e_q_u_i_v file  is  of  the
form:

     wlv
     wlonex
     wlonex0
     wlbr


55..77..33..  //eettcc//rrcc..llooccaall

     Most  network  servers  are automatically started up at
boot time by the command file /etc/rc (if they are installed
in  their presumed locations) or by the Internet daemon (see
above).  These include the following:







                        17 March 1998





setup.2.11 - 56Installing and Operating 2.11BSD on the PDP-11


     Program    Server                            Started by
     --------------------------------------------------------
     rshd       shell server                      inetd
     rexecd     exec server                       inetd
     rlogind    login server                      inetd
     telnetd    TELNET server                     inetd
     ftpd       FTP server                        inetd
     fingerd    Finger server                     inetd
     tftpd      TFTP server                       inetd
     rwhod      system status daemon              /etc/rc
     syslogd    error logging server              /etc/rc
     sendmail   SMTP server                       /etc/rc
     routed     routing table management daemon   /etc/rc


Consult the  manual  pages  and  accompanying  documentation
(particularly  for  sendmail) for details about their opera-
tion.

     To have other network servers started up as  well,  the
appropriate  line  should  be added to the Internet daemon's
configuration file _/_e_t_c_/_i_n_e_t_d_._c_o_n_f, or commands  similar  to
the  following  should  be placed in the site dependent file
_/_e_t_c_/_r_c_._l_o_c_a_l.

     if [ -f /usr/sbin/rwhod ]; then
          rwhod & echo -n ' rwhod'           >/dev/console
     fi


55..77..44..  //eettcc//ffttppuusseerrss

     The FTP server included in the system provides  support
for an anonymous FTP account.  Because of the inherent secu-
rity problems with such a facility you should read this sec-
tion carefully if you consider providing such a service.

     An anonymous account is enabled by creating a user _f_t_p.
When a client uses the anonymous account a _c_h_r_o_o_t(2)  system
call  is performed by the server to restrict the client from
moving outside that part of the file system where  the  user
ftp  home  directory  is  located.  Because a _c_h_r_o_o_t call is
used, certain programs and files used by the server  process
must be placed in the ftp home directory.  Further, one must
be sure that  all  directories  and  executable  images  are
unwritable.  The following directory setup is recommended.











                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 57


     ## cd ~ftp
     ## chmod 555 .; chown ftp .; chgrp ftp .
     ## mkdir bin etc pub
     ## chown root bin etc
     ## chmod 555 bin etc
     ## chown ftp pub
     ## chmod 777 pub
     ## cd bin
     ## cp /bin/sh /bin/ls .
     ## chmod 111 sh ls
     ## cd ../etc
     ## cp /etc/passwd /etc/group .
     ## chmod 444 passwd group

When  local users wish to place files in the anonymous area,
they must be placed in a subdirectory.  In the  setup  here,
the directory _~_f_t_p_/_p_u_b is used.

     NOTE:  Mode 777 on the 'pub' directory can and has been
abused!  Changing the mode to 555 is a good choice but would
require  administrative  assistance for placing files in the
'pub' directory.  Probably not a bad idea though.

     Another issue to consider is the  copy  of  _/_e_t_c_/_p_a_s_s_w_d
placed  here.   It may be copied by users who use the anony-
mous account.  They may then try to break the  passwords  of
users  on your machine for further access.  A good choice of
users to include in this copy might be root,  daemon,  uucp,
and the ftp user.

     Aside  from  the  problems of directory modes and such,
the ftp server may provide a  loophole  for  interlopers  if
certain  user  accounts are allowed.  The file _/_e_t_c_/_f_t_p_u_s_e_r_s
is checked on each connection.  If the requested  user  name
is  located  in the file, the request for service is denied.
This file normally has the following names on our systems.

     uucp
     root

Accounts with nonstandard shells should be  listed  in  this
file.  Accounts without passwords need not be listed in this
file, the ftp server will not service these users.














                        17 March 1998





setup.2.11 - 58Installing and Operating 2.11BSD on the PDP-11


                    66.. SSYYSSTTEEMM OOPPEERRAATTIIOONN



     This section describes procedures  used  to  operate  a
PDP-11  UNIX  system.   Procedures  described  here are used
periodically, to reboot the system, analyze  error  messages
from  devices,  do disk backups, monitor system performance,
recompile system software and control local changes.

66..11..  BBoooottssttrraapp aanndd sshhuuttddoowwnn pprroocceedduurreess

     In a normal reboot, the system  checks  the  disks  and
comes  up  multi-user  without  intervention at the console.
Such a reboot can be stopped (after it prints the date) with
a ^C (interrupt).  This will leave the system in single-user
mode, with only the console terminal  active.   It  is  also
possible to allow the filesystem checks to complete and then
to return to single-user mode by signaling _f_s_c_k with a  QUIT
signal (^\).

     If  booting  from  the console command level is needed,
then the command

     >>>>>> B

will boot from the default device and ask for  the  name  of
the  system  to  be booted.  Other systems such as the 11/44
require a device name to be given:

     >>>>>> B DU

to boot from a MSCP/UDA device.  Typing  a  carriage  return
will  cause  the  default  system (as compiled in in section
4.1), to be booted.  In any case, the system  selected  will
come up in single-user mode.

     To  bring  the  system up to a multi-user configuration
from the single-user all you have to do is  hit  ^D  on  the
console.  The system will then execute /etc/rc, a multi-user
restart script (and /etc/rc.local), and come up on the  ter-
minals  listed as active in the file /etc/ttys.  See _i_n_i_t(8)
and _t_t_y_s(5).  Note, however, that this does not cause a file
system  check  to be performed.  Unless the system was taken
down cleanly, you should run ``fsck'' or force a reboot with
_r_e_b_o_o_t(8) to have the disks checked.

     To  take the system down to a single user state you can
use

     ## kill 1

or use the _s_h_u_t_d_o_w_n(8) command (which is much  more  polite,
if there are other users logged in.)  when you are up multi-



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 59


user.  Either command will kill all processes and give you a
shell  on the console, as if you had just booted.  File sys-
tems remain mounted after the system is  taken  single-user.
If  you wish to come up multi-user again, you should do this
by:

     ## cd /
     ## umount -a
     ## ^D


     Each system shutdown, crash, processor halt and  reboot
is recorded in the file /usr/adm/shutdownlog with the cause.

66..22..  DDeevviiccee eerrrroorrss aanndd ddiiaaggnnoossttiiccss

     When serious errors occur on peripherals or in the sys-
tem,  the system prints a warning diagnostic on the console.
These messages are written to the kernel logger  where  they
are  retrieved by _s_y_s_l_o_g_d(8) via _/_d_e_v_/_k_l_o_g - _d_m_e_s_g(8) is now
obsolete.  _d_m_e_s_g(8) is present in the  distribution  but  no
longer  used.   The  message  buffer  is now 4kb in size and
external to the kernel.

     Error messages printed by the devices in the system are
described  with  the drivers for the devices in section 4 of
the programmer's manual.  Some drivers have been modified to
use  the kernel logger, others still simply do printf state-
ments.  If errors occur suggesting  hardware  problems,  you
should contact your hardware support group or field service.
It is a good idea to examine the error log  files  regularly
(e.g. with ``tail -r _/_u_s_r_/_a_d_m_/_m_e_s_s_a_g_e_s'').

66..33..  FFiillee ssyysstteemm cchheecckkss,, bbaacckkuuppss aanndd ddiissaasstteerr rreeccoovveerryy

     Periodically  (say  every  week or so in the absence of
any problems) and always  (usually  automatically)  after  a
crash,  all  the  file systems should be checked for consis-
tency by _f_s_c_k(8).  The procedures  of  _r_e_b_o_o_t(8)  should  be
used  to get the system to a state where a file system check
can be performed manually or automatically.

     Dumping of the file systems should be done on a regular
schedule,  since  once  the  system  is  going it is easy to
become complacent.  Complete and incremental dumps are  eas-
ily  done  with _d_u_m_p(8).  You should arrange to do a towers-
of-hanoi dump sequence; we tune  ours  so  that  almost  all
files  are  dumped on two tapes and kept for at least a week
in most every case.  We take full  dumps  every  month  (and
keep these indefinitely).

     More  precisely,  we  have three sets of dump tapes: 10
daily tapes, 5 weekly sets of 2 tapes,  and  fresh  sets  of
three  tapes  monthly.   We do daily dumps circularly on the



                        17 March 1998





setup.2.11 - 60Installing and Operating 2.11BSD on the PDP-11


daily tapes with sequence `3 2 5 4 7 6 9 8 9 9 9 ...'.  Each
weekly  is  a  level  1  and  the  daily dump sequence level
restarts after each weekly dump.  Full dumps are level 0 and
the daily sequence restarts after each full dump also.

     Thus a typical dump sequence would be:

   tape name   level number       date       opr   size
   ------------------------------------------------------
     FULL           0         Nov 24, 1979   jkf   137MB
       D1           3         Nov 28, 1979   jkf   29MB
       D2           2         Nov 29, 1979   rrh   34MB
       D3           5         Nov 30, 1979   rrh   19MB
       D4           4          Dec 1, 1979   rrh   22MB
       W1           1          Dec 2, 1979   etc   40MB
       D5           3          Dec 4, 1979   rrh   15MB
       D6           2          Dec 5, 1979   jkf   25MB
       D7           5          Dec 6, 1979   jkf   15MB
       D8           4          Dec 7, 1979   rrh   19MB
       W2           1          Dec 9, 1979   etc   118MB
       D9           3         Dec 11, 1979   rrh   15MB
      D10           2         Dec 12, 1979   rrh   26MB
       D1           5         Dec 15, 1979   rrh   14MB
       W3           1         Dec 17, 1979   etc   71MB
       D2           3         Dec 18, 1979   etc   13MB
     FULL           0         Dec 22, 1979   etc   135MB

Weekly  dumps  are done often enough that daily dumps always
fit on one tape.

     Dumping of files by name is best done by _t_a_r(1) but the
amount of data that can be moved in this way is limited to a
single tape.  Finally if  there  are  enough  drives  entire
disks  can  be copied with _d_d(1) using the raw special files
and an appropriate blocking factor; the  number  of  sectors
per   track   is  usually  a  good  value  to  use,  consult
_/_e_t_c_/_d_i_s_k_t_a_b.

     It is desirable that full dumps of the root file system
be   made   regularly.    These  dumps  should  be  made  in
``bootable`` format, including the standalone programs  men-
tioned  back  in  chapter 2 (boot, mkfs, restor and icheck).
This can easily be done by going to /sys/pdpstand and doing:

     make all
      ./maketape /dev/nrmtXX maketape.data
     dump 0u /

This  is  especially  true  when only one disk is available.
Then, if the root file system is damaged by  a  hardware  or
software  failure,  you  can rebuild a workable disk doing a
restore in the same way that the initial  root  file  system
was created.




                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 61


     Exhaustion  of  user-file space is certain to occur now
and then and may be managed with a combination of disc  quo-
tas  (the  4.3BSD disc quota system is available as a kernel
configuration option), threatening messages of the day,  and
personal letters.

66..44..  MMoovviinngg ffiillee ssyysstteemm ddaattaa

     If  you have the equipment, the best way to move a file
system is to dump it to magtape using _d_u_m_p(8), use  _n_e_w_f_s(8)
to  create  the new file system, and restore the tape, using
_r_e_s_t_o_r(8).  If for some reason you don't want  to  use  mag-
tape,  dump  accepts  an  argument  telling where to put the
dump; you might use another disk.  Filesystems may  also  be
moved  by piping the output of a _t_a_r(1) to another _t_a_r.  The
_r_e_s_t_o_r program accesses the raw device, laying  down  inodes
and  blocks  in the same place they came from as recorded by
dump.  Care must therefore be taken when  restoring  a  dump
into a file system smaller than the original file system.

     If  you  have  to  shrink a file system or merge a file
system into another, existing one, the best bet  is  to  use
_t_a_r(1).   If  you  are playing with the root file system and
only have one drive, the procedure is more complicated.   If
the  only drive is a Winchester disk, this procedure may not
be used without overwriting the  existing  root  or  another
partition.  What you do is the following:

1.   GET A SECOND PACK!!!!

2.   Dump the root file system to tape using _d_u_m_p(8).

3.   Bring the system down and mount the new pack.

4.   Load  the  distribution  tape  and install the new root
     file system as you did when first installing  the  sys-
     tem.

5.   Boot normally using the newly created disk file system.

     Note that if you add new disk drivers they should  also
be  added to the standalone system in _/_s_y_s_/_p_d_p_s_t_a_n_d.  If you
change the disk partition tables the default disk  partition
tables in _/_e_t_c_/_d_i_s_k_t_a_b should be modified.

66..55..  RReeccoommppiilliinngg aanndd rreeiinnssttaalllliinngg ssyysstteemm ssooffttwwaarree

     It  is  easy to regenerate the system, and it is a good
idea to try rebuilding pieces of the system to build  confi-
dence  in  the procedures.  The system consists of two major
parts: the  kernel  itself  (/sys)  and  the  user  programs
(/usr/src  and  subdirectories).   The major part of this is
/usr/src.




                        17 March 1998





setup.2.11 - 62Installing and Operating 2.11BSD on the PDP-11


     The  three  major  libraries  are  the  C  library   in
/usr/src/lib/libc      and     the     FORTRAN     libraries
/usr/src/usr.lib/libI77  and  /usr/src/usr.lib/libF77.    In
each  case the library is remade by changing into the corre-
sponding directory and doing

     ## make

and then installed by

     ## make install

Similar to the system,

     ## make clean

cleans up.

     The source for all other libraries is kept in subdirec-
tories  of  /usr/src/usr.lib; each has a makefile and can be
recompiled by the above recipe.

     If you look at /usr/src/Makefile, you will see that you
can recompile the entire system source with one command.  To
recompile a specific program,  find  out  where  the  source
resides  with  the  _w_h_e_r_e_i_s(1)  command, then change to that
directory and remake it with the  makefile  present  in  the
directory.  For instance, to recompile ``date'', all one has
to do is

     ## whereis date
     ddaattee:: //uussrr//ssrrcc//bbiinn//ddaattee..cc //bbiinn//ddaattee //uussrr//mmaann//mmaann11//ddaattee..11
     ## cd /usr/src/bin
     ## make date

this will create an  unstriped  version  of  the  binary  of
``date''  in  the  current directory.  To install the binary
image, use the install command as in

     ## install -s date /bin/date

The -s option will insure the installed version of date  has
its  symbol  table  stripped.  The install command should be
used instead of mv or cp as it understands  how  to  install
programs even when the program is currently in use.

     If  you wish to recompile and install all programs in a
particular target area you can override the  default  target
by doing:

     ## make
     ## make DESTDIR=_p_a_t_h_n_a_m_e install





                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 63


     To regenerate all the system source you can do

     ## cd /usr/src
     ## make


     If  you  modify  the  C library, say to change a system
call, and  want  to  rebuild  and  install  everything  from
scratch  you  have  to be a little careful.  You must insure
that the libraries are installed before the remainder of the
source, otherwise the loaded images will not contain the new
routine from  the  library.   The  following  sequence  will
accomplish this.

     ## cd /usr/src
     ## make clean
     ## make build
     ## make installsrc

The  first  _m_a_k_e removes any existing binaries in the source
trees to insure that everything is reloaded.  The next  _m_a_k_e
compiles and installs the libraries and compilers, then com-
piles the remainder of the sources.  The final line installs
all  of the commands not installed in the first phase.  This
will take about 12 hours on a reasonably configured 11/44.

66..66..  MMaakkiinngg llooccaall mmooddiiffiiccaattiioonnss

     /usr/new is used by default for the programs that  con-
stitute the contributed software portion of the distribution
but which may not have man pages installed.  Locally written
commands that aren't distributed (or whose man pages are not
up to date) are kept in /usr/src/local  and  their  binaries
are kept in /usr/local.  This allows /usr/bin, /usr/ucb, and
/bin to correspond to the  distribution  tape  People  using
/usr/local commands are made aware that the programs may not
be in the base system yet.

66..77..  AAccccoouunnttiinngg

     UNIX optionally records two kinds of accounting  infor-
mation:   connect   time  accounting  and  process  resource
accounting.  The  connect  time  accounting  information  is
stored in the file _/_u_s_r_/_a_d_m_/_w_t_m_p, which is summarized by the
program _a_c(8).  The process time accounting  information  is
stored  in  the  file  _/_u_s_r_/_a_d_m_/_a_c_c_t  after it is enabled by
_a_c_c_t_o_n(8), and is analyzed and  summarized  by  the  program
_s_a(8).

     If  you  need  to  recharge for computing time, you can
develop procedures based  on  the  information  provided  by
these commands.  A convenient way to do this is to give com-
mands to the clock daemon _c_r_o_n to be executed every day at a
specified   time.    This   is   done  by  adding  lines  to



                        17 March 1998





setup.2.11 - 64Installing and Operating 2.11BSD on the PDP-11


_/_u_s_r_/_a_d_m_/_c_r_o_n_t_a_b; see _c_r_o_n(8) for details.

66..88..  RReessoouurrccee ccoonnttrrooll

     Resource control in 2.11BSD is more elaborate  than  in
previous PDP-11 UNIX systems.  The resources consumed by any
single  process  can  be  limited  by  the   mechanisms   of
_s_e_t_r_l_i_m_i_t(2).   As  distributed, the mechanism is voluntary,
though sites may choose to modify  the  login  mechanism  to
impose  limits.   Csh  now  has  the  _l_i_m_i_t_s builtin command
enabled.  Another available option is the 4.3BSD disc  quota
system.

66..99..  FFiilleess tthhaatt nneeeedd ppeerriiooddiicc aatttteennttiioonn

     The  discussion  of  system  operations is concluded by
listing the files that require  periodic  attention  or  are
system specific

//eettcc//ffssttaabb              how disk partitions are used
//eettcc//ddiisskkttaabb            disk partition sizes
//eettcc//pprriinnttccaapp           printer data base
//eettcc//ggeettttyyttaabb           terminal type definitions
//eettcc//rreemmoottee             names and phone numbers of remote machines for _t_i_p(1)
//eettcc//ggrroouupp              group memberships
//eettcc//mmoottdd               message of the day
//eettcc//mmaasstteerr..ppaasssswwdd      password file; each account has a line
//eettcc//rrcc..llooccaall           local system restart script; runs reboot; starts daemons
//eettcc//iinneettdd..ccoonnff         local internet servers
//eettcc//hhoossttss              host name data base
//eettcc//nneettwwoorrkkss           network name data base
//eettcc//nneettssttaarrtt           Startup file to configure network
//eettcc//sseerrvviicceess           network services data base
//eettcc//hhoossttss..eeqquuiivv        hosts under same administrative control
//eettcc//ssyysslloogg..ccoonnff        error log configuration for _s_y_s_l_o_g_d(8)
//eettcc//ttttyyss               enables/disables ports
//eettcc//ccrroonnttaabb            commands that are run periodically
//eettcc//aalliiaasseess            mail forwarding and distribution groups
//uussrr//aaddmm//aacccctt           raw process account data
//uussrr//aaddmm//mmeessssaaggeess       system error log
//uussrr//aaddmm//sshhuuttddoowwnnlloogg    log of system reboots
//uussrr//aaddmm//wwttmmpp           login session accounting















                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 65


         AAPPPPEENNDDIIXX AA -- KKEERRNNEELL CCOONNFFIIGGUURRAATTIIOONN OOPPTTIIOONNSS



77..11..  KKeerrnneell ccoonnffiigguurraattiioonn ooppttiioonnss

     The  2.11BSD  kernel  has  a  number  of parameters and
options that can be used to tailor the kernel to  site  spe-
cific needs.  This appendix lists the parameters and options
used in the kernel.  The  parameters  have  numeric  values,
usually  table  sizes.  The options flags are either defined
or undefined (via the values YES or NO respectively.)

     Prototypes for all the following options can  be  found
in  the generic kernel configuration file _/_s_y_s_/_c_o_n_f_/_G_E_N_E_R_I_C.
The process of configuring a new kernel consists  simply  of
copying the generic configuration file to a new file, _S_Y_S_T_E_M
and then editing the  options  in  _S_Y_S_T_E_M  to  reflect  your
needs.   You  can  treat  the items copied from GENERIC as a
``grocery list'',  checking  off  those  options  you  want,
crossing  out those you don't and setting numeric parameters
to reasonable values.

77..22..  CCoonnffiigguurriinngg  tthhee  nnuummbbeerr  ooff  mmoouunnttaabbllee  ffiillee  ssyysstteemmss
((NNMMOOUUNNTT))

     Because of time constraints the NNMMOOUUNNTT constant was not
moved into the kernel configuration file where  it  belongs.
NNMMOOUUNNTT  is  used  to  configure the number of mountable file
systems in 2.11BSD.  Since each slot  in  the  kernel  mount
table  takes  up  close to a half Kb of valuable kernel data
space, the distribution kernel comes configured with  NNMMOOUUNNTT
set to 5.  This is almost certainly too small for most sites
and should be increased to the number of  file  systems  you
expect to mount.

     NNMMOOUUNNTT is defined in _/_s_y_s_/_h_/_p_a_r_a_m_._h.  If you change its
value, you must recompile the  kernel  (obviously)  and  the
following applications: _m_o_u_n_t, _q_u_o_t_a_o_n, _e_d_q_u_o_t_a, _u_m_o_u_n_t, and
_d_f.

77..33..  GGEENNEERRIICC kkeerrnneell ccoonnffiigguurraattiioonn

     All  of  the  generic  kernels  support  the  following
devices:

Device                              Number
-
RK06/07                               2
MSCP (RA) Controllers                 2
MSCP (RA) Disks                       3
RL01/02 Drives                        2
SMD (XP) Controllers                  1




                        17 March 1998





setup.2.11 - 66Installing and Operating 2.11BSD on the PDP-11


SMD (XP) Disks                        2
TE16, TU45, TU77 (HT) Tape drives     2
TM11 (TM) Tape drives                 2
TS11 (TS) Tape drives                 2
TK50 (TMSCP) Tape drives              2


     The  generic  kernel adapts automatically to the booted
device.  The 'a' partition on the booted device is automati-
cally  made  the  root  filesystem and the 'b' partition the
swap area (except for the RL02 which uses the second drive).
The  size  of  the swap partition is determined at run time,
the kernel queries the driver for the number of block in the
'b'  partition.   NNOOTTEE:: If the swap partition is not labeled
as being of type _s_w_a_p the kernel will panic.

77..33..11..  GGEENNEERRIICC kkeerrnneell ccoonnffiigguurraattiioonn ffiillee

     # Machine configuration file for 2.11BSD distributed kernel.
#
# Format:
#       name    value           comments
# An item's value may be either numerical, boolean or a string; if it's
# boolean, use "YES" or "NO" to set it or unset it, respectively.  Use
# the default value and the comments field as indicators of the type of
# field it is.

#########################################
# MACHINE DEPENDENT PARAMETERS          #
#########################################

# Machine type
# Split I/D and hardware floating point are required.
#
# Including UNIBUS map support for machines without a UNIBUS will not cause
# a kernel to die.  It simply includes code to support UNIBUS mapping if
# present.
#
# The define UNIBUS_MAP implements kernel support for UNIBUS mapped
# machines.  However, a kernel compiled with UNIBUS_MAP does *not* have to
# be run on a UNIBUS machine.  The define simply includes support for UNIBUS
# mapping if the kernel finds itself on a machine with UNIBUS mapping.
UNIBUS_MAP      YES                     # include support for UNIBUS mapping

# The define Q22 has been removed.  The references to it were incorrect
# (i.e. using it to distinguish between an Emulex CS02 and a DH11) or
# inappropriate (the if_il.c driver should have been checking if a Unibus
# Map was present at runtime).

#LINEHZ         50              # clock frequency European
LINEHZ          60                      # clock frequency USA

# PDP-11 machine type; allowable values are GENERIC, 44, 70, 73.  GENERIC
# should only be used to build a distribution kernel.  The only use of this



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 67


# option is to select the proper in-line PS instructions (references to the
# PSW use 'spl', 'mfps/mtps' or 'movb' instructions depending on the cpu type).
PDP11           GENERIC         # distribution kernel
#PDP11          44                      # PDP-11/44
#PDP11          70                      # PDP-11/70,45,50,55
#PDP11          73                      # PDP-11/73,53,83,93,84,94

#########################################
# GENERAL SYSTEM PARAMETERS             #
#########################################

IDENT           GENERIC                 # machine name
MAXUSERS        4                       # maxusers on machine

# BOOTDEV is the letter combination denoting the autoboot device,
# or NONE if not using the autoboot feature.
BOOTDEV         NONE            # don't autoboot
#BOOTDEV        dvhp                    # DIVA Comp/V boot device
#BOOTDEV        hk6                     # rk06 boot device
#BOOTDEV        hk7                     # rk07 boot device
#BOOTDEV        ra                      # MSCP boot device
#BOOTDEV        rl                      # rl01/02 boot device
#BOOTDEV        rm                      # rm02/03/05 boot device
#BOOTDEV        br                      # Eaton BR1537/BR1711 boot device
#BOOTDEV        sc11                    # Emulex SC11/B boot device
#BOOTDEV        sc21                    # Emulex SC21 boot device
#BOOTDEV        si                      # si 9500 boot device

# Timezone, in minutes west of GMT
#TIMEZONE       300                     # EST
#TIMEZONE       360                     # CST
#TIMEZONE       420                     # WST
TIMEZONE        480                     # PST
DST             1                       # Daylight Savings Time (1 or 0)

# Filesystem configuration
# Rootdev, swapdev etc. should be in terms of makedev.  For example,
# if you have an SMD drive using the xp driver, rootdev would be xp0a,
# or "makedev(10,0)".  Swapdev would be the b partition, xp0b, or
# "makedev(10,1)".  The 10 is the major number of the device (the offset
# in the bdevsw table in conf.c) and the 0 and 1 are the minor numbers
# which correspond to the partitions as described in the section 4 manual
# pages.  You can also get the major numbers from the MAKEDEV script in
# /dev.
PIPEDEV         makedev(10,0)           # makedev(10,0) xp0a
ROOTDEV         makedev(10,0)           # makedev(10,0) xp0a
SWAPDEV         makedev(10,1)           # makedev(10,1) xp0b

# DUMPROUTINE indicates which dump routine should be used.  DUMPDEV
# should be in terms of makedev.  If DUMPDEV is NODEV no automatic
# dumps will be taken, and DUMPROUTINE needs to be set to "nulldev" to
# resolve the reference.  See param.h and ioconf.c for more information.
# DUMPLO should leave room for the kernel to start swapping without
# overwriting the dump.



                        17 March 1998





setup.2.11 - 68Installing and Operating 2.11BSD on the PDP-11


DUMPLO          512                     # dump start address
DUMPDEV         NODEV                   # makedev(10,1) xp0b
DUMPROUTINE     nulldev                 # no dump routine.
#DUMPROUTINE    hkdump                  # hk driver dump routine
#DUMPROUTINE    hpdump                  # hp driver dump routine
#DUMPROUTINE    radump                  # ra driver dump routine
#DUMPROUTINE    rldump                  # rl driver dump routine
#DUMPROUTINE    rmdump                  # rm driver dump routine
#DUMPROUTINE    brdump                  # br driver dump routine
#DUMPROUTINE    sidump                  # si driver dump routine
#DUMPROUTINE    xpdump                  # xp driver dump routine
#DUMPROUTINE    tmsdump                 # tms driver dump routine

#########################################
# KERNEL CONFIGURATION                  #
#########################################

BADSECT         NO              # bad-sector forwarding
EXTERNALITIMES  YES             # map out inode time values
UCB_CLIST       NO                      # clists moved from kernel data space
NOKA5           NO                      # KA5 not used except for buffers
                                        # and clists (_end < 0120000);
QUOTA           NO                      # dynamic file system quotas
                                        # NOTE -- *very* expensive

# UCB_METER is fairly expensive, but various programs (iostat, vmstat, etc)
# use it.
UCB_METER       NO                      # vmstat performance metering

# NBUF is the size of the buffer cache, and is directly related to the UNIBUS
# mapping registers.  There are 32 total mapping registers, of which 30 are
# available.  The 0'th is used for CLISTS, and the 31st is used for the I/O
# page on some PDP's.  It's suggested that you allow 7 mapping registers
# per UNIBUS character device so that you can move 56K of data on each device
# simultaneously.  The rest should be assigned to the block buffer pool.  So,
# if you have a DR-11 and a TM-11, you would leave 14 unassigned for them and
# allocate 16 to the buffer pool.  Since each mapping register addresses 8
# buffers for a 1K file system, NBUF would be 128.  A possible exception would
# be to reduce the buffers to save on data space, as they were 24 bytes each
# Should be 'small' for GENERIC, so room for kernel + large program to run.
NBUF            32                      # buffer cache, *must* be <= 240

# DIAGNOSTIC does various run-time checks, some of which are pretty
# expensive and at a high priority.  Suggested use is when the kernel
# is crashing and you don't know why, otherwise run with it off.
DIAGNOSTIC      NO                      # misc. diagnostic loops and checks

#########################################
# PERIPHERALS: DISK DRIVES              #
#########################################

NBR             0               # EATON BR1537/BR1711, BR1538A, B, C, D

NHK             2               # RK611, RK06/07



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 69


NRAC            1               # NRAD controllers
NRAD            2               # RX50, RC25, RD51/52/53, RA60/80/81

NRK             0               # RK05

NRL             2               # RL01/02

NRX             0               # RX02

NSI             0               # SI 9500 driver for CDC 9766 disks

# Because the disk drive type registers conflict with other DEC
# controllers, you cannot use XP_PROBE for the Ampex 9300 and
# Diva drives.  Read through /sys/pdpuba/hpreg.h and /sys/pdpuba/xp.c
# for information on how to initialize for these drives.
NXPC            1               # NXPD controllers (RH70/RH11 style)
NXPD            2               # RM02/03/05, RP04/05/06, CDC 9766,
                                # Ampex 9300, Diva, Fuji 160, SI Eagle.
XP_PROBE        YES             # check drive types at boot

NRAM            0               # RAM disk size (512-byte blocks)

#########################################
# PERIPHERALS: TAPE DRIVES              #
#########################################

NHT             2               # TE16, TU45, TU77

# Setting AVIVTM configures the TM driver for the AVIV 800/1600/6250
# controller (the standard DEC TM only supports 800BPI).  For more details,
# see /sys/pdpuba/tm.c.
NTM             2               # TM11
AVIVTM          YES             # AVIV 800/1600/6250 controller

NTS             2               # TS11

NTMSCP          2               # TMSCP controllers
NTMS            2               # TMSCP drives
TMSCP_DEBUG     NO              # debugging code in TMSCP drive (EXPENSIVE)

#########################################
# PERIPHERALS: TERMINALS                #
#########################################

# NKL includes both KL11's and DL11's.
# It should always be at least 1, for the console.
NKL             1               # KL11, DL11
NDH             0               # DH11; NDH is in units of boards (16 each)
CS02            NO              # DH units above are really Emulex CS02
                                # boards on a 22bit Qbus.
NDM             0               # DM11; NDM is in units of boards (16 each)
NDHU            0               # DHU11
NDHV            0               # DHV11
NDZ             0               # DZ11; NDZ is in units of boards (8 each)



                        17 March 1998





setup.2.11 - 70Installing and Operating 2.11BSD on the PDP-11


#########################################
# PERIPHERALS: OTHER                    #
#########################################
NDN             0               # DN11 dialer
NLP             0               # Line Printer
LP_MAXCOL       132             # Maximum number of columns on line printers
NDR             0               # DR11-W

#########################################
# PSEUDO DEVICES, PROTOCOLS, NETWORKING #
#########################################
# Networking only works with split I/D and SUPERVISOR space, i.e. with the
# 11/44/45/50/53/55/70/73/83/84.  NETHER should be non-zero for networking
# systems using any ethernet.  CHECKSTACK makes sure the networking stack
# pointer and the kernel stack pointer don't collide; it's fairly expensive
# at 4 extra instructions for EVERY function call AND return, always left
# NO unless doing serious debugging.
INET            NO              # TCP/IP
CHECKSTACK      NO              # Kernel & Supervisor stack pointer checking
NETHER          0               # ether pseudo-device

# Note, PTY's and the select(2) system call do not require the kernel to
# be configured for networking (INET).  Note that you can allocate PTY's
# in any number (multiples of 8, of 16, even, odd, prime, whatever).  Nothing
# in the kernel cares.  PTY's cost 78 bytes apiece in kernel data space.  You
# should probably have at least 8-10 since several applications use them:
# script, jove, window, rlogin, ...
NPTY            0               # pseudo-terminals - GENERIC sys needs NONE

# To make the 3Com Ethernet board work correctly, splimp has to be promoted
# to spl6; splfix files that do this are in conf/3Com; the config script
# does the right thing.
NEC             0               # 3Com Ethernet
NDE             0               # DEUNA/DELUA
NIL             0               # Interlan Ethernet
NSL             0               # Serial Line IP
NQE             0               # DEQNA
NQT             0               # DEQTA (DELQA-YM, DELQA-PLUS)
NVV             0               # V2LNI (Pronet)
NACC            0               # ACC LH/DH ARPAnet IMP interface
PLI             NO              # LH/DH is connected to a PLI
NIMP            0               # ARPAnet IMP 1822 interface

# The following are untested in 2.11BSD; some are untested since before 2.9BSD
# Some won't even compile.  Most will require modification.  Good luck.
ENABLE34        NO              # if have the ENABLE34 board

NCSS            0               # DEC/CSS IMP11-A ARPAnet IMP interface
NDMC            0               # DMC11
NEN             0               # Xerox prototype (3 Mb) Ethernet
NHY             0               # Hyperchannel
NS              0               # Xerox NS (XNS)
NSRI            0               # SRI DR11c ARPAnet IMP
NTB             0               # RS232 interface for Genisco/Hitachi tablets



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 71


# Defining FPSIM to YES compiles a floating point simulator into the kernel
# which will catch floating point instruction traps from user space.  This
# doesn't work at present.
FPSIM           NO              # floating point simulator

# To enable profiling, the :splfix script must be changed to use spl6 instead
# of spl7 (see conf/:splfix.profile), also, you have to have a machine with a
# supervisor PAR/PDR pair, i.e. an 11/44/45/50/53/55/70/73/83/84, as well
# as both a KW11-L and a KW11-P.
#
# Note that profiling is not currently working.  We don't have any plans on
# fixing it, so this is essentially a non-supported feature.
PROFILE         NO              # system profiling with KW11P clock

INGRES          NO              # include the Ingres lock driver










































                        17 March 1998





setup.2.11 - 72Installing and Operating 2.11BSD on the PDP-11


         AAPPPPEENNDDIIXX BB -- SSTTAANNDDAALLOONNEE DDIISSKKLLAABBEELL PPRROOGGRRAAMM



88..11..  SSttaannddaalloonnee ddiisskkllaabbeell eexxaammppllee

     This is a real example of using the  disklabel  program
to  place  a  label  on a disk.  User input is in bboolldd type.
The disklabel program was loaded from a bootable TK50.   The
disk  being labeled in a RD54.  The BOOT> prompt is from the
11/73 console ODT, if you are using an 11/44 the prompt will
be >>>.

     The  first  thing  that is done is request disklabel to
create a default partition  ('a')  which  spans  the  entire
disk.   Some disk types have fixed sizes and geometries, for
example RK05 (rk), RK06/7 (hk) and RL02 (rl)  drives.   With
this type of disk the standalone disklabel program will gen-
erate a label with the correct geometry  and  'a'  partition
size.   With MSCP ('ra') disks disklabel will query the con-
troller for the information it  needs.   The  last  type  of
disk,  SMD  (xp),  presents  many  problems,  disklabel will
attempt to determine the drive type  and  geometry  but  you
will have to verify the information.

      Indented paragraphs like this one are explanatory com-
      ments and are not part of the output from the  diskla-
      bel program.  In the case of MSCP drives the number of
      cylinders may be 1 too low.  This is discussed in  the
      example below.

BOOT> MMUU 00

73Boot from tms(0,0,0) at 0174500
: ttmmss((00,,11))
Boot: bootdev=06001 bootcsr=0174500
disklabel
Disk? rraa((00,,00))
d(isplay) D(efault) m(odify) w(rite) q(uit)? DD
d(isplay) D(efault) m(odify) w(rite) q(uit)? dd

type: MSCP
disk: RD54
flags:
bytes/sector: 512
sectors/track: 17
tracks/cylinder: 15
sectors/cylinder: 255
cylinders: 1220
rpm: 3600
drivedata: 0 0 0 0 0

1 partitions:
#      size   offset   fstype   [fsize bsize]



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 73


  a: 311200 0 2.11BSD 1024 1024  # (Cyl. 0 - 1220*)

      The  columns  do not line up nicely under the headings
      due to limitations of the  sprintf()  routine  in  the
      standalone  I/O  package.   There  is no capability to
      justify the output.  It should be obvious which column
      belongs  under  which  heading.  The '*' says that the
      partition does not end on a cylinder  boundary.   This
      is  due  to the peculiar way in which MSCP returns the
      geometry information:  sectors/track * tracks/cylinder
      * cylinders != sectors per volume.

d(isplay) D(efault) m(odify) w(rite) q(uit)? mm
modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? mm

      It is normally not necessary to change the geometry of
      an MSCP disk.  On the other hand it will almost always
      be  necessary  to specify the geometry of an SMD drive
      (one which uses the XP driver).  Since the drive being
      labeled  is  an MSCP drive the next step is to set the
      pack label to something other than DEFAULT.

modify misc
d(isplay) t(ype) n(ame) l(able) f(lags) r(pm) D(rivedata) q(uit)? ll
label [DEFAULT]: TTEESSTTIINNGG
modify misc
d(isplay) t(ype) n(ame) l(able) f(lags) r(pm) D(rivedata) q(uit)? qq
modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? pp
modify partitions
d(isplay) n(umber) s(elect) q(uit)? dd

type: MSCP
disk: RD54
flags:
bytes/sector: 512
sectors/track: 17
tracks/cylinder: 15
sectors/cylinder: 255
cylinders: 1220
rpm: 3600
drivedata: 0 0 0 0 0

1 partitions:
#      size   offset   fstype   [fsize bsize]
  a: 311200 0 2.11BSD 1024 1024  # (Cyl. 0 - 1220*)

modify partitions
d(isplay) n(umber) s(elect) q(uit)? ss
a b c d e f g h q(uit)? aa
sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors: 6200, 32c, 19c10s respectively
modify partition 'a'



                        17 March 1998





setup.2.11 - 74Installing and Operating 2.11BSD on the PDP-11


d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ss
'a' size [311200]: 1155888844
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? qq
modify partitions
d(isplay) n(umber) s(elect) q(uit)? ss
a b c d e f g h q(uit)? bb
sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors: 6200, 32c, 19c10s respectively
modify partition 'b'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? oo
'b' offset [0]: 1155888844
modify partition 'b'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ss
'b' size [0]: 1166772200
modify partition 'b'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? tt
'b' fstype [unused]: sswwaapp
modify partition 'b'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? qq
modify partitions
d(isplay) n(umber) s(elect) q(uit)? ss
a b c d e f g h q(uit)? cc
sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors: 6200, 32c, 19c10s respectively
modify partition 'c'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? oo
'c' offset [0]: 00
modify partitions 'c'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ss
'c' size [0]: 331111220000
modify partitions 'c'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? tt
'c' fstype [unused]: uunnuusseedd
modify partitions 'c'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? qq
modify partitions
d(isplay) n(umber) s(elect) q(uit)? ss
a b c d e f g h q(uit)? gg
sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors: 6200, 32c, 19c10s respectively
modify partition 'g'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? oo
'g' offset [0]: 3322660044
modify partition 'g'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ss
'g' size [0]: 227788559966
modify partition 'g'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? tt
'g' fstype [unused]: 22..1111BBSSDD
modify partition 'g'
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? qq
modify partitions
d(isplay) n(umber) s(elect) q(uit)? nn
Number of partitions (8 max) [7]? 77



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 75


modify partitions
d(isplay) n(umber) s(elect) q(uit)? qq
modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? dd

type: MSCP
disk: RD54
label: TESTING
flags:
bytes/sector: 512
sectors/track: 17
tracks/cylinder: 15
sectors/cylinder: 255
cylinders: 1220
rpm: 3600
drivedata: 0 0 0 0 0

7 partitions:
#      size   offset   fstype   [fsize bsize]
  a: 15884   0  2.11BSD 1024 1024  # (Cyl. 0 - 62*)
  b: 16720 15884 swap              # (Cyl. 62*- 127*)
  c: 311200  0   unused 1024 1024  # (Cyl. 0 - 1220*)
  g: 278596 32604 2.11BSD 1024 1024 # (Cyl. 127- 1220*)

modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? qq

      On MSCP disks it is possible you will  see  a  warning
      error like this:

      partition c: extends past end of unit 0 311200 311100
      partition  g:  extends  past  end of unit 32604 278596
      311100

      This is not cause for panic.  What this is  saying  is
      that  the  number  of  cylinders is one too low.  MSCP
      devices do not necessarily use all of the last  cylin-
      der.   The  total  number of blocks is precisely known
      for MSCP devices  (it is returned in the act of bring-
      ing  the drive online).  However the number of sectors
      on the volume is not necessarily evenly  divisible  by
      the  number  of  sectors  per track (311200 divided by
      17*15 gives 1220.392).  Basically the last cylinder is
      not fully used.  What must be done is raise the number
      of cylinders by 1.

      NNOOTTEE:: For any other disk type it is cause for  concern
      if  the warning above is issued - it means that incor-
      rect partition or geometry information was entered  by
      the user and needs to be corrected.

d(isplay) D(efault) m(odify) w(rite) q(uit)? mm
modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? gg



                        17 March 1998





setup.2.11 - 76Installing and Operating 2.11BSD on the PDP-11


modify geometry
d(isplay) s(ector/trk) t(rk/cyl) c(yl) S(ector/cyl) q(uit)? cc
cylinders [1220]: 11222211
modify geometry
d(isplay) s(ector/trk) t(rk/cyl) c(yl) S(ector/cyl) q(uit)? qq
modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? qq
d(isplay) D(efault) m(odify) w(rite) q(uit)? ww
d(isplay) D(efault) m(odify) w(rite) q(uit)? qq

73Boot from tms(0,0,1) at 0174500
: rraa((11,,00,,00))uunniixx
ra1 csr[00]: 00117722115544

      The  last  string  entered  shows  how  I boot from an
      alternate controller.  In normal use, i.e. with a sin-
      gle  MSCP  controller,  the  string  would  simply  be
      rraa((00,,00))uunniixx.

88..22..  SSttaannddaalloonnee ddiisskkllaabbeell pprrooggrraamm

     The standalone disklabel program is the second file  on
a  boot tape (after the bootblocks and boot program).  It is
used to place an initial label on a disk describing the disk
and  its partitions.  The program is also used when the root
('a') or swap ('b') partitions of a previously labeled  sys-
tem  disk  must  be  modified.   The  second use is mandated
because the root and swap partitions  can  not  be  modified
while the kernel has them open.

     _d_i_s_k_l_a_b_e_l  effectively runs in CBREAK mode - you do not
need to hit the RETURN key except when prompted for a multi-
character  response  such  as a string (the pack label) or a
number (partition size).  Defaults are placed inside  square
brackets ([default]).   Entering RETURN accepts the default.

     The program is organized into several levels.   _d_i_s_k_l_a_-
_b_e_l  prints the current level out before prompting.  At each
level there is always the choice of d(isplaying) the current
label  and  q(uit)ing the current level and returning to the
previous level.  If you are at the top level and enter qq the
program  will exit back to BBoooott unless you have made changes
to the disklabel.  In that case you will  be  asked  if  you
wish  to  discard  the  changes, if you answer yy the changes
will be discarded.  If the answer is nn the qq is ignored  and
_d_i_s_k_l_a_b_e_l does not exit.

     In  the  following paragraphs the convention is to bboolldd
the user input while leaving the output  from  _d_i_s_k_l_a_b_e_l  in
normal type.  The devices used were a TK50 and an RD54, thus
the tape device is ttmmss and the disk device is rraa.

     The TK50 was booted resulting in the usual message from
BBoooott:



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 77


73Boot from tms(0,0,0) at 0174500
: ttmmss((00,,11))

88..33..  DDiisskkllaabbeell -- ttoouurr ooff tthhee lleevveellss..

Boot: bootdev=06001 bootcsr=0174500
disklabel
Disk? rraa((00,,00))
d(isplay) D(efault) m(odify) w(write) q(uit)? mm

      The  'D'  option  will  request  _d_i_s_k_l_a_b_e_l to create a
      default label based on what the program can  determine
      about  the  drive.  For some devices, such as RL01/02,
      RK06/07, MSCP (RD54, RA81, usw.), _d_i_s_k_l_a_b_e_l can deter-
      mine  what  the  drive type is and how many sectors it
      has.  For other devices, such as SMD drives  supported
      by  the xxpp driver, the task is complicated by the num-
      ber of different controllers and emulations supported.
      Some  3rd party controllers have capabilities that DEC
      controllers do not and the xxpp has no  way  of  knowing
      exactly  which type of controller is present.  In this
      case _d_i_s_k_l_a_b_e_l will gguueessss and then depend  on  you  to
      enter the correct data.

modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? gg
modify geometry
d(isplay)  s(ector/trk) t(rk/cyl) c(yl) S(ector/cyl) q(uit)?
qq

      The Sector/cyl entry is rarely used.   _d_i_s_k_l_a_b_e_l  will
      calculate  this  quantity  for you from the sector/trk
      and trk/cyl quantities.

modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? mm
d(isplay) t(ype) n(ame) l(abel)  f(lags)  r(pm)  D(rivedata)
q(quit)? ff

      Type is one of: SMD, MSCP, old DEC, SCSI, ESDI, ST506,
      floppy.

      Name is a string up to 16 characters in length.  It is
      typically  something  like rrdd5544 or rrmm0033 but may be any
      meaningful string.

      Label is an arbitrary string up to  16  characters  in
      length  -  nothing in the system checks for or depends
      on the contents of the pack label string.

      Rpm is the rotational speed of the drive.  Nothing  in
      the  system  uses  or  depends  on this at the present
      time.  Default is 3600.




                        17 March 1998





setup.2.11 - 78Installing and Operating 2.11BSD on the PDP-11


      Drivedata consists of 5 longwords of  arbitrary  data.
      Reserved for future use.

modify misc flags
d(isplay) c(lear) e(cc) b(adsect) r(emovable) q(uit)? qq

      Ecc   says  that  the  controller/driver  can  correct
      errors.

      Badsect indicates that the controller/driver  supports
      bad sector replacement.

      Removable  indicates  that  the  drive  uses removable
      media (floppy, RL02, RA60 for example).

modify misc
d(isplay) t(type) n(ame) l(abel) f(lags)  r(pm)  D(rivedata)
q(uit)? qq
modify
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? pp
modify partitions
d(isplay) n(umber) s(elect) q(uit)? nn
Number of partitions (8 max) [7]? 77

      This  is the highest partition number considered to be
      valid.  _d_i_s_k_l_a_b_e_l will  adjust  this  parameter  semi-
      automatically  at  the pp level but it may be necessary
      to use nn in cases where some partitions are not to  be
      used or contain invalid information.

modify partitions
d(isplay) n(umber) s(elect) q(uit)? ss
a b c d e f g h q(uit)? aa
sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors:  6200, 32c, 19c10 respectively
modify partition 'a'
d(isplay)  z(ero)  t(ype)  o(ffset)  s(ize)  f(rag)  F(size)
q(uit)? qq

      Zero clears the size and offset fields of a  partition
      entry and sets the filesystem type to uunnuusseedd.

      Type  is  the  filesystem  type  and  of  the possible
      choices only 22..1111BBSSDD, sswwaapp and uunnuusseedd make  any  sense
      to specify.

      Offset  is the number of sectors from the beginning of
      the disk at which the partition starts.

      Size is the number  of  sectors  which  the  partition
      occupies.

      Frag is the number of fragments a filesystem block can
      be broken into.  It is not presently used  and  should



                        17 March 1998





Installing and Operating 2.11BSD on the PDP-11Setup.2.11 - 79


      be left at the default of 1.

      Fsize  is  the filesystem blocksize and should be left
      at the default of 1024.

      modify partitions
      d(isplay) n(umber) s(elect) q(uit)? qq
      modify
      d(isplay) g(eometry) m(isc) p(artitions) q(uit)? qq
      d(isplay) D(efault) m(odify) w(write) q(uit)? qq
      Label changed.  Discard changes [y/n]? yy


      73Boot from tms(0,0,1) at 0174500

88..44..  DDiisskkllaabbeell -- hheellppffuull hhiinnttss aanndd ttiippss..

     Define only those partitions  you  actually  will  use.
There  is  no  need to set up all 8 partitions.  Drives less
than 200Mb probably will only  have  3  partitions  defined,
'a',  'b' and 'd' for /, swap and /usr respectively.  Remem-
ber to set the number of partitions.  Disklabel will attempt
to do this for you by keeping track of the highest partition
you modify but this is not foolproof.

     Do not define overlapping  partitions  unless  you  are
sure  what  you are doing.  _d_i_s_k_l_a_b_e_l will warn you of over-
lapping partitions but will not prohibit  you  from  writing
such a label to disk.

     Remember  that the prompt levels nest in _d_i_s_k_l_a_b_e_l.  It
will be necessary in several cases to enter multiple qq  com-
mands to get back to the top level.

     IIMMPPOORRTTAANNTT::  Keep at least 1, preferably more,  bootable
tape or floppy with _d_i_s_k_l_a_b_e_l on it present  at  all  times.
If  the  label  on  a disk ever becomes corrupted the kernel
will be very unhappy and probably won't boot.  If this  hap-
pens  you will need to boot the standalone _d_i_s_k_l_a_b_e_l program
and relabel the disk.  At least  2.11BSD  provides  a  stan-
dalone  _d_i_s_k_l_a_b_e_l  - previous 4BSD systems which implemented
disklabels did not and the cold-start of those  systems  was
painful indeed.

     IIMMPPOORRTTAANNTT::  Write  down in at least one place, and keep
with the tape/floppy mentioned above, the geometry and  par-
tition layout you assign to the disk.  The _d_i_s_k_l_a_b_e_l_(_8_) _p_r_o_-
_g_r_a_m _s_h_o_u_l_d _b_e _u_s_e_d _t_o _p_r_o_d_u_c_e _a _h_a_r_d_c_o_p_y _o_f _t_h_e  _d_i_s_k_l_a_b_e_l_.









                        17 March 1998


