Even terug naar de basis, om het verhaal compleet te maken.
Een harde schijf bestaat uit een aantal "platters", dit zijn fysieke schijfjes, die ofwel aan een, ofwel aan beide kanten worden gebruikt.
Elke gebruikte schijfkant vereist 1 kop "head" om te lezen en te schrijven.
Op zo'n schijfkant worden de gegevens in een aantal concentrische cirkels weggeschreven, de "tracks", dde groep van tracks met dezelfde diameter op alle platters bij elkaar wordt de cylinder genoemd.
Elk van die tracks wordt onderverdeeld in een aantal sectoren. De oer-schijven voor de PC hadden altijd 17 sectoren van 512 bytes per track. Voor niet-PC-toepassingen kom je ook wel andere sector-groottes tegen (een vriend van mij heeft ooit avonden zitten klooien met een paar schijven, totdat ik ze onder handen kreeg, een sector-grootte van 1 k constateerde, en de jumper vond die terug naar 512 bytes ging). Vroeger was het aantal sectoren/track aantal vast, tegenwoordig hebben de buitenste cylinders meer sectoren dan de binnenste cylinders.
Een grote beperking was dat in de BIOS 3 bytes werden gereserveerd voor de C/H/S-informatie, met vast aantallen bits per C, H en S, die helaas niet zo slim ingedeeld waren (teveel bits voor het aantal koppen, te weinig voor het aantal cylinders). Bij RLL- en MFM-schijven (correctere, schijven met een ST412-protocol) was de intelligentie op de schijf minimaal, alles zat op de controller.
Bij IDE is de controller op de schijf veel intelligenter, een IDE-controller is nauwelijks meer dan een set opgewaardeerde buffer-chips (hum), en die controller ging vervolgens hard zitten liegen over de eigenlijke indeling van de schijf. De waarden voor C/H/S werden wat omgerekend (bijv. aantal cylinders delen door 2 en aantal koppen vermenigvuldigen met 2), zodat het allemaal nog in die aantallen bits paste.
Dat de fysieke indeling van de harde schijf afwijkt van wat de PC daarover denkt is de reden dat je oudere IDE harddisks niet een low-level format mag geven, en de wat recentere dat zelfs weigeren (ook vanwege die wisselende aantalen sectors/track).
Zo is het in dat voorbeeld van jou duidelijk dat het onwaarschijnlijk is dat er 64 koppen in dat kastje passen, er zitten vermoedelijk veel meer cylinders in, waarvan het aantal sectoren varieert, hoe verder naar buiten, hoe meer sectoren per track.
1024 cyl x 256 head x 64 sectors/track x 512 bytes/sector = 8.589.934.592 bytes
gedeeld door 1024 x 1024 : 8192 MByte
gedeeld door 1.000.000 = 8590 Manufacturer's Megabytes.
Dit is dus de grootste schijf die je met het C/H/S-systeem kunt gebruiken, van een grotere schijf kun je ook niet meer dan 8 GByte benutten. Wil je verder, dan zul je het C/H/S-systeem moeten verlaten.
Overigens hebben bijvoorbeeld SCSI-disks nooit last gehad van het low-level format-probleem, omdat de controller op de schijven zelf op commando het low-level format uitvoert, en die weet wel hoe de schijf in elkaar zit (je hoeft/kunt de C/H/S-waarden niet in de low-level-format-routine voor SCSI-disks specificeren). Voor SCSI is een schijf een reeks blokken genummerd van 0 -> hoeveel er nodig zijn, het systeem krijgt nooit op andere manier toegang tot de schijf.
The number of things that Arthur couldn't believe he was seeing was fairly large