Ein Bootloader (englische Aussprache [], von der verkĂŒrzten Form des ursprĂŒnglichen Wortes bootstrap loader), auch Startprogramm[1] genannt, ist eine spezielle Software, die gewöhnlich durch die System-Firmware (z. B. das BIOS, Open Firmware oder UEFI) eines Rechners von einem startfĂ€higen Medium geladen und anschlieĂend ausgefĂŒhrt wird. Der Bootloader lĂ€dt dann weitere Teile des Betriebssystems, gewöhnlich einen Kernel. Daher ist auch oft vom Bootcode die Rede, dem ersten Programm (Maschinencode), das nach der unverĂ€nderlichen Firmware von einem wechselbaren verĂ€nderlichen Datenspeicher geladen wird. Der Vorgang selbst heiĂt Booten (auf Deutsch auch Starten) eines Rechners.
Grundlagen
[Bearbeiten | Quelltext bearbeiten]Der englische Begriff âbootstrapâ 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.[2][3]
Ein erster âbootstrap loaderâ 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-Partition 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 bootstrap loader wiederum lĂ€dt nun die Firmware fĂŒr CPU und GPU in den RAM. Erst danach ist der Einplatinencomputer bereit, den Linux-Kernel zu laden, wobei die Firmware-Konfiguration aus Datei config.txt und die Kernel-Parameter aus Datei cmdline.txt angewendet werden.[4]
Als Bootmanager wird ein auf einem Betriebssystem installierbares Dienstprogramm bezeichnet, das einen eigenen Bootloader enthÀlt und erweiterte Konfigurationsmöglichkeiten bietet.
Mehrstufige Bootloader
[Bearbeiten | Quelltext bearbeiten]Ist ein Bootloader in mehrere auf einander aufbauende Stufen unterteilt, so wird er als mehrstufiger Bootloader (englisch Multistage Bootloader) bezeichnet. Diese Unterteilung in Stufen wird z. B. dann gemacht, wenn der Programmcode des Bootloaders nicht im Bootsektor Platz findet; an dieser Stelle wird daher nur die erste Stufe geladen und ausgefĂŒhrt, die dann die zweite Stufe, von der die erste Stufe nur die LĂ€nge, die Block-Nummer und die Nummer des Mediums kennt, geladen und ausgefĂŒhrt wird. Die zweite Stufe kann nun mit dem konkreten Dateisystem des Mediums umgehen und lĂ€dt anhand eines Dateinamens die dritte Stufe. Die dritte Stufe ist nun der eigentliche Bootloader und lĂ€dt eine Konfigurationsdatei, die z. B. ein AuswahlmenĂŒ enthĂ€lt. Ein MenĂŒpunkt könnte die Anweisung beinhalten, einen Bootloader einer anderen Partition zu laden.
Dieser mehrstufige Aufbau hat mehrere Vorteile: So kann im oben beschriebenen Fall die Datei des eigentlichen Bootloaders (Stufe 3) beliebig verĂ€ndert oder auch physisch verschoben werden, da die zweite Stufe mit dem Dateisystem umgehen kann und die dritte Stufe anhand des Dateinamens finden kann. AuĂerdem unterliegt ein solcher Bootloader nicht den BeschrĂ€nkungen der LĂ€nge eines Bootblocks.
Chain-Loader
[Bearbeiten | Quelltext bearbeiten]Es ist auch möglich, dass mehrere Bootloader sich â wie in einer [Befehls-]Kette (englisch chain [of command]) â nacheinander aufrufen. Solche Aufrufe â meist ĂŒber mehrere Partitionen hinweg â wird auch Chain-Loading oder Chainloading (englisch chain loading) genannt. Hierbei kann zuerst ein Bootloader geladen werden, der z. B. ein BootmenĂŒ zur Betriebssystem-Auswahl darstellt, und anschlieĂend je nach Auswahl in diesem MenĂŒ der entsprechende (betriebssystemspezifische) Bootloader. So lassen sich auch mehrere, unterschiedliche Betriebssysteme in einem sogenannten Multi-Boot-System auf einem Rechner nebeneinander betreiben.
Bootloader mit Zusatzfunktion
[Bearbeiten | Quelltext bearbeiten]Manche Bootloader sind gar keine Bootloader mit dem alleinigen Zweck, ein Betriebssystem zu starten. Beispiele:
- Bootloader, die lediglich anzeigen sollen, dass ein eingelegtes Medium nicht startfĂ€hig ist, z. B. bei Disketten die Textausgabe âNon-System disk or disk error. Replace and press any key when ready...â (MS-DOS 5.0, FAT12/16)[5]
- Bootloader, die auf erkannten Datenspeichern weitere Bootloader erkennen und diese starten. Zu Zeiten von MS-DOS waren einige Formatierungsprogramme fĂŒr Disketten verbreitet, die eine Auswahl eines zu startenden anderen per BIOS ansprechbaren GerĂ€ts erlauben. So kann man z. B. mit FDFORMAT oder VGA-COPY/386 einen Bootsektor auf Disketten schreiben, der wahlweise oder automatisch von der Festplatte starten konnte. Auch ist dies z. B. bei Windows-Installations-CDs der Fall: Wenn auf einer erkannten Festplatte (oder SSD) ein bereits installiertes Betriebssystem erkannt wird, booten diese nur dann von CD, wenn eine beliebige Taste gedrĂŒckt wird, ansonsten wird von der lokalen Festplatte gebootet. So kann das Installationsprogramm nach erfolgreicher Installation den Rechner sofort neustarten. Das Booten erfolgt zwar wieder von CD, aber nachdem nun keine Taste gedrĂŒckt wird, ruft sich das Installationsprogramm nicht erneut selbst auf, sondern ĂŒbergibt die Kontrolle an die neue Installation.
- Bootloader, die gleich ein Anwendungsprogramm starten. Einige Programme, beispielsweise Memtest86, können direkt und ohne Dateisystem von einer Diskette gestartet werden. In den 1980er Jahren gab es bei IBM-kompatiblen PCs sogenannte PC Booter, meist Computerspiele, die direkt und ohne Betriebssystem von der Diskette starteten.
- Bootloader, die fehlende oder falsche Funktionen des BIOS bei PC-kompatiblen Rechnern in Software (statt in Firmware) abÀndern. Das wurde beispielsweise genutzt, um BIOS-Funktionen zu erweitern, damit der Speicher von Festplatten mit mehr als 512 MiB, 8 GiB, 32 GiB oder 128 GiB vollstÀndig erreichbar ist, wie z. B. EZ-Drive oder der OnTrack Disk Manager.
- Auch Bootviren sind Bootloader, und in dieser speziellen Form Computerviren, die schon beim Rechner-Start aktiviert werden.
- Bootmanager sind Bootloader, die z. B. auf einem bestimmten Betriebssystem als Dienstprogramm installiert werden können. Sie bieten meist gegenĂŒber dem vom Betriebssystem bereitgestellten Bootloader erweiterte Konfigurationsmöglichkeiten, etwa ein BootmenĂŒ fĂŒr Multi-Boot-Konfigurationen. Beispiele: GRUB auf IBM-kompatiblen PCs mit BIOS oder UEFI (GRUB2 auch auf weiteren Architekturen und Plattformen, etwa Open Firmware auf PowerPC), rEFIt und rEFInd auf x86-UEFI-PCs.
- Bootloader, die eine andere Firmware laden. So kann beispielsweise Tianocore EDK2 (UEFI) von einem, auch wechselbaren, Datenspeicher auf einem PC mit BIOS gestartet werden, welches anschlieĂend ein modernes Betriebssystem, das UEFI voraussetzt, starten kann. Ebenso kann z. B. Open Firmware oder Coreboot per Bootloader gestartet werden.
Liste von Bootloadern
[Bearbeiten | Quelltext bearbeiten]| Bootloader | Beschreibung |
|---|---|
| ADAM2 | Bootloader von Texas Instruments AR7 |
| AiRBoot | benötigt keine primÀre Partition, kann von verschiedenen Betriebssystemen aus installiert werden[6][7] |
| Arcboot | Advanced Risc Console (Bootloader frĂŒherer DEC-Alpha-Systeme) |
| Akernelloader | x86 bootloader |
| Amiboot | Von AmigaOS aus ausfĂŒhrbarer Linux-Loader auf Amiga-Computern; wird von AmigaOS aus konfiguriert |
| barebox[8] | Modularer, universeller Bootloader fĂŒr Eingebettete Systeme (ehemals u-boot-v2) |
| BootEasy | FreeBSD-Bootmanager |
| bootman | Bootloader, verwendet unter BeOS, ZETA und Haiku |
| Bootmgr | Bootloader aller Windows-Systeme ab Windows Vista |
| BootStar | Universeller Bootmanager |
| Boot-US | Universeller Bootmanager |
| BootX | Bootloader fĂŒr Mac OS X auf der PowerPC-Plattform mit Open Firmware; /System/Library/CoreServices/BootX[9]Nach dem Schwenk von PowerPC zu IA-32 (32-Bit-x86) und x64 (64-Bit-x86) 2006 wurde auf sog. âIntel-Macsâ ein Apple-spezifisches EFI verwendet und BootX wurde durch einen EFI-Bootloader ( /System/Library/CoreServices/boot.efi) ersetzt.[10]
|
| BootX[11] | Von klassischem Mac OS ab Mac OS 8 aus fungierender Linux-Bootloader auf Macintosh-Computern mit âOld Worldâ-PowerPC-Architektur, der eine Startauswahl zwischen Mac OS und Linux bietet. Im technischen Sinn nur fĂŒr Linux ein Bootloader, da BootX auf Mac OS als Programm lĂ€uft â vergleichbar mit Loadlin unter PC-kompatiblem DOS und Windows 9x. |
| burg | Basiert auf Grub. (vergleichbar mit grub24dos) |
| Clover[12] | Der âClover EFI bootloaderâ, manchmal auch CloverEFI, ist ein Bootloader mit Fokus auf Multi-Boot-Systeme und macOS mit zahlreichen Möglichkeiten zur Konfiguration. Auf BIOS-Systemen kann Clover ein auf TianoCore basiertes UEFI laden, damit Betriebssysteme, die ein EFI voraussetzen, gestartet werden können. Auf (U)EFI-Systemen nutzt Clover das native EFI und kann per CSM, wenn vorhanden, auch BIOS-basierte Betriebssysteme starten. Der Bootloader unterstĂŒtzt die Betriebssysteme Linux, macOS (ursprĂŒnglich Mac OS X) und Windows NT direkt, kann aber grundsĂ€tzlich jedes PC-Betriebssystem starten (z. B. PC-BSD-Unix). |
| Colilo | Ein LILO-Derivat fĂŒr die Coldfire-Prozessorfamilie von Motorola |
| EasyBCD | Wird zum Konfigurieren und Anpassen des von Microsoft entwickelten Bootloaders Bootmgr verwendet. |
| elilo | Bootloader fĂŒr Linux auf der Itanium-Architektur (IA-64), EFI-basiert. |
| EMILE (Early Macintosh Image LoadEr) | Bootloader fĂŒr Linux auf einem m68k-Macintosh |
| eXtended FDisk | DOS-Dienstprogramm zur Bootmanager-Einrichtung und Festplatten-Partitionierung, als Ersatz fĂŒr fdisk entwickelt, belegt selbst keine Partition und unterstĂŒtzt versteckte Partitionen, GPL |
| EXTlinux | Im Softwarepaket von SYSLINUX mit enthalten |
| FILO | |
| GAG (Gestor de Arranque Grafico) | Dateisystem-agnostischer Bootloader. Freie Software (GPL), mehrsprachig (unter anderem deutsch)[13] |
| GRUB (Grand Unified Bootloader) | Freie Software (GPL), der Bootloader des GNU Projekts (englisch) â offizielle Entwickler-Webseite |
| Grand Unified Bootloader for DOS (GRUB4DOS) | Freie Software (GPL), basiert auf Grub.[14] |
| Grub24Dos | Grub2-Derivat vergleichbar mit burg |
| Gummiboot | Linux-Bootloader fĂŒr UEFI-basierte Hardware, der von den Red-Hat-Entwicklern Kay Sievers und Harald Hoyer als Alternative zu GRUB geschaffen wurde.[15] (Gummiboot benötigt mindestens Linux-Kernel 3.3.0[16] und lĂ€uft nicht auf IBM-PC-kompatiblen Systemen mit âLegacy-BIOSâ.) 2015 wurde Gummiboot in systemd integriert.[17] |
| iBoot | Bootloader der iOS-basierten iDevices von Apple (z. B. iPad, iPhone, iPod) |
| ISOlinux | Im Softwarepaket von SYSLINUX mit enthalten |
| Linux Loader (LILO) | Dateisystem-agnostischer Bootloader fĂŒr Linux und andere Systeme, benötigt Initialisierungsaufruf nach KernelĂ€nderung, BSD-Lizenz |
| Loadlin | Von Windows 3.x/9x oder PC-kompatiblem DOS aus ausfĂŒhrbarer Bootloader fĂŒr Linux, der auch von Windows aus konfiguriert werden kann. |
| NeoGRUB | Eingebunden in die Bootwerkzeug-Software EasyBCD |
| NT-Loader (NTLDR) | Bootloader aller Windows-NT-Systeme von NT 3.1 bis XP/2003 |
| OpenBIOS | freie Implementierung des Open-Firmware-Standards |
| PALO | Bootloader fĂŒr die PA-RISC-Architektur-Prozessorhardware von Hewlett Packard |
| Penguin | Von System 6, System 7 und Mac OS 8 aus ausfĂŒhrbarer Linux-Loader auf m68k-Macintoshs (klassisches Mac OS, Versionen 6.0â8.1); wird von Mac OS aus konfiguriert |
| PLoP | Ein Bootloader, der auch mit Ă€lteren PCs ohne BIOS-UnterstĂŒtzung von CDROM bzw. USB booten kann. Download und Dokumentation: deutsch und englisch. |
| PXElinux | Im Softwarepaket von SYSLINUX mit enthalten |
| Redboot | Bootloader fĂŒr Embedded Systeme wie auf Atheros basierende WLAN-Router |
| Quik[18] | Bootloader fĂŒr Linux auf einem Old-World-PowerPC-Macintosh mit Open Firmware |
| rEFInd | Erbe von rEFIt. UrsprĂŒnglich fĂŒr Macs mit EFI im Fokus funktioniert rEFInd auch auf anderen UEFI-Systemen. |
| rEFIt | Inoffizieller Bootloader fĂŒr Macs, der ein AuswahlmenĂŒ fĂŒr die einfachere Multi-Boot-Konfiguration fĂŒr Windows, welches einen Hybrid-MBR nutzt, erleichtert. Funktioniert auch mit anderen Betriebssystem wie u. a. Linux, BSD, Solaris. Entwicklung eingestellt. |
| ROM-Monitor | Die Firmware fĂŒr Ciscos NetzwerkgerĂ€te[19] |
| Sparc Improved Loader (SILO) | |
| Smart BootManager | Bootloader[20][21] von SPBLinux |
| SmartFirmware | Bootloader des Pegasos |
| SyMon Bootmanager | Universeller Bootmanager |
| SYSLINUX | Ein Paket mit einem ganzen BĂŒndel von Bootloadern: EXTlinux fĂŒr das Booten vom ext2-, vom ext3-, vom ext4- sowie vom btrfs-Dateisystem aus, etwa auf Linux, des Weiteren ISOlinux fĂŒr das Booten vom iso-Dateisystem aus, meist residierend auf optischen Disks wie CDs bzw. DVDs, sowie PXElinux fĂŒr nahezu netzwerksynchronisiertes Booten in Netzwerken, die aus mehreren Rechnern bestehen. Des Weiteren gestattet SYSlinux das Booten von fat- bzw. vfat-Dateisystemen aus, wodurch dieser Bootloader ungefĂ€hr ab der Version 6 auch auf UEFI-Rechnern eingesetzt werden kann. |
| systemd-boot (auch: sd-boot) | In systemd integrierter einfacher UEFI-Bootmanager und Weiterentwicklung von Gummiboot. |
| Das U-Boot (ehemals PPCBoot[22], ehemals 8xxROM[23]) | Universeller Bootloader, vor allem fĂŒr Eingebettete Systeme |
| VAMOS | Kommerzieller Bootloader, lÀuft auf MS-DOS-Systemen, Entwicklung eingestellt. |
| Yaboot | Bootloader fĂŒr Linux auf einem New-World-PowerPC-Macintosh und anderen PowerPC-Systemen |
| XOSL | Universalbootloader mit grafischer OberflÀche, GPL |
| ZBOOT |
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- â Debian Gnu/Linux: Grundlagen, Seite 466 â Suchergebnisseite bei Google-BĂŒcher; Stand: 25. April 2011.
- â Robin Anderson, Andy Johnston: Unix Unleashed. Sams Publishing, 2002, ISBN 978-0-672-32251-8, S. 25 (englisch, eingeschrĂ€nkte Vorschau in der Google-Buchsuche): âIt really does derive from a literal strap that was looped around the back of a boot to help the wearer pull it on. This is also where the phrase âpull yourself up by your bootstrapsâ comes from.â
- â Steve Rosenthal: Rosenthalâs ABCs/Glossary: boot, bootstrap. In: InfoWorld. Band 5, Nr. 22. InfoWorld Media Group, Inc., 30. Mai 1983, ISSN 0199-6649, S. 64 (englisch, eingeschrĂ€nkte Vorschau in der Google-Buchsuche): âThe process is named as an analogy to pulling oneself up by oneâs bootstraps.â
- â Klaus Dembowski: Raspberry Pi â Das Handbuch; Konfiguration, Hardware, Applikationserstellung. Springer Vieweg, 2013, ISBN 978-3-658-03166-4, 2.6.1 Bootvorgang â Firmware und Kernel, S. 51 (eingeschrĂ€nkte Vorschau in der Google-Buchsuche).
- â Daniel B. Sedory: The MS-DOS 5.0 Floppy Disk Boot Record. (on a 1200 KiB floppy diskette). In: The Starman's Realm. 24. September 2011, abgerufen am 19. Januar 2019 (englisch).
- â AiRBoot (englisch) â offizielle Entwickler-Webseite.
- â AiRBoot (englisch) â Download bei Sourceforge.
- â Website des Barebox-Projekts.
- â Amit Singh: What is Mac OS X? Booting Mac OS X. Dezember 2003, archiviert vom (nicht mehr online verfĂŒgbar) am 26. Dezember 2018; abgerufen am 15. Februar 2019 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.
- â Brian Jepson, Rich Rosen, Ernest E. Rothman: Mac OS X For Unix Geeks, 4th Edition. Chapter 4. Startup. OâReilly Media, Inc., abgerufen am 15. Februar 2019 (englisch).
- â Bootloaders > BootX Bootloader. penguinppc.org, 25. September 2004, archiviert vom am 30. April 2008; abgerufen am 15. Februar 2019 (englisch).
- â https://sourceforge.net/projects/cloverefiboot/
- â GAG, the Graphical Boot Manager (englisch) â offizielle Entwickler-Webseite.
- â Ăltere Version (englisch) ( vom 9. April 2013 im Internet Archive), aktuelle Entwicklung als grub4dos-chenall (chinesisch, englisch). Siehe auch: englischsprachiges Forum ( des vom 27. MĂ€rz 2013 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis..
- â Oliver Diedrich: Gummiboot soll Linux auf UEFI-Systemen starten. In: Heise online. 29. Juni 2012. Abgerufen am 21. Januar 2024.
- â Roderick W. Smith: Managing EFI Boot Loaders for Linux: Using gummiboot/systemd-boot. 7. Juli 2018, abgerufen am 21. Januar 2024 (englisch).
- â Thorsten Leemhuis: Systemd will Linux-Start per UEFI Secure Boot absichern. In: Heise online. 2. Februar 2015. Abgerufen am 21. Januar 2024.
- â Quik Bootloader ( vom 27. September 2004 im Internet Archive)
- â Cisco; ROM-Monitor.
- â Smart BootManager (englisch) â offizielle Entwickler-Webseite.
- â Smart BootManager (englisch) â Download bei Sourceforge.
- â Website des PPCBoot-Projekts: Letztes Release, FortfĂŒhrung als U-Boot (englisch)
- â Website des PPCBoot-Projekts: Umbenennung von 8xxROM in PPCBoot (englisch)
