How does it work?
At boot time, after hardware checks and device initialization are performed,
the PROM of a SPARC loads a boot block from a boot device such as a hard disk
drive, CD-ROM, or a network card.
This boot block is so short (512 Bytes) that a full featured boot loader will
not fit into this space, especially since file systems like ext2 reserve only
1024 Bytes for a boot block, while the partition table itself already takes up
512 Bytes.
To overcome this lack of space, SILO consists of a collection of stage loaders,
as shown in the figure below:
The first stage boot loader (/boot/first.b), written completely in
assembly language, is used only to retrieve a second stage boot loader
(/boot/second.b).
This second stage boot loader loads the actual operating system. It
understands file systems, allowing the parsing of the configuration file
and the handling of compressed files. It also provides a command-line
interface to interactively select entries from the configuration file, to
add boot parameters, or to load a path you entered on the SILO command
line prompt. See Using SILO for more information about
using the SILO prompt.
The program /sbin/silo is used to install the first stage loader by
copying the right first stage loader into the boot block (unless the correct
first stage is already installed and the -f option is not used to
force the installation).
/sbin/silo then writes the block number of the first block of the
second stage boot loader (usually /boot/second.b) into it, and then
records all the block numbers of second.b and the name and location
of the configuration file into the second stage boot loader.
If the file old.b can't be found in the /boot directory, the
old boot loader will be copied there by /sbin/silo.
The configuration file /etc/silo.conf is
parsed by the actual boot loader at boot time.
This means that the /sbin/silo program must be run only if you
install a new version of SILO or if you move the second stage
boot loader on the disk. This is different from the LILO boot loader on the
i386 platform where you must run LILO each time when you have installed new
kernel images or operating systems.
|