Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jun 2002 06:50:59 -0700 (PDT)
From:      Ross Lippert <ripper@eskimo.com>
To:        devnull@uptsoft.com
Cc:        freebsd-doc@freebsd.org
Subject:   Re: [devnull@asitatech.ie: Re: an addition to developer-handbook]
Message-ID:  <200206141350.GAA13475@eskimo.com>
In-Reply-To: <20020614113942.A20213@oasis.uptsoft.com> (message from Sergey Lyubka on Fri, 14 Jun 2002 11:39:42 %2B0300)

next in thread | previous in thread | raw e-mail | index | archive | help

OK, here are some new diff's.  Some were errors I hadn't caught
before (and some I had) and some were changes I made because I
got a better understanding of the material when I read it (like
BTX).

When talking about init, you mention that it is covered in "the book".
Which book do you mean?  do you mean "the FreeBSD Developer's
Handbook" or "the FreeBSD Handbook" or something else?  Just put
something a tad more specific there.

It would not hurt to run a spellchecker on it.  If I were
writing it, I'd do something like
  w3m boot.html > boot.txt
to strip out the tags  and then
  ispell boot.txt
or better yet
  aspell boot.txt
It is a pain to spellcheck stuff with a lot of code in it, which is
why I'm not doing it for you, but think about the main of having to
fix every error spotted by your readers if you don't fix it ahead of
time.

Oh one last thing.  I do not know whether the proper term to
use is harddisk or hard disk or hard-disk.  I have normalized
every occurrence in your text to harddisk so whichever you decide
you can easily find and replace all occurrences.


-r


--- Serg	Fri Jun 14 09:39:28 2002
+++ Serg.orig	Fri Jun 14 09:20:28 2002
@@ -16,7 +16,7 @@
   <title>Synopsis</title>
 
   <para>This chapter is an overview of the boot and system initialization
-  process, starting from the BIOS (firmware) POST, to the first user process
+  process, starting from the BIOS(firmware) POST, to the first user process
   creation.  Since the initial steps of system startup are very architecture
   dependent, the IA-32 architecture was chosen as example.</para>
 </sect1>
@@ -24,8 +24,8 @@
 <sect1>
   <title>Overview</title>
 
-  <para>A computer running FreeBSD can boot by several methods,
-  although the most common method, booting from a harddisk where the OS is
+  <para>Computer running FreeBSD can boot by several methods,
+  although the most common method, booting from harddisk where the OS is
   installed, will be discussed here.  The boot process is divided into several
   steps:</para>
 
@@ -119,7 +119,7 @@
   is well defined: it is a 32-bit value of 0xffffff00.
   The instruction pointer register points to code to be executed by the
   processor.  One of the registers is the <literal>cr1</literal> 32-bit control
-  register, and its value just after the reboot is 0.  One of the cr1's
+  register, and it's value just after the reboot is 0.  One of the cr1's
   bits, the bit PE (Protected Enabled) indicates whether the processor
   is running in
   protected or real mode.  Since at boot time this bit is cleared, the
@@ -150,7 +150,7 @@
   instruction.  That instruction
   reads 512 bytes from the first sector of boot device into the memory at
   address 0x7c00.  The term <emphasis>first sector</emphasis> originates from
