en-US/Books/Linux/Senior/Course.xml | 43 ++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
New commits:
commit d38599022721c7f1f7d42ca3e15546c88bd32a61
Author: Jeroen van Meeuwen (Fedora Unity) <kanarip(a)fedoraunity.org>
Date: Mon Aug 25 00:30:44 2008 +0200
more updates
diff --git a/en-US/Books/Linux/Senior/Course.xml b/en-US/Books/Linux/Senior/Course.xml
index e4dde0e..4516beb 100644
--- a/en-US/Books/Linux/Senior/Course.xml
+++ b/en-US/Books/Linux/Senior/Course.xml
@@ -383,6 +383,49 @@ ERR: 0
</para>
</section>
</section>
+ <section
id="LinuxSeniorCourse-HardwareAndArchitecture-ConfigureFundamentalBIOSSettings-TheMagical1024Limit">
+ <title>The Magical 1024 Limit</title>
+ <para>
+ Usually computer systems use the disk's Master Boot Record
(MBR), the first 512 bytes or first <emphasis>block</emphasis> on a hard disk
for the boot loader. Of these 512 bytes only 446 bytes can be used.
+ </para>
+ <para>
+ Windows users often do not have to think about this because they
do not get presented the option of where to install the boot loader, but Linux users can
place the bootloader either in the MBR, or in the root partition. This can create problems
because there's certain limitations as to where a bootloader can and cannot be placed
on a hard disk.
+ </para>
+ <para>
+ Placing the boot loader outside the MBR and into the first
partition on the disk is limited to the first 1024 cylinders of the hard disk.
+ </para>
+ <para>
+ A little background on how hard disks work (or used to work);
Hard disks have platters, which each usually have two heads (two sides on which data can
be manipulated). Each head has a number of sectors, like slices of a pie, and a number of
tracks, circles on a side of the platter a head can read without changing track. A
cylinder is a pile of similar tracks off each head.
+ </para>
+ <para>
+ The intersection between a cylinder (a collection of tracks), a
head (one track in the cylinder remains) and a sector describes a
<emphasis>block</emphasis>, most commonly 512, sometimes 1024 bytes.
+ </para>
+ <para>
+ If you would want to visualize how CHS would address a certain
block on a hard disk, take a roll of toilet paper (a hard disk platter). Imagine each
layer of paper is a cylinder. At this point it has two heads (the top and bottom of the
roll). Then, take a slice like you would from a pie (sector), and the layers of paper on
the top and bottom of the slice represent blocks.
+ </para>
+ <para>
+ Original CHS specifications (used by BIOS' interrupt call
13h, or INT 13) limited the number of cylinders, heads and sectors to 1024, 16 and 63
respectively. Enhanced CHS however has extended the maximum number of heads to 255, often
implemented as virtual heads (and not physical sides to a platter, if you will), but the
number of cylinders was limited to 1024 still.
+ </para>
+ <para>
+ For the BIOS to be able to detect, read, load and execute the
stage1 boot loader, it needs to be able to find where it is in a limited fashion (because
of CHS being used in the 13h interrupt call). It can only search so many
<emphasis>cylinders</emphasis>, and thus so many tracks, and thus so many
blocks. These cylinders by the original definition of CHS could only contain
+ <equation>
+ <title>Data Limit for 1024 Cylinders (Original
CHS)</title>
+ <mathphrase>
+ 1024 cylinders * 16 heads * 63 sectors * 512 bytes = 528
MB
+ </mathphrase>
+ </equation>
+ or by the definition of the following Enhanced CHS,
+ <equation>
+ <title>Data Limit for 1024 Cylinders (Enhanced
CHS)</title>
+ <mathphrase>
+ 1024 cylinders * 255 heads * 63 sectors * 512 bytes = 8.4
GB
+ </mathphrase>
+ </equation>
+ </para>
+ <para>
+ This relates to how CHS builds a map of the available storage.
Given that previously the maximum number of cylinders, heads and sectors was 1024, 16 and
63 respectively, containing 512-byte blocks, for the BIOS to be able
+ </para>
+ </section>
</section>
<section
id="LinuxSeniorCourse-HardwareAndArchitecture-ConfigureModemAndSoundCards">