SysIII/usr/src/man/docs/setup

.ds m \f2U\s-1NIX\s+1 User's Manual\^\fP
.ds u \s-1UNIX\s+1
.ds Y \s-1PDP\s+1-11
.ds Z \s-1VAX\s+1
.ds :? Setting Up UNIX
.PH ""
.OH "'\s9\f2\*(:?\fP''\\\\nP\s0'"
.EH "'\s9\\\\nP''\f2\*(:?\^\fP\s0'"
.tr ~
.nr Hb 3
.nr Hs 3
.nr Hu 4
.ds HF 3 3 2 3 2
.bd S B 3
.de Ds
.DS 1
.br
.lg 0
\!.lg 0
.ss 18
\!.ss 18
.br
..
.de De
.br
\!.ss 12
.ss 12
.lg
\!.lg
.br
.DE
..
.TL
Setting Up U\s-2NIX\s+2
.AU "R. C. Haight" RCH MH
.AU "T. J. Kowalski" TJK MH
.AU "M. J. Petrella" MJP MH
.AU "L. A. Wehr" LAW MH
.MT 4
.H 1 INTRODUCTION
.H 2 Prerequisites
Before attempting to
generate a \s-1UNIX\s+1\(dg
.FS \(dg
UNIX is a Trademark of Bell Laboratories.
.FE
system, you should understand that
a considerable knowledge of the related documentation is required and
assumed.
In particular, you should be very familiar with the
following documents:
.BL 5 compact
.LI
.I "The U\s-1NIX\s+1 Time-Sharing System\^"
.LI
\*m
.LI
.I "C Reference Manual\^"
.LI
.I "Administrative Advice for U\s-1NIX\s+1\^"
.LE
.P
A complete set of pertinent documentation is contained in
.I "Documents for U\s-1NIX\s+1" .
Throughout this document, each reference of the form
.I name (N),
where N is a Arabic number, refers to entry
.I name\^
in Section~N of the
\*m.
.P
You must have a basic
understanding of the operation of the hardware.
This includes the console panel, the tape drives, and
the disk drives, all of which are assumed to have standard \*u
addresses and interrupt vectors.
It is also assumed that the hardware works and has
been completely installed.
All appropriate
\s-1DEC\s+1 diagnostics and the Equipment Test Package
should have been run to test the configuration,
and you must have a detailed description of the
hardware, including device addresses, interrupt vectors, and bus levels.
This information is necessary to generate
the \*u
system.
.P
See Attachment 1 for a list of supported
\s-1CPU\s+1s and devices.
.H 2 Procedure
\*u is distributed on a single, multi-file magnetic tape, recorded
in \%9-track format at 800~bpi.
Distribution tapes will be marked either ``\*Y'' or ``\*Z''; be sure you have
the correct tape for your machine.
.P
The initial load program will copy a file system from tape
(\*Z: \s-1TE\s+116; \*Y: either a \s-1TU\s+110 or a \s-1TU\s+116) to disk (\*Z: \s-1RP\s+106; \*Y: either an \s-1RP\s+103,
an \s-1RK\s+105, an \s-1RL\s+101, or an \s-1RP\s+106).
In this document, we consider
\s-1RP\s+104 and \s-1RP\s+105 drives to be
equivalent to \s-1RP\s+106 drives; any differences will be
noted explicitly.
Once the
.I root\^
file system has been successfully
loaded to disk,
\*u
may be booted and the available
utility programs
may then
be used to complete the installation.
.P
The remaining files on the tape contain source text and
supplemental commands.
These files contain essential information to
generate a new system that will match your
particular hardware and software environment.
.P
In order for any of the update procedures to work correctly, you
.I must\^
be
.I running\^
\s-1UNIX/TS\s+1 or \s-1PWB/UNIX\s+1 Edition~2.0.
Older versions of \*u
cannot be correctly
.I updated\^
with a \*u system.
The
.I cpio (1)
program will not replace any file if its replacement
has a modification time that is less than (i.e., earlier than)
the modification time of the original file.
This can be due to local modifications.
Furthermore, certain
administrative files (e.g., \f2/etc/passwd\^\fP, \f2/usr/lib/crontab\^\fP) are sent
with a modification time of January 1, 1970 to ensure that they do not replace
their counterparts during updates.
Any file not copied will cause
.I cpio (1)
to print a message to that effect.
These messages should always be investigated to ensure
that any files not copied were of that type.
However, note that, depending on respective modification
times, a locally-modified file may get updated, thus destroying
the local modifications.
.P
There are several difficulties that can arise when installing
a \*u system.
One of the most common problems is running out of disk
space when performing an update.
Should this occur, the original contents of the file system
should be restored from a backup copy and the contents of
the update tape should be read into a spare file
system using the
.I cpio (1)
program.
Unwanted material can then be removed and the original file system
can be updated from this new file system using the
.I \-p\^
option of
.I cpio (1).
Modification times of files should also be preserved using the
.I \-m\^
option of
.I cpio (1).
.P
This document is not
strictly linear.
Read it thoroughly,
from start to finish,
and then read it again.
Also, remove the write-protect ring, if present, from
the distribution tape to guard against
accidental erasure.
.H 1 "LOAD PROCEDURES"
.H 2 "Distribution Tape Format"
The eight files are:
a loader, a physical copy of the
.I root\^
file system,
the
.I cpio (1)
program, a
.I cpio (1)
structured copy of the
.I root\^
file system,
and three files
(\f2cpio\^\fP)
that make up
.I /usr .
.I Root\^
refers to the directory ``/'',
which is the root of all the directory trees.
The format of this tape is as follows:
.VL 22 \n(Si compact
.LI "record~0:"
Tape boot loader\-512-bytes;
.LI "record~1:"
Tape boot loader\-512-bytes;
.LI "remainder of file 1:"
Initial load program\-several 512-byte records;
.LI "~~~~~~\f2end-of-file\fP"
.sp .5v
.LI "file~2:"
\f2root\^\fP file system (physical)\-several 5,120-byte records (blocking factor 10);
.LI "~~~~~~\f2end-of-file\fP"
.sp .5v
.LI "file~3:"
\f2cpio\^\fP program (latest version)\-several 512-byte records;
.LI "~~~~~~\f2end-of-file\fP"
.sp .5v
.LI "file~4:"
\f2root\^\fP file system (structured in \f2cpio\^\fP format)\-several 5,120-byte records
(to be used
.I only\^
for updating an earlier \*u);
.LI "~~~~~~\f2end-of-file\fP"
.LI "file~5:"
.I /usr\^
file system except
.I src\^
and
.I man\^
.RI ( cpio ).
.LI "~~~~~~\f2end-of-file\fP"
.LI "file~6:"
.I /usr/src\^
part 1.
.LI "~~~~~~\f2end-of-file\fP"
.LI "file 7:"
.I /usr/src\^
part 2.
.LI "~~~~~~\f2end-of-file\fP"
.LI "file 8:"
.I /usr/man .
.LI "~~~~~~\f2end-of-file\fP"
.LE
.P
The
.I root\^
(/) file system contains the following directories:
.VL 18 \n(Si compact
.LI bck:
Directory used to mount a backup file system for file restoring.
.LI bin:
Public commands; most of what is described in Section~1 of the
\*m.
.LI dev:
Special files, all the devices on the system.
.LI etc:
Administrative programs and tables.
.LI lib:
Public libraries, parts of the assembler, C compiler.
.LI mnt:
Directory used to mount a file system.
.LI lost+found:
Directory used by
.I fsck (1M)
for disconnected files.
.LI stand:
Stand-alone programs.
.LI tmp:
Directory used for temporary files; should be cleaned at reboot.
.LI usr:
Directory used to mount the
.I /usr\^
file system;
user directories often kept here also.
.LE
.H 2 "Initial Load of root"
Mount the distribution tape
on drive~0 and position it at the load point.
.H 3 "\*Y"
Bootstrap the tape by reading
either record~0 or record~1 into memory starting at address~0
and start execution at address~0.
This may be accomplished by using
a standard \s-1DEC\s+1 \s-1ROM\s+1 bootstrap loader, a special \s-1ROM\s+1, or
some manual procedure;
see
.I romboot (8),
.I tapeboot (8),
and
.I 70boot (8).
.H 3 "\*Z"
See ``Installation Boot Procedures'' under
.I vaxops (8).
This
\*m
entry
describes initial tape booting,
and modification of the console floppy disk to simplify
\*u administration.
.H 2 "Common to \*Y and \*Z"
The tape boot loader
will then type ``\*u tape boot loader'' on the console terminal and read
in and execute the initial load program.
The program will then type detailed instructions about
the operation of the program on the console terminal.
First, it will ask what type of \s-1CPU\s+1 you have.
Second, the program will ask what type of disk drive you have
and which drive you plan to use for the copy.
The disk controller used must be at the standard \s-1DEC\s+1
address indicated by the program.
However, other disk controllers on your system may be at
non-standard addresses.
You must mount a formatted, \s-1ECC\s+1 flag-free pack
on the drive you have indicated.
If necessary, use the appropriate \s-1DEC\s+1 diagnostic program to format the pack.
Note that the pack will be written on.
Third, the program will ask what type of tape drive you have
and which drive contains the tape.
Normally, this will be drive~0, but
the program will work with other drives.
Note that the tape is currently positioned
correctly after the end-of-file between the
initial load program and the
.I root\^
file system.
When everything is ready, the program will copy
the file system from the tape to disk and
give instructions for booting \*u.
After the copy is complete and you have booted
the basic version of \*u,
check (using
\f2fsck\^\fP(1M))
the
.I root\^
file system and browse
through it.
.H 3 "\*Y/70 Only"
The file
.I /stand/mmtest\^
is a stand-alone memory mapping diagnostic program for the \*Y/70.
It should be booted and run (20 minutes) if you are not
.I absolutely\^
sure that \s-1DEC\s+1 \s-1FCO\s+1 (field change order) M8140-R002
has been applied to your \*Y/70 \s-1CPU\s+1.
.H 2 "Update of root"
It is very important that the system be running in
.I single-user\^
mode during the update phase.
To update an already existing
.I root\^
file system,
files three and four will be used.
It is necessary to first make a copy of your
.I root\^
file system using
.I volcopy (1M)
and then update this copy.
The copy should be made on a separate disk pack
using the same section number as your
.I root\^
file system (always section~0).
Also, after the update is completed, check
if any of your local administrative files in
the directory
.I /etc\^
need modification.
Most of these are mentioned in Section 4 below.
.P
Mount the tape on drive~0 and position it at the load point.
We assume that disk drive~1 is available for making the copy,
and that the
.I root\^
file system is on
.I /dev/rp0 .
This shell procedure will be different for \s-1RK\s+105 and \s-1RL\s+101
disk drives.
The following
procedure will first make a copy of the
.I root\^
file system, and then update this copy.
Note that
.I /dev/mt4\^
refers to tape drive~0 but has the side effect
of spacing forward to the next end-of-file (no rewind option).
The
.I B\^
option of
.I cpio\^
specifies that input is in 5,120-byte records:
.Ds
volcopy root /dev/rrp0 \f2pkname1\^\fP /dev/rrp10 \f2pkname2\^\fP
mount /dev/rp10 /bck
\f3#\fP~~~The 2 echoes will move the tape to file 3
echo </dev/mt4
echo </dev/mt4
cp /dev/mt4 /bck/bin/cpio
chmod 755 /bck/bin/cpio
chown bin /bck/bin/cpio
cd /bck
/bck/bin/cpio \-idmB </dev/rmt0
cd /
umount /dev/rp10
.De
\f2Pkname1\^\fP and \f2pkname2\^\fP are the volume names
of the source and destination disk packs, respectively.
If the new copy is satisfactory,
shut down and halt the system, change disk packs, and
reboot the system using the new
.I root .
.P
.H 2 "Files 5, 6, 7, and 8 (/usr) Format"
File~5 contains the
.I /usr\^
file system in
.I cpio (1)
format (5,120-byte records).
The
.I /usr\^
file system contains
commands and files that must
be available (mounted) when
the system is in
.I multi-user\^
mode.
The tape contains the following directories:
.VL 18 \n(Si compact
.nh
.na
.LI adm:
Miscellaneous administrative command and data files,
including the connect-time accounting file
.I wtmp\^
and the process accounting file
.I pacct .
.LI bin:
Public commands; an overflow for
.I /bin .
.LI dict:
Dictionaries for word processing programs.
.LI games:
Various demonstration and instructional programs.
.LI include:
Public C language
.I #include\^
files.
.LI lib:
Archive libraries, including the text processing macros;
also contains data files for
various programs, such as
.I spell (1)
and
.I cron (1M).
.LI mail:
Mail directory.
.LI man:
Source for the
\*m;
see
.I man (1).
.LI lost+found:
Directory used by
.I fsck (1M)
for disconnected files.
.LI news:
Place for all the various system news.
.LI pub:
Handy public information, e.g., table of \s-1ASCII\s+1 characters.
.LI spool:
Spool directory for daemons.
.LI src:
Source for commands, libraries, the system, etc.
.LI tmp:
Directory for temporary files; should be cleaned at reboot.
.LE
.hy 14
.ad
.P
A table of contents of this tape may be obtained by using
the
.I cpio (1)
options
.I \-itB .
Also, after installation, files and directories deemed useless by the
local administrator may be easily removed.
Alternately, only parts of the tape may be extracted using the
pattern matching capabilities of
.I cpio (1).
.H 2 "Initial Load of /usr"
Mount a file system (device) as
.I /usr .
The ultimate size and location of this file
system on a device is an administrative decision;
initially, the following procedure will suffice:
.Ds
\f3#\fP~~~The 4 echoes will move the tape to file 5
\f3#\fP~~~(mt4 is the no-rewind device)
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
cd /
mkfs /dev/rrp1 35000 7 418
\f3#\fP~~~The magic numbers "7 418" above refer to free-list ordering:
\f3#\fP~~~(rotational angle of 7 and 418 blocks/cylinder for \s-1RP\s+104/5/6/s)
\f3#\fP~~~If you have \s-1RL\s+101 drives, use mkfs /dev/rrl1 10240 13 20
\f3#\fP~~~If you have \s-1RK\s+105 drives, use mkfs /dev/rrk1 4872 3 24
labelit /dev/rrp1 usr \f2pkname\^\fP
mount /dev/rp1 /usr
cd /usr
cpio \-idmB </dev/rmt4 ~\f3#\fP~ file 5: /usr except /src and /man
cd /usr/src
cpio \-idmB </dev/rmt4 ~\f3#\fP~ file 6: 1st part of /usr/src
cpio \-idmB </dev/rmt4 ~\f3#\fP~ file 7: last of /usr/src
cd /usr/man
cpio \-idmB </dev/rmt0 ~\f3#\fP~ file 8: /usr/man
\f3#\fP~~~If you have \s-1RL\s+101 or \s-1RK\s+105 drives, you will have to use separate
\f3#\fP~~~packs for files 5-8.
.De
.I Pkname\^
is the volume name of the pack (e.g., ``p0001'').
.P
Because
.I /usr\^
must be mounted when
the system is in
.I multi-user\^
mode, the file
.I /etc/rc\^
must be changed to include the command lines to mount and unmount
the file systems in
.I single-user\^
and
.I multi-user\^
mode.
These lines must be inserted at the appropriate places in
.I /etc/rc ,
as indicated by comments in the prototype file.
Next the file
.I /etc/checklist\^
should be changed to include
.I /dev/rrp1 ,
.I /dev/rrl1 ,
or
.I /dev/rrk1 ;
see also
.I fsck (1M),
.I labelit (1M),
.I mkfs (1M),
.I mount (1M),
and
.I checklist (5).
.H 2 "Update of /usr"
It is
advisable that the system be running in
.I single-user\^
mode during the update phase.
It is also wise
to first make a copy of your
.I /usr\^
file system for backup purposes.
Next, mount the distribution tape on drive~0 and position it at file~5.
The
.I /usr\^
file system
.I must\^
also be mounted.
The following procedure will perform the update:
.Ds
cd /usr
cpio \-idmB </dev/rmt4
cpio \-idmB </dev/rmt4
cpio \-idmB </dev/rmt4
cpio \-idmB </dev/rmt0
.De
.H 1 "CONFIGURATION PLANNING"
.H 2 "UNIX Configuration"
.P
The basic \*u operating system
supplied supports
only the console, a disk controller (disk drive~0),
and a tape controller (tape drive~0).
The actual configuration of your system must
be described by you.
All of the \*u operating system source code and object
libraries are in
.I /usr/src/uts .
All of the configuration information is kept in the
directory
.I /usr/src/uts/\(**/cf .
There are only two files that must be changed to reflect
your system configuration,
\f2low\^\fP\f3.\fP\f2s\^\fP
and
\f2conf\^\fP\f3.\fP\f2c\^\fP;
the program
.I config (1M)
should be used to make these changes.
.P
.I Config\^
requires a
.I "system description file\^"
and produces the two needed
files.
The first part of the system description file lists all
of the hardware devices on your system.
Next, various system information is listed.
A brief explanation of this information follows;
for more details of syntax and structure, see
.I config (1M)
and the associated
.I master (5);
\s-1TABLE\s+1 I lists the values and sizes of the various parameters
for the different \s-1CPU\s+1s.
.DF
.ce
\f3TABLE I. \|UNIX Configuration Parameters\fP
.sp 3p
.TS
center expand box ;
cI | c s | c s | c s
^ | cI | cI | cI | cI | cI | cI
l | n | n | n | n | n | n .
Item	PDP-11/34, /23	PDP-11/45, /70	VAX-11/780
_
	Value	Size	Value	Size	Value	Size
=
nswap	1000	\-	3000	\-	9000	\-
buffers	15-20	26\(dg	25-60	26\(dg	50-120\(dd	560
sabufs	4-6	538	10-15	538	\-	\-
inodes	30-50	74	100-250	74	100-250	76
files	30-50	8	100-250	8	100-250	12
mounts	3-5	8	8-16	8	8-16	16
coremap	50-100	4	50-100	4	\-	\-
swapmap	50-100	4	50-100	4	50-100	4
calls	15-30	6	30-60	6	30-60	12
procs	30-50	30	50-200	30	50-200	52
texts	10-15	12	25-50	12	25-50	16
clists	10-20	28	100-300	28	100-300	32
maxup	15	\-	15	\-	25	\-
.TE
\(dg Plus 512 bytes outside system space.
\(dd 127 buffers is the system maximum.
.De
.BL "" compact
.LI
.I root \-Specifies
the device where
the
.I root\^
file system is to be found.
The device must be a block device with read/write
capability because this device
will be mounted read/write as ``/''.
Thus, a tape can not be mounted as the
.I root ,
but can be
mounted as some read-only file system.
Normally,
.I root\^
is disk drive~0, section~0.
.LI
.I pipe \-Specifies
where pipes are to be allocated
(must be a file system\-the root file system is normally used).
.LI
.I dump \-Specifies
the device to be used to
dump memory
after a system crash.
Currently only the \s-1TU\s+110 and \s-1TU\s+116/\s-1TE\s+116 tape drives are supported
for this purpose.
.LI
.I swap \-Specifies
the device and blocks that will
be used for
.I swapping .
.I Swplo\^
is the first block number used and
.I nswap\^
indicates how many blocks, starting at
.I swplo ,
to use.
Care must be taken that the swap area
specified does not overlap any file system.
For example, if section~0 is 8,000 blocks long,
the
.I root\^
file system could occupy the first 6,000 blocks and
.I swap\^
the remaining 2,000 by specifying:
.Ds
root rp06 0
swap rp06 0 6000 2000
.De
The \*Z release is set up for a
.I root\^
of 7,000 blocks and a
.I swap\^
of 9,000 blocks.
.LI
.I buffers \-Specifies
how many
.I "system buffers\^"
to allocate.
Real time response improves as more buffers are allocated.
U\s-1NIX\s+1 buffers form a ``data cache''.
Improvement in the hit rate of this cache tends to fall as the number of buffers is increased.
.LI
.I sabufs "\-\*Y only: specifies"
how many
.I "system addressable\^"
buffers to allocate.
One buffer is needed for every mounted file system.
Certain \s-1I/O\s+1 drivers need such buffers.
.LI
.I inodes \-Specifies
how many
.I "inode table\^"
entries to allocate.
Each entry represents a unique open inode.
When the table overflows,
the warning message ``Inode table overflow''
will be printed on the console.
The table size should be increased if this happens regularly.
The number of entries used depends
on the number of active processes, texts, and
mounts.
.LI
.I files \-Specifies
how many
.I "open-file table\^"
entries to allocate.
Each entry represents an open file.
When the table overflows, the
warning message ``no file'' will be printed on the console.
The table size should be increased if this happens regularly.
.LI
.I mounts \-Specifies
how many
.I "mount table\^"
entries to allocate.
Each entry represents a mounted file system.
The
.I root\^
(/)
will always be the first entry.
When full, the
.I mount (2)
system call will return the error \s-1EBUSY\s+1.
.LI
.I coremap "\-\*Y only: specifies"
how many entries to allocate to the
.I "list of free memory" .
Each entry represents a contiguous group of 64-byte blocks of free memory.
When the list overflows,
due to excessive fragmentation,
the system will undoubtedly crash in an unpredictable
manner.
The number of entries used depends
on the number of processes active, their sizes, and the amount
of memory available.
.LI
.I swapmap \-Specifies
how many entries to allocate to the
.I "list of free swap blocks" .
Exactly like the
.I coremap ,
except it represents free blocks in the swap area,
in 512-byte units.
.LI
.I calls \-Specifies
how many
.I "call-out table\^"
entries to allocate.
Each entry represents a function to be invoked at a later time
by the clock handler.
The time unit is 1/60 of a second.
The call-out table is used by the terminal handlers to provide terminal delays
and by various other \s-1I/O\s+1 handlers.
When the table overflows, the system
will crash and print the panic message
``Timeout table overflow'' on the console.
.LI
.I procs \-Specifies
how many
.I "process table\^"
entries to allocate.
Each entry represents an active process.
The scheduler is always the first entry and
.I init (8)
is always the second entry.
The number of entries depends on
the number of terminal lines available
and the number of processes spawned by each user.
The average number of processes per user is in the range of 2-5.
When full, the
.I fork (2)
system call will return the error \s-1EAGAIN\s+1.
.LI
.I texts \-Specifies
how many
.I "text table\^"
entries to allocate.
Each entry represents an active read-only text segment.
Such programs are created by using the
.I \-i\^
or
.I \-n\^
option of the loader
.I ld (1).
When the table overflows,
the warning message ``out of text'' is printed on the console.
.LI
.I clists \-Specifies
how many
.I "character list buffers\^"
to allocate.
Each buffer contains up to 24 bytes.
The buffers are dynamically linked together to form input and
output queues for the terminal lines and
various other slow-speed devices.
The average number of buffers needed per terminal line is in the range of 5-10.
When full, input characters from terminals will
be lost and not echoed.
.LI
.I maxup \-Specifies
how many concurrent processes a user is allowed to run.
.LI
.I power \-Specifies
whether to attempt restart after a power failure.
A value 0 (default) indicates no restart, a value of 1 attempts power-fail restart.
On restart, device drivers are called and process 1
(i.e.,
.I init \^)
is sent a hangup signal;
see
.I init (8).
V\s-1AX\s+1 power-fail is provided for experimental use only in \s-1UNIX\s+1~3.0.
.LE
.H 2 "UNIX Generation"
To generate a new \*u operating system, make sure that the
directories under
.I /usr/src/uts\^
are up-to-date.
Follow the procedure below:
.Ds
cd /usr/src/uts
ed \f2dfile\^\fP
a
~~~[\f2information as described above\^\fP]
\&\f3.\fP
w
q
make \-f uts\f3.\fPmk VER=\f2ver\^\fP SYS=\f2sys\^\fP CONFIG=\f2dfile\^\fP TYPE=\f2type\^\fP NODE=\f2uucpname\^\fP
.De
.I Dfile\^
is the complete path name
or the path name relative to
.I /usr/src/uts/\(**/cf\^
of the file containing the configuration information,
.I sys\^
is a system name,
.I ver\^
is normally
.I mmdd\^
(month and day).
The resulting operating system executable file name is the result of
concatenating
.I sys\^
and
.I ver\^
(i.e., ``utsa0513'').
The
.I uucpname\^
is for network identification.
.I Type\^
is the \s-1CPU\s+1 type: \f3i\fP is used for \*Y/23 and /34,
\f3vax\fP is used for \s-1VAX\s+1,
and \f3id\fP is used for other \s-1CPU\s+1s.
The procedure will compile
\f2low\^\fP\f3.\fP\f2s\^\fP
(\f2univec\^\fP\f3.\fP\f2c\^\fP on the \*Z)
and
\f2conf\^\fP\f3.\fP\f2c\^\fP,
and load them together with the object libraries
into a file called
.I name .
.P
The \*Y system has a relatively small address space, so that if table sizes
or the number of device types are too large, various error
messages will result and the above procedure will only
create an
\f2a\^\fP\f3.\fP\f2out\^\fP
file.
In particular, the maximum available data space is 49,152 bytes
(57,344 bytes on the \*Y/23 and the /34).
The actual data space requested can be found by using
.I size (1)
on
\f2a\^\fP\f3.\fP\f2out\^\fP
and adding the
.I data\^ ,
.I bss\^ ,
and, for \*Y/23 and /34,
text
segment sizes.
One then reduces the specified values for the various
system entries until it all fits.
The amount of space in the
.I bss\^
segment used for each entry is
indicated in Section 3.1 above.
.P
When you are satisfied with the new system,
you can test it by the following procedure:
.Ds
cd /usr/src/uts
cp \f2sysver\^\fP /	# \f2sysver\^\fP as above
cd /
rm /unix
ln /\f2sysver\^\fP /unix
sync
.De
.P
Then halt the processor and reboot
the system.
Note that this procedure results in two names
for the operating system object, the generic
.I /unix ,
and the actual name, say
.I /utsa0501 .
An old system may be booted by referring
to the actual name, but
remember that many programs use the generic name
.I /unix\^
to obtain the
.I name-list\^
of the system.
.P
If the new system does not work, verify that the
correct device addresses and interrupt vectors have been
specified.
If the
.I wrong\^
interrupt vector
and the
.I correct\^
device address have
been specified for a device, the operating system
will print the error message
``stray interrupt at \s-1XXX\s+1''
when the device is accessed,
where \s-1XXX\s+1 is the correct interrupt vector.
If the
.I wrong\^
device address is specified, the system will crash with a
panic trap of type 0 (indicating a timeout) when the
device is accessed.
.H 2 "Special Files"
A special file must be made for every device on your system.
Normally, all special files are located in the directory
.I /dev .
Initially, this directory will contain:
.Ds
.ta 20n
console	console terminal
error	see \f2err\^\fP(4)
mem, kmem, null	see \f2mem\^\fP(4)
tty	see \f2tty\^\fP(4)
rp[0-7], rrp[0-7]	disk drive 0, sections 0-7
rl[0-1], rrl[0-1]	disk drives 0 and 1
rk[0-1], rrk[0-1]	disk drives 0 and 1
mt0, rmt0	tape drive 0 (800 bpi)
mt4, rmt4	tape drive 0 (800 bpi, no rewind).
.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
.De
.P
There are two types of special files, block
and character.
This is indicated by the character
.I b\^
or
.I c\^
in the listing produced by
.I ls (1)
with the \f2\-l\^\fP flag.
.P
In addition, each special file has
a major device number and
a minor device number.
The major device number refers to the device type and is
used as an index into either the
.I bdevsw\^
or
.I cdevsw\^
table in the configuration file
\f2conf\^\fP\f3.\fP\f2c\^\fP.
The minor device number refers to a particular unit of the device type
and is used only by the driver for that type.
The
.I config\^
program with the
.B \-t
option will list major device numbers.
.P
The program
.I mknod (1M)
creates special files.
For example, the following would create
.I part\^
of the initially-supplied
.I /dev\^
directory:
.Ds
cd /dev
mknod console c 0 0
mknod error c 20 0
mknod mem c 2 0\f3;\fP mknod kmem c 2 1\f3;\fP mknod null c 2 2
mknod tty c 13 0
mknod rp0 b 0 0\f3;\fP mknod rrp0 c 7 0
mknod mt0 b 1 0\f3;\fP mknod rmt0 c 6 0
mknod mt4 b 1 4\f3;\fP mknod rmt4 c 6 4
.De
After the special files
have been made, their access modes should be changed to
appropriate values by
.I chmod (1).
For example:
.Ds
cd /dev
chmod 622 console
chmod 444 error
chmod 644 mem kmem
chmod 666 null
chmod 666 tty
chmod 400 rp0 rrp0
chmod 666 mt0 rmt0
chmod 666 mt4 rmt4
.De
.P
Note that file names have no meaning
to the
.I "operating system\^"
itself;
only the major
and minor device numbers are important.
However, many
.I programs\^
expect that a particular file is a certain device.
Thus, by convention, special files are named as follows:
.Ds
.ta 26n 36n
\f2block device	conf\^\fP\f3.\fP\f2c	/dev\^\fP
\s-1RP\s+103 disk	rp	rp\(**
\s-1RP\s+104/5/6 disk	hp	rp\(**
\s-1RS\s+103/4 fixed head disk	hs	rs\(**
\s-1RK\s+105 disk	rk	rk\(**
\s-1RL\s+101 disk	rl	rl\(**
\s-1TU\s+110 tape	tm	mt\(**
\s-1TE/TU\s+116 tape	ht	mt\(**
.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
.De
.Ds
.ta 26n 36n
\f2character device	conf\^\fP\f3.\fP\f2c	/dev\^\fP
\s-1DL\s+111 asynch. line	kl	tty\(**, console
\s-1DH\s+111 asynch. line mux	dh	tty\(**
\s-1DMC\s+111 sync. unit	dmc	dmc\(**
\s-1DZ\s+111 asynch. line mux	dz	tty\(**
\s-1DN\s+111 auto call unit	dn	dn\(**
\s-1DU\s+111 synch. line	du	du\(**
\s-1KMC\s+111 micro	kmc	kmc\(**
\s-1DZ\s+111/KMC11 assist	dza,dzb	tty\(**
\s-1LP\s+111 line printer	lp	lp\(**
\s-1RP\s+103 disk	rp	rrp\(**
\s-1RP\s+104/5/6 disk	hp	rrp\(**
\s-1RS\s+103/4 fixed head disk	hs	rrs\(**
\s-1TU\s+110 tape	tm	rmt\(**
\s-1TE/TU\s+116 tape	ht	rmt\(**
error	err	error
memory	mm	mem, kmem, null
terminal	sy	tty
.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
.De
.P
For those devices with a
.I /dev\^
name ending in \(**,
this character is replaced by a string of digits representing
the
.I minor \^
device number.
For example:
.Ds
mknod /dev/mt1 b 1 1
mknod /dev/rp24 b 0 024
.De
Note that for disks, an octal number scheme
is maintained because each drive is split eight ways.
Thus,
.I /dev/rp24\^
refers to section~4 of physical drive~2.
There is also a special file,
.I /dev/swap ,
that is used by the program
.I ps (1).
This file must reflect what device is used for swapping and must be readable.
For example:
.Ds
rm /dev/swap
mknod /dev/swap b 0 0
chmod 440 /dev/swap
.De
.H 2 "File Systems"
Each physical pack
is split into eight logical sections.
This split is defined in the operating system by a table
with eight entries.
Each table entry is two words long.
The first specifies how many blocks are in the section,
the second specifies the starting cylinder;
see
.I hp (4)
(\s-1RP\s+104/5/6) and
.I rp (4)
(\s-1RP\s+103) for default cylinder and block assignments.
.P
These values are described to the system in the header file
\f2/usr/include/sys/io\^\fP\f3.\fP\f2h\^\fP
which may be changed by using the editor
.I ed (1).
After such a change, the system must be made again
(see Section 3.2 above).
.P
A file system starts at block~0 of a
section of the disk and may be as large as the size
of that section;
if it is smaller than the size of a section,
the remainder of that section is unused.
Note that the sections themselves may
overlap physical areas of the pack,
but the file systems must
.I never\^
overlap.
.P
The program
.I mkfs (1M)
is used to initialize a section of the
disk to be a file system.
Next, the program
.I labelit (1M)
is used to label the file system with
its name and the name of the pack.
Finally, the file system may be checked for consistency by using
.I fsck (1M).
The file system may then be mounted using
.I mount (1M).
.H 2 "DZ11 software with KMC11 assist"
\s-1KMC\s+1 microprocessors may be used to control \s-1DZ\s+111 asynchronous multiplexers,
thus
off-loading terminal-oriented functions from the main \s-1CPU\s+1.
The software is distributed in two forms.
The \s-1KMC\s+111-A version does \s-1DMA\s+1 output of data, character translations, 
tab expansions, etc.
The \s-1KMC\s+111-B version does these output functions in addition to doing
\s-1DMA\s+1 input of data.
Each \s-1KMC\s+111 can control up to four \s-1DZ\s+111 multiplexers 
for a total of thirty-two asynchronous lines.
Each system can support up to four
\s-1KMC\s+111 microprocessors.
Up to sixty-four \s-1DZ\s+111 lines can be controlled
by \s-1KMC\s+111 microprocessors.
.H 3 Installation
.AL 1
.LI
Generate a system (see Section 3.2 above) by including 
each \s-1DZ\s+111 to be controlled by a \s-1KMC\s+111 in the configuration file.
For example:
.Ds
\f3#\fP~~~For the \s-1KMC\s+111-A
dza X Y Z
.sp .5v
\f3#\fP~~~For the \s-1KMC\s+111-B
dzb X Y Z
.De
where X is the vector address, Y is the \s-1UNIBUS\s+1 address, and Z
is the bus request priority.
Also include the \s-1KMC\s+111 microprocessors
in the configuration file:
.Ds
kmc X Y Z
.De
.LI
Install the \s-1KMC\s+111 microcode in
.I /lib\^ :
.Ds
\f3#\fP~~~For the \s-1KMC\s+111-A
cd /usr/src/uts/*/up/dza/dzkload
/lib/cpp dza.s \(bv kas \-o /lib/dzkmc.o
.sp .5v
\f3#\fP~~~For the \s-1KMC\s+111-B
cd /usr/src/uts/*/up/dzb/dzkload
/lib/cpp main.s \(bv kasb \-o /lib/dzkmc.o
.De
.LI
Copy
.I dzkload " into " /etc :
.Ds
\f3#\fP~~~For the \s-1KMC\s+111-A
cp /usr/src/uts/*/up/dza/dzkload /etc
.sp .5v
\f3#\fP~~~For the \s-1KMC\s+111-B
cp /usr/src/uts/*/up/dzb/dzkload /etc
.De
.LI
Update
.I /etc/rc\^
to execute
.I dzkload\^
for multi-user and power-fail
.I init\^
states.
Each \s-1KMC\s+111 used to control a \s-1DZ\s+111 must be loaded with microcode.
For each \s-1KMC\s+111 used to control a \s-1DZ\s+111 include:
.Ds
/etc/dzkload /dev/kmc?
.De
where
.B ?
is the minor device number of that \s-1KMC\s+111.
.LI
Special files (see Section 3.3 above) must be created for each \s-1KMC\s+111 and \s-1DZ\s+111 line:
.Ds
\f3#\fP~~~Example
/etc/mknod /dev/kmc? c X ?
/etc/mknod /dev/tty?? c Y Z
.De
X is the major device number of the \s-1KMC\s+111 and
.B ?
is the
minor device number of the \s-1KMC\s+111 controlling the \s-1DZ\s+111 multiplexers,
i.e., the \s-1KMC\s+111 loaded with microcode in step 4.
Y is the major device number of the 
.I dza/dzb\^
device as is supplied by
.I config (1M).
Z is the minor device number for
a particular line on a \s-1DZ\s+111.
This number is composed of three fields.
The low-order three bits are the line number relative to a \s-1DZ\s+111.
The next three bits contain the minor device number of the \s-1DZ\s+111 controlling
these lines.
Note that this number is the absolute \s-1DZ\s+111
number, not the number relative to the \s-1KMC\s+111.
The high-order two bits are the minor device number of
the \s-1KMC\s+111 controlling this \s-1DZ\s+111.
For example:
.Ds
mknod /dev/tty?? c Y 0241 
.De
specifies the second line (0 through 7) on the fifth \s-1DZ\s+111 to be 
controlled by the \s-1KMC\s+111 with minor device number 2.
The \s-1DZ\s+111 number is
specified by the order of appearance in the configuration file.
The
first four \s-1DZ\s+111 multiplexers must be associated with one \s-1KMC\s+111 and
the next four must be associated with another \s-1KMC\s+111.
The order
in which the \s-1KMC\s+111 microprocessors are specified is not significant.
.LE 1
.H 1 "ADMINISTRATIVE FILES"
.H 2 /etc/motd
This file contains the
.I "message-of-the-day" .
It is printed by
.I /etc/profile\^
after every successful
.I login .
.H 2 /etc/rc
On the transition between init states,
.I /etc/init\^
invokes
.I /bin/sh\^
to run
.I /etc/rc\^
(must have executable modes).
So that
.I /etc/rc\^
can properly handle the removal of temporary files and
the mounting and unmounting of file systems,
it is invoked with three arguments:
new state, number of times this state has been entered, previous state.
When the system is initially booted,
.I /etc/rc\^
is invoked with arguments ``1 0 1'';
when state two(multi-user) is subsequently entered,
the arguments are ``2 0 1''.
.P
Daemons may be invoked either by
.I /etc/rc\^
or by including lines for them in
.I /etc/inittab .
.P
The
.I /etc/rc\^
file is also used to initialize \s-1KMC\s+111 microprocessors
(see
.I /etc/dzkload\^
.RI and /etc/vpmload\^
below).
.P
This file must be edited to suit local
conditions; see
.I init (8).
.H 2 /etc/inittab
This file indicates to
.I /etc/init\^
which processes to create in each init state.
By convention, state 1 is
.I single-user\^
and state 2 is
.I multi-user .
For example,
the following line creates the single-user environment:
.Ds
1\f3:\fPco\f3:\fPc\f3:\fPenv HOME=/ PATH=/bin\f3:\fP/etc\f3:\fP/usr/bin /bin/sh </dev/console\e
	>/dev/console 2>/dev/console
1\f3:\fPxx\f3:\fPk\f3:\fP/etc/getty console ! 0
.De
This indicates that for state 1 a process
with the arbitrary unique identifier
.I co\^
should be created.
The program invoked for this process should be the shell and
when it exits it should be reinvoked (\f2c\^\fP flag).
.P
To attach a
.I login\^
process to the console
in the multi-user state, add the line:
.Ds
2\f3:\fPco\f3:\fPc\f3:\fP/etc/getty console 4
.De
and for line
.I /dev/tty00\^
for use by 300/150/110 baud terminals, add the following line:
.Ds
2\f3:\fP00\f3:\fPc\f3:\fP/etc/getty tty00 0 60
.De
The arguments to
.I getty\^
are the device, speed table,
and number of seconds to allow before hanging up the line.
.P
Again, this file must be edited for local conditions;
see
.I getty (8),
.I init (8),
and
.I inittab (5).
.H 2 /etc/dzkload
This file is invoked as a command by
.I /etc/rc .
It contains instructions for initializing a \s-1KMC\s+111 microprocessor
which is to function as a controller for one or more
\s-1DZ\s+111 communications multiplexers
(see
Section 3.5 above).
This file must be edited to suit the configuration.
.H 2 /etc/passwd
This file is used to describe each
.I user\^
to the system.
You must add a new line for each new user.
Each line has seven fields separated by colons:
.AL 1 "" compact
.LI
Login name:
normally 1-6 characters, first character alphabetic,
the remainder alphanumeric, no upper-case characters.
.LI
Encrypted password:
initially null, filled in by
.I passwd (1).
The encrypted password contains 13 bytes, while
the actual password is limited to a maximum of 8 bytes.
The encrypted password may be followed by a comma
and up to 4 more bytes of password ``age'' information.
.LI
User \s-1ID\s+1:
a number between 0 and 65,535; 0 indicates the super-user.
These other \s-1ID\s+1s are reserved:
.Ds
bin\f3::\fP2\f3:\fP		software administration;
sys\f3::\fP3\f3:\fP		system operation;
adm\f3::\fP4\f3:\fP		system administration;
uucp\f3::\fP5\f3:\fP	\*u-to-\*u file copy;
rje\f3::\fP68\f3:\fP		remote job entry administration;
games\f3::\fP196\f3:\fP	miscellaneous; never a real user.
.De
.LI
Group \s-1ID\s+1:
the default is group 1 (one).
.LI
Accounting information:
this field is used by various accounting
programs.
It usually contains the user name, department number, and
account number.
.LI
Login directory:
full path-name (keep them reasonably short).
.LI
Program name:
if null,
.I /bin/sh\^
is invoked
after a successful
login.
If present, the named program is invoked in place of
.I /bin/sh .
.LE
.P
For example:
.Ds
ghh\f3::\fP38\f3:\fP1\f3:\fP6824-G.H.Hurtz(4357)\f3:\fP/usr/ghh\f3:\fP
grk\f3::\fP44\f3:\fP1\f3:\fP6510-S.P.LeName(4466)\f3:\fP/usr/grk\f3:\fP/bin/rsh
.De
See also
.I passwd (5),
.I login (1),
.I passwd (1).
.H 2 /etc/group
This file is used to describe each
.I group\^
to the system.
You must add a new line for each new group.
Each line has four fields separated by colons:
.AL 1 "" compact
.LI
Group name:
normally 1-6 characters, first character alphabetic,
rest alphanumeric, no upper-case characters.
.LI
Encrypted password:
initially null, filled in by
.I passwd (1).
The encrypted password contains 13 bytes, while
the actual password is limited to a maximum of 8 bytes.
.LI
Group \s-1ID\s+1:
a number between 0 and 65,535.
.LI
Login names:
list of all
.I login\^
names in the group, separated by commas.
.LE
.P
We strongly discourage group passwords.
See also
.I group (5).
.H 2 /etc/profile
When the shell is executed and is the leader of a process group, as is the case
when it is invoked by
.I login ,
it will read and execute the commands in
.I /etc/profile\^
before executing commands in the user's \f3.\fP\f2profile\^\fP
file.
This allows the system administrator to set up a standard environment for all users
(e.g.,
executing
.I umask ,
setting shell variables, etc.)
and take care of other housekeeping
details
(such as
.I "news \-n" ).
.H 2 /etc/checklist
This file contains a list of default devices to be checked
for consistency by the
.I fsck (1M)
program.
The devices normally correspond to those mounted
when the system is in
.I multi-user\^
mode.
For example, a sample checklist
would be:
.Ds
/dev/rp0
/dev/rrp1
.De
.H 2 /etc/shutdown
This file contains procedures to gracefully shut down the
system in preparation for file-save or scheduled down-time.
.H 2 /etc/filesave.?
This file contains the detailed procedures for
the local file-save.
.H 2 /usr/adm/pacct
This file contains the process accounting information;
see
.I acct (1M).
.H 2 /usr/adm/wtmp
This file is the log of login processes.
.H 1 "REGENERATING SYSTEM SOFTWARE"
System source is issued under the directory
.I /usr/src .
The sub-directories are named
.I cmd\^
(commands),
.I lib\^
(libraries),
.I uts\^
(the operating system),
.I head\^
(header files), and
.I util\^
(utilities);
see
.I mk (8)
for details on how to remake system software.
.P
A couple of anomalies:
the accounting routine that deals with holidays and the prime/non-prime
time split must be recompiled at the end of each year
(it is currently correct for \s-1BTL\s+1-Murray Hill in 1980).
The file is
\f2/usr/src/cmd/acct/lib/pnpsplit\^\fP\f3.\fP\f2c\^\fP.
A reminder is sent to
.I /usr/adm/acct/nite/log ,
the standard place for such messages, starting a week before
year-end and continuing until
\f2pnpsplit\^\fP\f3.\fP\f2c\^\fP
is recompiled.
.H 2 "PDP-11 Command Regeneration"
The distributed object code has been compiled for machines without separate ``I/D'' space
and without floating-point hardware.
If your system has separate I/D space (i.e., is a \*Y/70 or \*Y/45), you should
.I mkcmd\^
adb, awk, bs, cc, cpio, dc, du, dump, efl, f77, fgrep, find, fsck, lex,
make, mkfs, nm, pcat, restor, spell, spline, tbl, tplot, troff, units,
unpack, uucp, volcopy, and yacc.
If your configuration has an \s-1FP\s+111-[\s-1ABC\s+1] floating-point processor
(or the compatible 11/23 chip), you should
.I mkcmd\^
acct, adb, awk, bs, cc, pack, spline, tplot, typo, and units.
If your configuration has both separate I/D space and floating point, you should
.I mkcmd\^
acct, adb, awk, bs, cc, cpio, dc, du, dump, efl, f77, fgrep, find, fsck, lex, make, mkfs, nm, pack,
pcat, restor, spell, spline, tbl, tplot, troff, typo, units, unpack, uucp, volcopy, and yacc.
.H 1 "FILE SYSTEM CONVERSION TO UNIX (VAX)"
Procedures have been developed for converting \*u file systems from \*Y/\*u
(including \s-1UNIX/TS\s+1, \s-1PWB\s+1 Edition~2.0, and Research Version~7)
to \*Z \s-1UNIX\s+1.
Direct conversion from other systems
(i.e., Version 6-based or \s-1UNIX/RT\s+1)
is also possible, but the administrator should get help.
.P
The following \*u commands are referenced in this section:
.I cpio (1),
.I find (1),
.I fsck (1M),
.I fscv (1M),
.I mkdir (1),
.I mkfs (1M),
.I mount (1M),
and
.I umount (1M).
The reader is assumed to be familiar with them.
.P
Unless you have repealed
Murphy's Law,
you should allow plenty of time for the conversion.
As a lower bound, it takes about two hours to convert
each
65K of file system space.
.H 2 "Preliminaries"
Obviously, the new system should be generated and decently tested before conversion is attempted.
Source for local commands and libraries should be moved to the \*Z
and compiled and tested.
Your users may also reasonably require time to develop conversion programs for data files
that contain binary information.
.H 3 "The Old System"
The file systems should be pruned of marginal files.
The following shell sequence will get rid of all executables:
.Ds
\f3#\fP~~~For each user file system:
find /usr\-fs\-list \-type f \-print \(bv xargs file \(bv \e
~~~~~sed \-n \-e \(fms/\e([^:]*\e):\f3.\fP*executable/\e1/p\(fm >/usr/tmp/exfiles
\f3#\fP~~~You may want to look this file over before the next step.
xargs rm \-f</usr/tmp/exfiles
rm /usr/tmp/exfiles
.De
.H 3 "Spare Packs"
Do not convert without spare packs\-that is courting disaster.
It is best to keep the old packs for several days, and to make backup
tapes as well.
.H 2 "Converting the Hard Way"
Using
.I find\^
and
.I cpio\^
takes much longer, but you will have optimized converted user file systems
when you are finished
(compacted
.I inodes\^
and directories,
file and free-list blocks arranged for fastest access).
.H 3 "Copying from the Old System"
The following steps should be executed by the super-user on an idle, stand-alone
(old)
system:
.Ds
\f3#\fP~~~For each user file system:
cd /file-system-name
find \f3.\fP \-cpio /dev/rmt1
.De
The
.I \-cpio\^
option of
.I find\^
produces ten-block records on physical tape in
.I cpio\^
format.
Unless there are a great many linked files,
a 1,600-bpi, 2,400-foot reel should hold
about 65K file system blocks.
If you have larger file systems, the easiest (fastest, safest)
thing to do is to use a raw disk pack in place of the tape
(i.e.,
.B /dev/rrp??
in place of the
.B /dev/rmt1
above).
In our tests,
multi-reel
.I find/cpio\^
tapes have worked.
.I Find\^
can also be used to pick up
.I parts\^
of file systems that can be combined later as described below.
.H 3 "Under the New System"
Re-create each file system as follows:
.Ds
mkdir /file-system-name
mkfs /dev/rrp? \f2blocks\^\fP\f3:\fP\f2inodes\^\fP 7 418
\f3#\fP~~~The magic numbers "7 418" above refer to free-list ordering:
\f3#\fP~~~(rotational angle of 7 and 418 blocks/cylinder for \s-1RP\s+104/5/6s)
labelit /dev/rrp? file-system-name pack-num
mount /dev/rp? /file-system-name
cd /file-system-name
\f3#\fP~~~Mount tape created during step 3
cpio \-idmB </dev/rmt1
\f3#\fP~~~If you are combining the smaller file systems,
\f3#\fP~~~you may copy-in more than one tape per new file system
\f3#\fP~~~(but make sure that first-level directory names are unique)
.De
After the tapes have been copied in, the new file systems should be unmounted
and checked
(using
.I fsck (1M)).
.H 2 "Converting the Easy Way"
The
.I fscv (1M)
command has been provided for fast conversion between
\*Y and \*Z file systems.
.P
Note that
.I fscv\^
will not convert ``special files''
(user file systems only).
.I Fscv\^
source will compile and run on either system.
It was designed primarily for use in computer labs where there are a mixture
of \*Y and \*Z systems.
.br
.ne 6v
.P
Example 1:
.Ds
\f3#\fP~~~Converting \*Y to \*Z:
\f3#\fP~~~Make sure that file system cylinder boundaries agree!
fscv \-v /dev/rrp21 /dev/rrp31
.De
.br
.ne 6v
Example 2:
.Ds
\f3#\fP~~~Converting ``in place'' to the \*Y:
\f3#\fP~~~Anyone who does this without making a copy first deserves
\f3#\fP~~~whatever bad (plenty) that can happen!
fscv \-p /dev/rrp12 /dev/rrp12
.De
See the
.I fscv (1M)
manual entry.
.H 2 "A Final Precaution"
It is only sensible to do another complete file system backup under the new operating system
(using another set of tapes or packs).
.bp
.ce 2
\s+1\f2ATTACHMENT \|1\fP\s-1
.sp .5v
\f3Processors and Peripherals Supported by \*u\fP
.P
The following table summarizes the
hardware configurations supported by UNIX:
.DS
.TS
center box ;
l | c | c | c | c | c .
\s-1CPU\s+1 with \f2floating point\fP	\s-1PDP\s+1-11/23	\s-1PDP\s+1-11/34	\s-1PDP\s+1-11/45	\s-1PDP\s+1-11/70	\s-1VAX\s+1-11/780
_
_
Memory	256\s-1KB\s+1	256\s-1KB\s+1	256\s-1KB\s+1	0.5-1\s-1MB\s+1	1-4\s-1MB\s+1
	\s-1ECC\s+1 \s-1MOS\s+1	\s-1ECC\s+1 \s-1MOS\s+1	\s-1ECC\s+1 \s-1MOS\s+1	\s-1ECC\s+1 \s-1MOS\s+1	\s-1ECC\s+1 \s-1MOS\s+1
			or core	or core
_
Disk drives:
~~~\s-1RL\s+101 (2 required)	F	F	S	N	\-
~~~\s-1RK\s+105 (2 required)	\-	O	O	\-	\-
~~~\s-1RP\s+103	\-	\-	O	\-	\-
~~~\s-1RP\s+104	\-	O	O	O	\-
		(\s-1UNIBUS\s+1)	(\s-1UNIBUS\s+1)	(\s-1MASSBUS\s+1)	
~~~\s-1RP\s+106	\-	S	F	F	F
		(\s-1UNIBUS\s+1)	(\s-1UNIBUS\s+1)	(\s-1MASSBUS\s+1)	(\s-1MASSBUS\s+1)
_
Fixed-head disks:
~~~\s-1RF\s+111	\-	\-	O	\-	\-
~~~\s-1RS\s+103,4	\-	\-	N	N	\-
			(\s-1UNIBUS\s+1)	(\s-1MASSBUS\s+1)
_
Tape drives:
~~~\s-1TU\s+110	\-	O	O	\-	\-
~~~\s-1TU\s+116	\-	O	O	O	\-
~~~\s-1TE\s+116	\-	F	F	F	F
~~~\s-1TU\s+145	\-	\-	\-	S	S
_
Line printer:
~~~\s-1LP\s+111\(dg	\-	N	N	N	N
_
Asynch. interfaces:
~~~\s-1DLV\s+111	S	\-	\-	\-	\-
~~~\s-1DL\s+111-\s-1E\s+1	\-	S	S	S	\-
~~~\s-1DZ\s+111	\-	S	S	S	S
~~~\s-1KMC\s+111B/\s-1DZ\s+111\(dd	\-	F	F	F	F
~~~\s-1DH\s+111	\-	O	O	O	\-
_
Synch. interfaces:
~~~\s-1KMC\s+111\s-1B/DMC\s+1 line unit	\-	S	S	S	S
~~~\s-1DMC\s+111	\-	S	S	S	S
~~~\s-1DU\s+111	\-	O	O	O	\-
~~~\s-1DQS\s+111B	\-	\-	O	O	\-
_
Auto-call unit:
~~~\s-1DN\s+111\s-1AA/DA\s+1	\-	S	S	S	S
_
Parallel interface:
~~~\s-1DRV\s+111	S	\-	\-	\-	\-
~~~\s-1DR\s+111C	\-	S	S	S	\-
~~~\s-1DR\s+111B	\-	S	S	S	\-
~~~\s-1DA\s+111B (use \s-1DMC\s+1s)	\-	S	S	S	\-
.TE
.nf
.ta .5i .5i+\w'N\| 'u
Key:	F	\(->\| First choice.
	S	\(->\| Supported.
	O	\(->\| Driver provided, but device is obsolete.
	N	\(->\| Driver provided, but device is not recommended.
	\-	\(->\| No support.
\(dg Use a printer on an \s-1RS\s+1232 interface.
\(dd 4 \s-1DZ\s+111s (32 lines) per \s-1KMC\s+1.
.fi
.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
.DE
.pl +1v
.sp .5v
.I "June 1980"
.br
.pl -1v