Bootstrap
Grundlagen
Der englische Begriff „Vorlage:Lang“ bezieht sich ursprünglich auf die Schlaufe, die sich an der Hinterseite eines Stiefels befindet, um das Anziehen des Stiefels zu erleichtern
- Der Prozess des Bootens (ein Programm auf einem Rechner laufen zu lassen, auf dem noch kein Betriebssystem läuft) erinnert teilweise an das Bemühen, sich an der eigenen Stiefelschlaufe aus dem Morast zu ziehen
Ein erster „Vorlage:Lang“ befindet sich in der Hardware selbst
- Meist handelt es sich um einen Boot-ROM, der die für das Starten grundlegende Hardwarekomponenten initialisiert, ein Startprogramm sucht und, wenn eines gefunden wird, ausführt
- Wo sich der Bootloader auf dem veränderlichen Datenspeicher zu befinden hat und wie er geladen wird, ist je nach Rechnerarchitektur und Plattform unterschiedlich
- Auf moderneren Architekturen liegt er meist als Datei auf einem von der Firmware unterstützten Dateisystem auf einem unterstützten bootfähigen Medium, etwa einer bestimmten Partition auf der Festplatte, und wird davon direkt geladen und ausgeführt
- Das ist beispielsweise bei Open Firmware und bei UEFI der Fall, wobei die verwendeten Partitionstabellen und Dateisysteme unterschiedlich sein können
- Auch der Bootloader selbst muss in einem bestimmten ausführbaren Dateiformat vorliegen
- Das kann einerseits der Prozessorarchitektur und im Besonderen deren Befehlssatz geschuldet sein, wie z. B. PE/COFF bei UEFI, oder die Firmware implementiert ein Architektur-übergreifendes Zwischencode-Format wie z. B
- Open Firmware mit Forth FCODE
- Einige ältere Architekturen laden den Bootloader aus einem vordefinierten Block des startfähigen Mediums, der daher auch als Bootblock oder, gängiger, Bootsektor bezeichnet wird
- Bei IBM-PC-kompatiblen Computern mit BIOS befindet sich dieser immer im ersten Block, Block 0, der auf partitionierten Datenträgern wie Festplatten gängigerweise einen Master Boot Record (MBR) sowohl als Startprogramm als auch als Partitionstabelle enthält
- Auf Disketten wird in gleicher Weise Block 0 geladen und ausgeführt, allerdings findet sich dort im Normalfall keine Partitionstabelle, sondern ein Volume Boot Record (VBR)
Auch im Bereich der eingebetteten Systeme spricht man von Bootloadern
- Dort kann der Bootloader oft nicht nachgeladen werden, sondern befindet sich im nichtflüchtigen Speicher des Steuergeräts
- Er beinhaltet Grundroutinen der Initialisierung und oft Kommunikationsprotokolle, um den Austausch der Anwendungsprogramme zu ermöglichen
Beim Raspberry Pi ist aus kostengründen nur ein minimales Boot-ROM direkt im SoC untergebracht
- Diese erste Firmware-Stufe kann nichts anderes als auf die SD-Karte zuzugreifen und dort von einer FAT-Paritition die Datei
bootcode.bin
zu laden und auszuführen - Im Fall eines Linux-Systems initialisiert diese zweite Firmware-Stufe die restliche Hardware und führt im Anschluss eine dritte Stufe aus der Datei
loader.bin
aus - Dieser Vorlage:Lang wiederum lädt nun die Firmware für CPU und GPU in den RAM
- Erst danach ist der Einplatinencomputer bereit, um den Linux-Kernel zu laden, wobei die Firmware-Konfiguration aus Datei
config.txt
und die Kernel-Parameter aus Dateicmdline.txt
angewendet werden
Als Bootmanager wird ein auf einem Betriebssystem installierbares Dienstprogramm bezeichnet, das einen eigenen Bootloader enthält und erweiterte Konfigurationsmöglichkeiten bietet