Remove PHK's existing documentation about the boot process (out of date)

and refer the reader to boot(8) and loader(8).

Reviewed by:	phk
This commit is contained in:
Nik Clayton 1999-12-30 22:06:51 +00:00
parent 52fb07cf5a
commit 403d96e991
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=6305

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/internals/chapter.sgml,v 1.13 1999/09/06 06:52:58 peter Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/internals/chapter.sgml,v 1.14 1999/11/07 01:54:47 chris Exp $
-->
<chapter id="internals">
@ -10,231 +10,8 @@
<sect1 id="booting">
<title>The FreeBSD Booting Process</title>
<para><emphasis>Contributed by &a.phk;. v1.1, April
26th.</emphasis></para>
<para>Booting FreeBSD is essentially a three step process: load the
kernel, determine the root filesystem and initialize user-land things.
This leads to some interesting possibilities shown below.</para>
<sect2>
<title>Loading a kernel</title>
<para>We presently have three basic mechanisms for loading the kernel as
described below: they all pass some information to the kernel to help
the kernel decide what to do next.</para>
<variablelist>
<varlistentry>
<term>Biosboot</term>
<listitem>
<para>Biosboot is our &ldquo;bootblocks&rdquo;. It consists of
two files which will be installed in the first 8Kbytes of the
floppy or hard-disk slice to be booted from.</para>
<para>Biosboot can load a kernel from a FreeBSD filesystem.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Dosboot</term>
<listitem>
<para>Dosboot was written by DI. Christian Gusenbauer, and is
unfortunately at this time one of the few pieces of code that
will not compile under FreeBSD itself because it is written for
Microsoft compilers.</para>
<para>Dosboot will boot the kernel from a MS-DOS file or from a
FreeBSD filesystem partition on the disk. It attempts to
negotiate with the various and strange kinds of memory manglers
that lurk in high memory on MS/DOS systems and usually wins them
for its case.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Netboot</term>
<listitem>
<para>Netboot will try to find a supported Ethernet card, and use
BOOTP, TFTP and NFS to find a kernel file to boot.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>Determine the root filesystem</title>
<para>Once the kernel is loaded and the boot-code jumps to it, the
kernel will initialize itself, trying to determine what hardware is
present and so on; it then needs to find a root filesystem.</para>
<para>Presently we support the following types of root
filesystems:</para>
<variablelist>
<varlistentry>
<term>UFS</term>
<listitem>
<para>This is the most normal type of root filesystem. It can
reside on a floppy or on hard disk.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MSDOS</term>
<listitem>
<para>While this is technically possible, it is not particular
useful because of the <acronym>FAT</acronym> filesystem's
inability to deal with links, device nodes and other such
&ldquo;UNIXisms&rdquo;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MFS</term>
<listitem>
<para>This is actually a UFS filesystem which has been compiled
into the kernel. That means that the kernel does not really
need any hard disks, floppies or other hardware to
function.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CD9660</term>
<listitem>
<para>This is for using a CD-ROM as root filesystem.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>NFS</term>
<listitem>
<para>This is for using a fileserver as root filesystem, basically
making it a diskless machine.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>Initialize user-land things</title>
<para>To get the user-land going, the kernel, when it has finished
initialization, will create a process with <literal>pid == 1</literal>
and execute a program on the root filesystem; this program is normally
<filename>/sbin/init</filename>.</para>
<para>You can substitute any program for <command>/sbin/init</command>,
as long as you keep in mind that:</para>
<para>there is no stdin/out/err unless you open it yourself. If you
exit, the machine panics. Signal handling is special for <literal>pid
== 1</literal>.</para>
<para>An example of this is the <command>/stand/sysinstall</command>
program on the installation floppy.</para>
</sect2>
<sect2>
<title>Interesting combinations</title>
<para>Boot a kernel with a MFS in it with a special
<filename>/sbin/init</filename> which...</para>
<variablelist>
<varlistentry>
<term>A &mdash; Using DOS</term>
<listitem>
<itemizedlist>
<listitem>
<para>mounts your <filename>C:</filename> as
<filename>/C:</filename></para>
</listitem>
<listitem>
<para>Attaches <filename>C:/freebsd.fs</filename> on
<filename>/dev/vn0</filename></para>
</listitem>
<listitem>
<para>mounts <filename>/dev/vn0</filename> as
<filename>/rootfs</filename></para>
</listitem>
<listitem>
<para>makes symlinks
<filename>/rootfs/bin</filename> -&gt;
<filename>/bin</filename>
<filename>/rootfs/etc</filename> -&gt;
<filename>/etc</filename>
<filename>/rootfs/sbin</filename> -&gt;
<filename>/sbin</filename> (etc...)</para>
</listitem>
</itemizedlist>
<para>Now you are running FreeBSD without repartitioning your hard
disk...</para>
</listitem>
</varlistentry>
<varlistentry>
<term>B &mdash; Using NFS</term>
<listitem>
<para>NFS mounts your <filename>server:~you/FreeBSD</filename> as
<filename>/nfs</filename>, chroots to <filename>/nfs</filename>
and executes <filename>/sbin/init</filename> there</para>
<para>Now you are running FreeBSD diskless, even though you do not
control the NFS server...</para>
</listitem>
</varlistentry>
<varlistentry>
<term>C &mdash; Start an X-server</term>
<listitem>
<para>Now you have an X-terminal, which is better than that dingy
X-under-windows-so-slow-you-can-see-what-it-does thing that your
boss insist is better than forking out money on hardware.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>D &mdash; Using a tape</term>
<listitem>
<para>Takes a copy of <filename>/dev/rwd0</filename> and writes it
to a remote tape station or fileserver.</para>
<para>Now you finally get that backup you should have made a year
ago...</para>
</listitem>
</varlistentry>
<varlistentry>
<term>E &mdash; Acts as a firewall/web-server/what do I
know...</term>
<listitem>
<para>This is particularly interesting since you can boot from a
write- protected floppy, but still write to your root
filesystem...</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<para>The FreeBSD booting process is described in the &man.boot.8; and
&man.loader.8; manual pages.</para>
</sect1>
<sect1 id="memoryuse">