# Coreboot

Coreboot (Eigenschreibung: coreboot, ehemals LinuxBIOS) ist ein Projekt, welches zum Ziel hat, quelloffene, freie Plattforminitialisierung zu entwickeln. LinuxBIOS wurde 1999 vom Los Alamos National Laboratory gestartet und Anfang 2008 in „coreboot“ umbenannt. Das Projekt ist unter der GNU General Public License lizenziert.
Das Projekt wird von der Free Software Foundation (FSF) gutgeheißen und als eines der Projekte mit hoher Priorität angesehen. Das Projekt erhielt auch Unterstützung aus der Wirtschaft, etwa von Google, MSI, Silicon Integrated Systems (SiS), Tyan, Linux Networx und der coresystems GmbH, zeitweise auch von AMD. Im April 2019 wurde der Fork oreboot gestartet, der anstatt in der Programmiersprache C in Rust geschrieben ist.

## Innovationen in Coreboot

Durch den Einsatz von Coreboot kann der Bootvorgang erheblich beschleunigt werden. Auf einigen Systemen beträgt die Boot-Zeit weniger als eine Sekunde. Der Ursprung liegt im Bereich von High-Performance-Computing und Cluster-Systemen.

### Funktion für den Bootvorgang

Coreboot selbst ist lediglich ein Minimal-Code, um das Mainboard mit all seinen Geräten zu starten. Unmittelbar danach erfolgt eine Übergabe an eine sogenannte Payload (engl. für Nutzlast), die dann das System weiter hochfährt. Coreboot enthält selbst keinen Kernel. Ein Großteil des Coreboot-Codes dient dazu, das RAM benutzbar zu machen, den PCI-Bus und die serielle Schnittstelle zu initialisieren, letztere als Ausgabegerät zur Fehlersuche.
Nach der Systeminitialisierung durch Coreboot springt die Payload an, die das weitere Hochfahren des Systems übernimmt. Die bekanntesten sind FILO (ein minimalistischer Bootloader), eine IEEE-1275-konforme Open-Firmware-Implementierung (dazu gehören OpenBIOS, SmartFirmware sowie Open Firmware selbst), Memtest86, GRUB2, SeaBIOS, Plan 9 und ein Linux-Kernel. Etherboot wurde durch eine neue Netzwerkboot-Payload mit integriertem iPXE-ROM ersetzt. Prinzipiell sind als Payload auch verschiedene andere Bootloader, Betriebssysteme und Standalone-Software einsetzbar.
Der Linux-Kernel ist ab der Version 2.6 so groß (>1 MiB), dass er in den meisten üblichen Flash-ROMs (4 Mbit bzw. 512 KiB) keinen Platz findet. Da Coreboot keine Gerätetreiber enthält, kann die Festplatte nicht direkt ausgelesen werden und eine Payload mit Gerätetreibern (z. B. FILO oder GRUB2) übernimmt das Laden von der Festplatte. Da neuere Mainboards oft aufgelötete Flash-ROMs verwenden, ist ein Austausch durch größere Chips nicht immer praktikabel. Die größten verfügbaren Flash-ROMs bewegen sich in der Größenordnung von 4 bis 8 MiB, was sogar für eine komplette Linux-Distribution mit graphischer Oberfläche ausreicht.

### Unterstützte Hardware

Die Unterstützung der Hardware wird eingeteilt in Unterstützung von Hauptplatinen und Chipsätzen.
Derzeit werden insgesamt etwa 230 Hauptplatinen von verschiedenen Herstellern (mit vielen unterschiedlichen Chipsätzen) unterstützt.
Seit 2012 laufen alle Chromebooks (und andere Geräte mit ChromeOS) mit Coreboot.

## Verwendung von Coreboot

Coreboot wird in verschiedenen Cluster-Systemen, unter anderem am Los Alamos National Laboratory, und auch in diversen Embedded-Systemen (z. B. in Set-Top-Boxen) eingesetzt. Ein weiteres Einsatzgebiet ist der Server-Bereich. So setzt zum Beispiel die Free Software Foundation mehrere Server mit Coreboot (und darüber einem freien Betriebssystem) ein. Auch Unterstützung für Standard-Desktop-Computer ist gegeben: Das Gigabyte GA-M57SLI-S4, ein Mainstream-AM2-Mainboard beispielsweise wird unterstützt.

## Bedeutung für die Freie-Software-Bewegung

Das 1983 gegründete GNU-Projekt hatte zunächst die Entwicklung eines freien Betriebssystems zum Ziel. Zusammen mit dem 1992 unter die GPL gestellten Linux wurde das erste Betriebssystem geschaffen, das unter einer Open-Source-Lizenz erhältlich war – abgesehen von der vor dem Betriebssystemstart aktiven proprietären Firmware. Das Problem dieses fehlenden Teilstücks Freier Software wurde erst im Jahr 1999 angegangen. Durch Coreboot in Verbindung mit einem freien ROM-Image (zum Beispiel einem Linux-Kernel, OpenBIOS, Open Firmware, o. a.), wurde eine mehr oder minder freie Brücke zwischen Hardware und Software geschlagen. Coreboot enthält allerdings noch immer proprietäre Binärblobs, deshalb wurde im Sommer 2014 eine Distribution von Coreboot mit dem Namen Libreboot gegründet.
Herkömmliche BIOS-Varianten sind nicht selten mit gewissen Softwarefehlern behaftet; diese sind oft nicht zu bereinigen, wenn nicht vom Hersteller ein Update zur Verfügung gestellt wird. Neben diesen unabsichtlichen Einschränkungen gibt es Ansätze, in Zukunft weitere Funktionen in der proprietären Firmware (BIOS bzw. UEFI) zu implementieren, die bewusste Beschränkungen der Funktionalität befürchten lassen. Beispielsweise Digitale Rechteverwaltung, deren Funktionalität in Teilen absichtlich nicht offengelegt wird.