Add a few more <literal> or <filename> to boot[02].

This commit is contained in:
Giorgos Keramidas 2002-08-28 19:09:02 +00:00
parent 45bdd9c222
commit a828c35ea5
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=14064
2 changed files with 50 additions and 50 deletions
en_US.ISO8859-1/books
arch-handbook/boot
developers-handbook/boot

View file

@ -38,13 +38,13 @@ $FreeBSD$
<itemizedlist>
<listitem><para>BIOS POST</para></listitem>
<listitem><para>boot0 stage</para></listitem>
<listitem><para>boot2 stage</para></listitem>
<listitem><para><literal>boot0</literal> stage</para></listitem>
<listitem><para><literal>boot2</literal> stage</para></listitem>
<listitem><para>loader stage</para></listitem>
<listitem><para>kernel initialization</para></listitem>
</itemizedlist>
<para>The boot0 and boot2 stages are also referred to as
<para>The <literal>boot0</literal> and <literal>boot2</literal> stages are also referred to as
<emphasis>bootstrap stages 1 and 2</emphasis> in &man.boot.8; as
the first steps in FreeBSD's 3-stage bootstrapping procedure.
Various information is printed on the screen at each stage, so
@ -65,7 +65,7 @@ $FreeBSD$
F2 BSD
F5 Disk 2</screen>
</para></entry>
<entry><para>boot0</para></entry>
<entry><para><literal>boot0</literal></para></entry>
</row>
<row>
<entry><para>
@ -74,9 +74,9 @@ Default: 1:ad(1,a)/boot/loader
boot:</screen>
</para></entry>
<entry><para>boot2<footnote><para>This prompt will appear
<entry><para><literal>boot2</literal><footnote><para>This prompt will appear
if the user presses a key just after selecting an OS to
boot at the boot0
boot at the <literal>boot0</literal>
stage.</para></footnote></para></entry>
</row>
<row>
@ -169,7 +169,7 @@ Timecounter "i8254" frequency 1193182 Hz</screen>
</sect1>
<sect1>
<title>boot0 stage</title>
<title><literal>boot0</literal> stage</title>
<para>Take a look at the file <filename>/boot/boot0</filename>.
This is a small 512-byte file, and it is exactly what FreeBSD's
@ -240,37 +240,37 @@ Timecounter "i8254" frequency 1193182 Hz</screen>
</sect1>
<sect1>
<title>boot2 stage</title>
<title><literal>boot2</literal> stage</title>
<para>You might wonder, why boot2 comes after boot0, and not
<para>You might wonder, why <literal>boot2</literal> comes after <literal>boot0</literal>, and not
boot1. Actually, there is a 512-byte file called
<filename>boot1</filename> in the directory
<filename>/boot</filename> as well. It is used for booting from
a floppy. When booting from a floppy,
<filename>boot1</filename> plays the same role as
<filename>boot0</filename> for a harddisk: it locates boot2 and
<filename>boot0</filename> for a harddisk: it locates <filename>boot2</filename> and
runs it.</para>
<para>You may have realized that a file
<filename>/boot/mbr</filename> exists as well. It is a
simplified version of boot0. The code in
simplified version of <filename>boot0</filename>. The code in
<filename>mbr</filename> does not provide a menu for the user,
it just blindly boots the partition marked active.</para>
<para>The code implementing boot2 resides in
<para>The code implementing <filename>boot2</filename> resides in
<filename>sys/boot/i386/boot2/</filename>, and the executable
itself is in <filename>/boot</filename>. The files boot0 and
boot2 that are in <filename>/boot</filename> are not used by the
itself is in <filename>/boot</filename>. The files <filename>boot0</filename> and
<filename>boot2</filename> that are in <filename>/boot</filename> are not used by the
bootstrap, but by utilities such as
<application>boot0cfg</application>. The actual position for
boot0 is in the MBR. For boot2 it is the beginning of a
<filename>boot0</filename> is in the MBR. For <filename>boot2</filename> it is the beginning of a
bootable FreeBSD slice. These locations are not under the
filesystem's control, so they are invisible to commands like
<application>ls</application>.</para>
<para>The main task for boot2 is to load the file
<para>The main task for <literal>boot2</literal> is to load the file
<filename>/boot/loader</filename>, which is the third stage in
the bootstrapping procedure. The code in boot2 cannot use any
the bootstrapping procedure. The code in <literal>boot2</literal> cannot use any
services like <function>open()</function> and
<function>read()</function>, since the kernel is not yet loaded.
It must scan the harddisk, knowing about the filesystem
@ -278,10 +278,10 @@ Timecounter "i8254" frequency 1193182 Hz</screen>
it into memory using a BIOS service, and then pass the execution
to the loader's entry point.</para>
<para>Besides that, boot2 prompts for user input so the loader can
<para>Besides that, <literal>boot2</literal> prompts for user input so the loader can
be booted from different disk, unit, slice and partition.</para>
<para>The boot2 binary is created in special way:</para>
<para>The <literal>boot2</literal> binary is created in special way:</para>
<programlisting><filename>sys/boot/i386/boot2/Makefile</filename>
boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
btxld -v -E ${ORG2} -f bin -b ${BTX}/btx/btx -l boot2.ldr \
@ -290,7 +290,7 @@ boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
<para>This Makefile snippet shows that &man.btxld.8; is used to
link the binary. BTX, which stands for BooT eXtender, is a
piece of code that provides a protected mode environment for the
program, called the client, that it is linked with. So boot2 is
program, called the client, that it is linked with. So <literal>boot2</literal> is
a BTX client, i.e. it uses the service provided by BTX.</para>
<para>The <application>btxld</application> utility is the linker.
@ -302,7 +302,7 @@ boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
BTX, producing the binary file suitable to be put on the
beginning of the partition for the system boot.</para>
<para>boot0 passes the execution to BTX's entry point. BTX then
<para><literal>boot0</literal> passes the execution to BTX's entry point. BTX then
switches the processor to protected mode, and prepares a simple
environment before calling the client. This includes:</para>
@ -366,10 +366,10 @@ init.2: shr %bx # Handle this int?
the kernel to change the protected mode data structures, such as
page tables, GDT, IDT, etc later, if needed.</para>
<para>boot2 defines an important structure, <literal>struct
bootinfo</literal>. This structure is initialized by boot2 and
<para><literal>boot2</literal> defines an important structure, <literal>struct
bootinfo</literal>. This structure is initialized by <literal>boot2</literal> and
passed to the loader, and then further to the kernel. Some
nodes of this structures are set by boot2, the rest by the
nodes of this structures are set by <literal>boot2</literal>, the rest by the
loader. This structure, among other information, contains the
kernel filename, BIOS harddisk geometry, BIOS drive number for
boot device, physical memory available, <literal>envp</literal>
@ -398,7 +398,7 @@ struct bootinfo {
u_int32_t bi_modulep; /* preloaded modules */
};</programlisting>
<para>boot2 enters into an infinite loop waiting for user input,
<para><literal>boot2</literal> enters into an infinite loop waiting for user input,
then calls <function>load()</function>. If the user does not
press anything, the loop brakes by a timeout, so
<function>load()</function> will load the default file

