2.9BSD/usr/man/cat8/boot.8
BOOT(8) UNIX Programmer's Manual BOOT(8)
NAME
boot - startup procedures
DESCRIPTION
A PDP-11 UNIX system is started by a two-stage process. The
first is a primary bootstrap which is able to read in rela-
tively small stand-alone programs; the second (called _b_o_o_t)
is used to read in the system itself.
The primary bootstrap must reside in the otherwise unused
block zero of the boot device. It can be read in and
started by the standard ROM programs, or if necessary by
keying in a small startup routine. This program is capable
of loading type 407 executable files (not shared, not
separate I&D). It will normally load _b_o_o_t immediately after
being executed; if _b_o_o_t is not found, the name of another
file to try will be read from the console. The named pro-
gram is retrieved from the file system that starts at block
0 of drive 0 of the boot device (this is usally root). Some
devices' primary bootstraps will prompt with a `>', others
have no prompt. No diagnostic message results if the file
cannot be found, and no provision is made for correcting
typographical errors. Hitting a return will cause an error
and allow restarting.
The second step, called _b_o_o_t, actually brings in the system.
When read into location 0 and executed, _b_o_o_t sets up memory
management, relocates itself into high memory, and types its
name and a `:' on the console. If this is an automatic,
unattended reboot, _b_o_o_t will use the default file for the
installation, typing the file's name after the prompt. Oth-
erwise, it reads a device specification from the console
(see below) followed immediately by a pathname. Normal line
editing characters can be used to make corrections while
typing this (i.e. '#' and '@'). If only a carriage return is
typed, the default name will be used. _b_o_o_t finds the
corresponding file on the given device, loads that file into
memory location zero, sets up memory management as required,
and calls the program by executing a `trap' instruction.
Conventionally, the name of the secondary boot program is
`/boot' (if the root is the first file system on the disk)
and the name of the current version of the system is
`/unix'.
For the system to boot, three files (and the directories
leading to them) must exist. The first is /_e_t_c/_i_n_i_t, which
must be present and executable; if it is not, the kernel
will print a message to that effect and loop. The other
files are /_b_i_n/_s_h, which must also be executable, and
/_d_e_v/_c_o_n_s_o_l_e. (If either of these is missing, _i_n_i_t will
attempt multi-user operation.) When the system is running,
Printed 8/2/83 1
BOOT(8) UNIX Programmer's Manual BOOT(8)
it starts a single-user shell on the console which types a
`#' prompt. After doing any file system checks and setting
the date (_d_a_t_e(1)) a multi-user system is brought up by typ-
ing an EOT (control-d) in response to the `#' prompt.
Device specifications. A device specification has the fol-
lowing form:
device(unit,offset)
where _d_e_v_i_c_e is the type of the device to be searched, _u_n_i_t
is the unit number of the device, and _o_f_f_s_e_t is the block
offset of the file system on the disk, in physical (512
byte) blocks, or the file number if the device is a tape.
Tape files are separated by single tape marks. _d_e_v_i_c_e is
one of the following
hk RK06/7
hp RP04/5/6
ht TU/TE16
rk RK05
rl RL01/2
rm RM02/3
rp RP03
tm TU/TE10
ts TS-11
xp RM05
(actually, xp, hp and rm all use the same driver and distin-
guish the drive type from the drive-type register). For
example, the specification
rp(1,7000)
indicates an RP03 disk, unit 1, and the file system found
starting at block 7000 (cylinder 35).
ROM programs. The following programs to call the primary
bootstrap may be installed in read-only memories or manually
keyed into main memory. Each program is position-
independent but should be placed well above location 0 so it
will not be overwritten. Each reads a block from the begin-
ning of a device into core location zero. The octal words
constituting the program are listed on the left.
RK (drive 0):
012700 mov $rkda,r0
177412
005040 clr -(r0) / rkda cleared by start
010040 mov r0,-(r0)
012740 mov $5,-(r0)
000005
105710 1: tstb (r0)
002376 bge 1b
Printed 8/2/83 2
BOOT(8) UNIX Programmer's Manual BOOT(8)
005007 clr pc
RP (drive 0)
012700 mov $rpmr,r0
176726
005040 clr -(r0)
005040 clr -(r0)
005040 clr -(r0)
010040 mov r0,-(r0)
012740 mov $5,-(r0)
000005
105710 1: tstb (r0)
002376 bge 1b
005007 clr pc
FILES
/unix system code
/usr/src/sys/mdec/xxubootcopy of primary bootstrap for dev-
ice xx
/boot second stage bootstrap
SEE ALSO
init(8), reboot(8)
Printed 8/2/83 3