2.9BSD/usr/man/man8/boot.8

Compare this file to the similar file:
Show the results in this format:

.TH BOOT 8
.UC
.SH NAME
boot \- startup procedures
.SH 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 relatively small stand-alone programs;
the second (called
.IR boot )
is used to read in the system itself.
.PP
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
.I boot
immediately after being executed;
if
.I boot
is not found, the name of another file to try will be read from
the console.
The named program 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.
.PP
The second step, called
.I boot,
actually brings in the system.
When read into location 0 and executed,
.I boot
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,
.I boot
will use the default
file for the installation, typing the file's name after the prompt.
Otherwise, 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.
.I boot
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.
.PP
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'.
.PP
For the system to boot, three files (and the directories leading to them)
must exist.
The first is
.IR /etc/init ,
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
.IR /bin/sh ,
which must also be executable, and
.IR /dev/console .
(If either of these is missing, \fIinit\fP will attempt
multi-user operation.)
When the system is running, it starts a single-user shell on the console
which types a `#' prompt.
After doing any file system checks and setting the date (\fIdate\fP\|(1))
a multi-user system is brought up by typing an EOT
(control-d)
in response to the `#' prompt.
.PP
.B Device specifications.
A device specification has the following form:
.IP " "
device(unit,offset)
.LP
where
.I device
is the type of the device to be searched,
.I unit
is the unit number of the device,
and 
.I offset
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.
.I device
is one of the following
.br
.nf
	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	
.fi
(actually, xp, hp and rm all use the same driver and distinguish
the drive type from the drive-type register).
For example, the specification
.IP " "
rp(1,7000)
.LP
indicates an RP03 disk, unit 1, and the file system found
starting at block 7000 (cylinder 35).
.PP
.SM
.B ROM
.B 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
beginning of a device into core location
zero.
The octal words constituting the program are
listed on the left.
.PP
.ne 5
.nf
.if n .ta 3 11 15 23 38
.if t .ta .3i 1i 1.4i 2i 3.5i
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
	005007		clr	pc
.PP
.ne 11
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
.DT
.SH FILES
.ta 2.5i
/unix	system code
.br
/usr/src/sys/mdec/xxuboot	copy of primary bootstrap for device xx
.br
/boot	second stage bootstrap
.SH "SEE ALSO"
init(8), reboot(8)