Bootloader
Der Bootloader wird vom BIOS vom ersten Sektor (Bootsektor in den Speicher geladen und ausgeführt. Er hat die Aufgabe, das Betriebssystem zu starten, indem er den Kernel und ggf. weitere Module lädt und ausführt.
Inhaltsverzeichnis
Probleme
Im Bootsektor ist meist nicht genügend Platz vorhanden, deshalb teilt man den Bootprozess in mehrere Stufen auf: In der ersten Stufe wird der Bootsektor vom BIOS ausgeführt. Dieser lädt wiederum den eigentlichen Bootloader, welcher dann den Rest des Bootprozesses übernimmt und den Kernel des Betriebssystems (und evtl. Treiber) lädt und ausführt.
Ausgangssituation nach dem Laden
Wenn das BIOS die Kontrolle an den Bootloader übergeben hat, gibt es einige Dinge, die jedes BIOS standardmäßig sicherstellen muss:
- das Register dl enthält die Nummer des Bootlaufwerks
- der Prozessor befindet sich im Real Mode
- Interrupts sind aktiviert
- CS:IP ist entweder 0x7C0:0x00 oder 0x00:0x7C00
Andere Dinge sind allerdings nicht standardisiert:
- die Position des Stacks
- der Inhalt der Register (außer dl, siehe oben)
Bekannte Bootloader
- GRUB (vielseitiger OpenSource Loader)
- LILO (Linux Loader)
- NTLDR (Windows NT Loader)
- BOOTMGR (Windows Vista Loader)
Weiterführende Artikel
Obwohl davon abgeraten wird, kann man seinen Bootloader natürlich auch selbst programmieren: Eigener Bootloader