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">