
Neue Serverkonfiguration
Dieser liegt auf dem zu bootenden Medium als erster Sektor und wird in den Speicher an eine bestimmte Adresse geladen (0x0000:7C00). Danach ruft das BIOS dann die Software an dieser Adresse auf. Von da ab übernimmt dieser kleine Softwareschnipsel die komplette Kontrolle über den Rechner.
Das funktioniert in dem der kleine Schnipsel von der Diskette weitere Software nachläd und sich so, Münchhausen ähnlich, an den eigenen Haaren aus dem Sumpf zieht. Schauen wir uns das mal am Beispiel von DOS (etwa MS-DOS 6.22) an.
DOS ist in diesem Falle in den drei Dateien MSDOS.SYS, IO.SYS und COMMAND.COM verborgen. Die ersten beiden müssen im Hauptverzeichnis stehen. Der Schnipsel liest dieses beim Booten ein, sucht die Datei IO.SYS, läd diese in den Hauptspeicher und springt dann dort hin. IO.SYS läd MSDOS.SYS, MSDOS.SYS überprft die CONFIG.SYS auf zusätzliche Informationen und läd dann, nach dem ggf. noch in der CONFIG.SYS erwähnte Dateien geladen wurden, die Benutzerschnittstelle COMMAND.COM nach ... Bei allen anderen Betriebsystemen und Datenträgern ist es im Prinzip ähnlich.
Die erste Frage müsste jetzt sein: Woher weiss der Bootsector wo das Hauptverzeichnis ist? Und man könnte jetzt vermuten, das dies bei einer bestimmten Diskettengröße immer an derselben Stelle ist (was im Prinzip auch stimmt). Also kann man einfach das BIOS nach der Art des Laufwerkes fragen und dann aus einer Tabelle die entsprechende Position ermitteln?
Und natürlich ist dem nicht so. Schliesslich kann ein und dasselbe Laufwerk Disketten verschiedener Formate schlucken. Was ist denn wenn in dem 1,2MB Laufwerk (80 Tracks * 15 Sektoren) eine 180MB-Diskette liegt? Nein, das muss flexibler gehen.
Und tut es auch. Jeder Bootsektor beginnt mit einer Tabelle, die wie folgt aufgebaut ist.
Offset | Länge | Kommentar |
---|---|---|
0 | 3 | Sprungbefehl |
3 | 8 | OEM-Name (z.B. "MSDOS5.0") |
11 | 2 | Bytes per Sektor |
13 | 1 | Sektoren per Cluster |
14 | 2 | Reservierte Sektoren |
16 | 1 | Anzahl FATs |
17 | 2 | Anzahl der erlaubten Einträge im Hauptverzeichnis |
19 | 2 | Anzahl der Sektoren (unterhalb 32MB) |
21 | 1 | MediaType |
22 | 2 | Anzahl der Sektoren pro FAT |
24 | 2 | Sektoren pro Track |
26 | 2 | Anzahl der Köpfe |
28 | 4 | Anzahl der versteckten Sektoren |
32 | 4 | Anzahl der Sektoren |
36 | 1 | Laufwerksnummer |
37 | 1 | (Reserviert) |
38 | 1 | (Reserviert) |
39 | 4 | Nummerisches Label |
43 | 11 | Name des Datenträgers |
54 | 8 | Name des FileSystems (z.B. "FAT12") |
62 | [Ende] |
Das Ganze schauen wir uns an einem konkreten Beispiel im nächsten Teil an.