Bootloader

Aus Lowlevel
Wechseln zu:Navigation, Suche

Der Bootloader wird vom BIOS aus dem ersten Sektor (dem sogenannten Bootsektor) eines Massenspeichermediums, wie z.B. einer Diskette oder einer Festplattenpartition, in den Hauptspeicher geladen und dort zur Ausführung gebracht. Seine Hauptaufgabe besteht darin, das Betriebssystem zu starten, indem er den Kernel und ggf. weitere Module lädt und ausführt.

Handelt es sich bei dem Massenspeicher, von dem gebootet wird, um eine Festplatte, so wird der Bootloader nicht direkt von dem BIOS geladen, sondern über den Umweg über den Master Boot Record (MBR), d.h., das BIOS lädt den MBR, welcher wiederum den Bootloader aus dem ersten Sektor einer Festplattenpartition lädt und zur Ausführung bringt.


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

Weiterführende Artikel

Obwohl davon abgeraten wird, kann man seinen Bootloader natürlich auch selbst programmieren: Eigener Bootloader