aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--en_US.ISO_8859-1/books/handbook/internals/chapter.sgml229
1 files changed, 3 insertions, 226 deletions
diff --git a/en_US.ISO_8859-1/books/handbook/internals/chapter.sgml b/en_US.ISO_8859-1/books/handbook/internals/chapter.sgml
index 0942b7c0d5..467da85b31 100644
--- a/en_US.ISO_8859-1/books/handbook/internals/chapter.sgml
+++ b/en_US.ISO_8859-1/books/handbook/internals/chapter.sgml
@@ -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">