View file

@ -38,13 +38,13 @@ $FreeBSD$
<itemizedlist>
<listitem><para>BIOS POST</para></listitem>
<listitem><para>boot0 stage</para></listitem>
<listitem><para>boot2 stage</para></listitem>
<listitem><para><literal>boot0</literal> stage</para></listitem>
<listitem><para><literal>boot2</literal> stage</para></listitem>
<listitem><para>loader stage</para></listitem>
<listitem><para>kernel initialization</para></listitem>
</itemizedlist>
<para>The boot0 and boot2 stages are also referred to as
<para>The <literal>boot0</literal> and <literal>boot2</literal> stages are also referred to as
<emphasis>bootstrap stages 1 and 2</emphasis> in &man.boot.8; as
the first steps in FreeBSD's 3-stage bootstrapping procedure.
Various information is printed on the screen at each stage, so
@ -65,7 +65,7 @@ $FreeBSD$
F2 BSD
F5 Disk 2</screen>
</para></entry>
<entry><para>boot0</para></entry>
<entry><para><literal>boot0</literal></para></entry>
</row>
<row>
<entry><para>
@ -74,9 +74,9 @@ Default: 1:ad(1,a)/boot/loader
boot:</screen>
</para></entry>
<entry><para>boot2<footnote><para>This prompt will appear
<entry><para><literal>boot2</literal><footnote><para>This prompt will appear
if the user presses a key just after selecting an OS to
boot at the boot0
boot at the <literal>boot0</literal>
stage.</para></footnote></para></entry>
</row>
<row>
@ -169,7 +169,7 @@ Timecounter "i8254" frequency 1193182 Hz</screen>
</sect1>
<sect1>
<title>boot0 stage</title>
<title><literal>boot0</literal> stage</title>
<para>Take a look at the file <filename>/boot/boot0</filename>.
This is a small 512-byte file, and it is exactly what FreeBSD's
@ -240,37 +240,37 @@ Timecounter "i8254" frequency 1193182 Hz</screen>
</sect1>
<sect1>
<title>boot2 stage</title>
<title><literal>boot2</literal> stage</title>
<para>You might wonder, why boot2 comes after boot0, and not
<para>You might wonder, why <literal>boot2</literal> comes after <literal>boot0</literal>, and not
boot1. Actually, there is a 512-byte file called
<filename>boot1</filename> in the directory
<filename>/boot</filename> as well. It is used for booting from
a floppy. When booting from a floppy,
<filename>boot1</filename> plays the same role as
<filename>boot0</filename> for a harddisk: it locates boot2 and
<filename>boot0</filename> for a harddisk: it locates <filename>boot2</filename> and
runs it.</para>
<para>You may have realized that a file
<filename>/boot/mbr</filename> exists as well. It is a
simplified version of boot0. The code in
simplified version of <filename>boot0</filename>. The code in
<filename>mbr</filename> does not provide a menu for the user,
it just blindly boots the partition marked active.</para>
<para>The code implementing boot2 resides in
<para>The code implementing <filename>boot2</filename> resides in
<filename>sys/boot/i386/boot2/</filename>, and the executable
itself is in <filename>/boot</filename>. The files boot0 and
boot2 that are in <filename>/boot</filename> are not used by the
itself is in <filename>/boot</filename>. The files <filename>boot0</filename> and
<filename>boot2</filename> that are in <filename>/boot</filename> are not used by the
bootstrap, but by utilities such as
<application>boot0cfg</application>. The actual position for
boot0 is in the MBR. For boot2 it is the beginning of a
<filename>boot0</filename> is in the MBR. For <filename>boot2</filename> it is the beginning of a
bootable FreeBSD slice. These locations are not under the
filesystem's control, so they are invisible to commands like
<application>ls</application>.</para>
<para>The main task for boot2 is to load the file
<para>The main task for <literal>boot2</literal> is to load the file
<filename>/boot/loader</filename>, which is the third stage in
the bootstrapping procedure. The code in boot2 cannot use any
the bootstrapping procedure. The code in <literal>boot2</literal> cannot use any
services like <function>open()</function> and
<function>read()</function>, since the kernel is not yet loaded.
It must scan the harddisk, knowing about the filesystem
@ -278,10 +278,10 @@ Timecounter "i8254" frequency 1193182 Hz</screen>
it into memory using a BIOS service, and then pass the execution
to the loader's entry point.</para>
<para>Besides that, boot2 prompts for user input so the loader can
<para>Besides that, <literal>boot2</literal> prompts for user input so the loader can
be booted from different disk, unit, slice and partition.</para>
<para>The boot2 binary is created in special way:</para>
<para>The <literal>boot2</literal> binary is created in special way:</para>
<programlisting><filename>sys/boot/i386/boot2/Makefile</filename>
boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
btxld -v -E ${ORG2} -f bin -b ${BTX}/btx/btx -l boot2.ldr \
@ -290,7 +290,7 @@ boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
<para>This Makefile snippet shows that &man.btxld.8; is used to
link the binary. BTX, which stands for BooT eXtender, is a
piece of code that provides a protected mode environment for the
program, called the client, that it is linked with. So boot2 is
program, called the client, that it is linked with. So <literal>boot2</literal> is
a BTX client, i.e. it uses the service provided by BTX.</para>
<para>The <application>btxld</application> utility is the linker.
@ -302,7 +302,7 @@ boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
BTX, producing the binary file suitable to be put on the
beginning of the partition for the system boot.</para>
<para>boot0 passes the execution to BTX's entry point. BTX then
<para><literal>boot0</literal> passes the execution to BTX's entry point. BTX then
switches the processor to protected mode, and prepares a simple
environment before calling the client. This includes:</para>
@ -366,10 +366,10 @@ init.2: shr %bx # Handle this int?
the kernel to change the protected mode data structures, such as
page tables, GDT, IDT, etc later, if needed.</para>
<para>boot2 defines an important structure, <literal>struct
bootinfo</literal>. This structure is initialized by boot2 and
<para><literal>boot2</literal> defines an important structure, <literal>struct
bootinfo</literal>. This structure is initialized by <literal>boot2</literal> and
passed to the loader, and then further to the kernel. Some
nodes of this structures are set by boot2, the rest by the
nodes of this structures are set by <literal>boot2</literal>, the rest by the
loader. This structure, among other information, contains the
kernel filename, BIOS harddisk geometry, BIOS drive number for
boot device, physical memory available, <literal>envp</literal>
@ -398,7 +398,7 @@ struct bootinfo {
u_int32_t bi_modulep; /* preloaded modules */
};</programlisting>
<para>boot2 enters into an infinite loop waiting for user input,
<para><literal>boot2</literal> enters into an infinite loop waiting for user input,
then calls <function>load()</function>. If the user does not
press anything, the loop brakes by a timeout, so
<function>load()</function> will load the default file