-  harddrive architecture, where the magnetic plate is divided to a number
+  hard drive architecture, where the magnetic plate is divided to a number
   of cylindrical tracks.  Tracks are numbered, and every track is divided by
   a number (usually 64) sectors.  Track number 0 is the outermost on the
   magnetic plate, and sector 1, the first sector (tracks, or, cylinders,
@@ -182,7 +182,7 @@
   starting from offset 0x1be, called the <emphasis>partition table</emphasis>.
   It has 4 records of 16 bytes each, called <emphasis>partition
   records</emphasis>, which represent how the
-  harddisk(s) are partitioned, or, in FreeBSD's terminology, sliced.
+  hardisk(s) are partitioned, or, in FreeBSD's terminology, sliced.
   One byte of those 16 says whether a partition (slice) is
   bootable or not.  Exactly one record must have that flag set,
   otherwise <filename>boot0</filename>'s code will refuse to proceed.</para>
@@ -201,7 +201,7 @@
   the same information, but in different ways: LBA (Logical Block Addressing)
   has the starting sector for
   the partition and the partition's length, while CHS (Cylinder Head Sector)
-  has coordinates for the first and last sectors of the partition.</para>
+  has a coordinates for the first and last sectors of the partition.</para>
 
   <para>The boot manager scans the partition table and prints the menu
   on the screen so the user can select what disk and what slice to boot.
@@ -274,7 +274,7 @@
   <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 a BTX client, i.e. it uses
+  client, that it linked with.  So boot2 is a BTX client, i.e. it uses
   the sevice provided by BTX.</para>
 
   <para>The <application>btxld</application> utility is the linker.  It links
@@ -508,8 +508,8 @@
 	orl	$CR0_PE|CR0_PG,%eax		/* enable paging */
 	movl	%eax,%cr0			/* and let's page NOW! */</programlisting>
 
-  <para>The next three lines of code are because the paging was set,
-  so the jump is needed to continue the execution in virtualized address
+  <para>The next three lines of code are due to the paging was set,
+  so the jump is nedded to continue the execution in virtualized address
   space:</para>
   <programlisting>
 	pushl	$begin				/* jump to high virtualized address */
@@ -518,9 +518,9 @@
 /* now running relocated at KERNBASE where the system is linked to run */
 begin:</programlisting>
 
-  <para>The function <function>init386()</function> is called,
+  <para>The funtion <function>init386()</function> is called,
   with a pointer to the first free physical page, after that
-  <function>mi_startup()</function>.  <function>init386()</function> is an architecture dependent
+  <function>mi_startup()</function>.  init386 is an architecture dependent
   initialization function, and <function>mi_startup()</function> is an architecture independent one.  The
   kernel never returns from <function>mi_startup()</function>, and by calling it, the kernel finishes
   booting:</para>
@@ -546,19 +546,19 @@
 
     <itemizedlist>
       <listitem><para>Initialize the kernel tunable parameters, passed from
-      the bootstapping program.</para></listitem>
-      <listitem><para>Prepare the GDT.</para></listitem>
-      <listitem><para>Prepare the IDT.</para></listitem>
+      bootstapping program.</para></listitem>
+      <listitem><para>Prepare GDT.</para></listitem>
+      <listitem><para>Prepare IDT.</para></listitem>
       <listitem><para>Initialize the system console.</para></listitem>
-      <listitem><para>Initialize the DDB, if it is compiled into kernel.
+      <listitem><para>Initialize DDB, if it is compiled into kernel.
       </para></listitem>
-      <listitem><para>Initialize the TSS.</para></listitem>
-      <listitem><para>Prepare the LDT.</para></listitem>
+      <listitem><para>Initialize TSS.</para></listitem>
+      <listitem><para>Prepare LDT.</para></listitem>
       <listitem><para>Setup proc0's pcb.</para></listitem>
 
     </itemizedlist>
 
-    <para>What <function>init386()</function> first does is initialize the tunable parameters
+    <para>What <function>init386()</function> first does is initialize tunable parameters
     passed from bootstrap.  This is done by setting the environment pointer
     (envp) and calling <function>init_param1()</function>.  The envp pointer
     has been passed from loader in the <literal>bootinfo</literal> structure:</para>
@@ -595,7 +595,7 @@
     then the linear virtual address for
     that instruction would be "the virtual address of code segment CS"
     + EIP.  For convenience, segments
-    begin at virtual address 0 and end at a 4Gb boundary.  Therefore, the
+    begin at virtual address 0 and end at 4Gb boundary.  Therefore, the
     instruction's linear virtual address for this example would just be
     the value of EIP.  Segment registers such as CS, DS etc
     are the selectors, i.e. indexes, into GDT (to be more precise, an index is
@@ -739,7 +739,7 @@
 SYSINIT(announce, SI_SUB_COPYRIGHT, SI_ORDER_FIRST, print_caddr_t, copyright)
 </programlisting>
 
-  <para>The subsystem ID for this object is SI_SUB_COPYRIGHT (0x0800001),
+  <para>The subsystem ID for this oject is SI_SUB_COPYRIGHT (0x0800001),
   which comes right after the SI_SUB_CONSOLE (0x0800000).  So, the
   copyright message will be printed out first, just after the console
   initialization.</para>
@@ -828,7 +828,7 @@
 extern struct linker_set	sysinit_set;	/* XXX */</programlisting>
 
   <para>The <literal>struct linker_set</literal> is defined as
-  follows:</para>
+  following:</para>
   <programlisting><filename>/usr/include/linker_set.h:</filename>
   struct linker_set {
 	int	ls_length;
@@ -836,7 +836,7 @@
 };</programlisting>
 
 
-  <para>The first node will be equal to the number of sysinit objects,
+  <para>The first node will be equal to a number of a sysinit objects,
   and the second node will be a NULL-terminated array of pointers to them.
   </para>
 
@@ -885,7 +885,7 @@
   <para>The <function>create_init()</function> allocates a new process
   by calling <function>fork1()</function>, but does not mark it runnable.
   When this new process is scheduled for execution by the scheduler,
-  the <function>start_init()</function> will be called.  That function is
+  a <function>start_init()</function> will be called.  That function is
   defined in <filename>init_main.c</filename>.  It tries to load and
   exec the <filename>init</filename> binary, probing
   <filename>/sbin/init</filename> first, then <filename>/sbin/oinit</filename>,
@@ -903,4 +903,3 @@
 </sect1>
 
 </chapter>
-






To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206141350.GAA13475>