- Bios Boot Specification
-
Als Basic Input Output System (BIOS) bezeichnet man die Firmware bei x86-PCs (für andere Systeme siehe unten im Kapitel Vergleichbare Konzepte). Das BIOS ist ein Programm, das in einem nichtflüchtigen Speicher auf der Hauptplatine des PCs abgelegt ist und unmittelbar nach dessen Einschalten ausgeführt wird. Es ist unter anderem die Aufgabe des BIOS, den PC zunächst „zum Leben zu erwecken“ und im Anschluss das Starten eines Betriebssystems einzuleiten. Dass das griechische Wort Bios (geschrieben: βιός) zugleich Leben bedeutet, ist vor diesem Hintergrund vermutlich ein „beabsichtigter Zufall“.
Im flüchtigen Sprachgebrauch wird der Begriff BIOS heute manchmal auch synonym für BIOS-Einstellungen verwendet. Hierauf geht der Absatz über BIOS-Einstellungen genauer ein.
Inhaltsverzeichnis
Aufgabe des BIOS
Ein BIOS löst zwei Probleme, die beim Kaltstart eines PCs auftreten:
- Zum einen ein klassisches Henne-Ei-Problem oder das Problem des Freiherrn von Münchhausen, der sich „am eigenen Schopf aus einem Sumpf“ herausziehen sollte (darum auch booten, boot englisch für „Schuhband“ im Sinne „sich an den eigenen Schuhbändern aus dem Sumpf ziehen“): Software ist in der Regel auf einem Datenträger gespeichert, der zunächst in den Hauptspeicher des Rechners eingelesen werden muss. Zum Einlesen des Datenträgers benötigt die CPU aber wiederum Software. Frühere Computer und Rechenanlagen lösten dieses Problem dadurch, dass sie die CPU nach dem Einschalten des Rechners grundsätzlich zunächst in den Pausemodus versetzten. Bevor der Rechner gestartet werden konnte, musste zunächst manuell oder mithilfe spezieller Peripherie eine minimale Software (Bootloader, Urlader oder Ladeprogramm genannt) in den Hauptspeicher eingetragen werden. Häufig war die Neueingabe des Urladers beim Starten des Rechners aber gar nicht nötig, da der in den 1960er und frühen 1970er Jahren weit verbreitete Kernspeicher – ganz im Gegensatz zum heute gebräuchlichen Halbleiterspeicher – seinen Inhalt beim Ausschalten nicht verlor (Persistenzspeicher) und die Programme im Hauptspeicher deshalb zumeist nur neu gestartet werden mussten oder sogar fortgesetzt werden konnten. Das Ladeprogramm ist bei heutigen PCs Teil des BIOS, das in einem speziellen Speicherbaustein, dem EPROM, seit neuerem aber meist einem Flash-Speicher abgelegt ist, deren beider Speicherinhalt auch wieder ohne Zufuhr von Strom erhalten bleibt. Beide sind vollständig unabhängig von einer Energieversorgung und auch für die Firmware von portablen Geräten geeignet. Damit entfällt heute die manuelle Eingabe eines Ladeprogramms.
- Zum anderen erfordert unterschiedliche Hardware, die in unterschiedlichen Rechnern verbaut ist, jeweils eine spezielle Ansteuerungssoftware (Treibersoftware), und die zugehörige Konfiguration. Ein Betriebssystem musste also früher auf jede Variante jedes Rechnertyps speziell zugeschnitten werden, um darauf lauffähig zu sein. Durch die Auslagerung dieser speziellen Ansteuersoftware in den jeweiligen Rechner wurde es möglich, die gleiche Betriebssystemsoftware auf verschiedenen Rechnern laufen zu lassen. Damit wirkt das BIOS nach neuerer Sprechweise u. a. als Hardware Abstraction Layer (HAL). Allerdings lässt sich beobachten, dass moderne Betriebssysteme wieder dazu übergehen, eigene Treibersoftware für die Hardware zu benutzen, da im Protected Mode keine BIOS-Aufrufe mehr möglich sind.
BIOS beim IBM-kompatiblen PC
Funktionen
Durch modernere Hardware hat das BIOS im Laufe der Zeit neue Funktionen hinzugewonnen. Nicht alle der im Folgenden genannten Punkte wurden schon vom Ur-BIOS auf dem ersten IBM PC ausgeführt. Die Weiterentwicklung der Hardware hat im Laufe der Zeit (Stand 2005 ist das BIOS-Konzept bereits über 20 Jahre alt) zu einer Reihe von iterativen, inkompatiblen Ergänzungen geführt, die zunehmend den Charakter von „Flickschusterei“ tragen und nicht mehr zeitgemäß für moderne 64-Bit-Systeme sind. Daher wurde in Form von Extensible Firmware Interface (EFI) bereits ein BIOS-Nachfolger entwickelt.
Im Wesentlichen führt das BIOS die folgenden Funktionen aus, bevor das Betriebssystem gestartet wird:
- Power On Self-Test (POST)
- Initialisierung der Hardware
- Aufforderung zur Eingabe eines BIOS-Passworts (falls konfiguriert)
- Aufforderung zur Eingabe eines Festplatten-Passworts (falls konfiguriert)
- Darstellung eines Startbildschirms
- Möglichkeit ein BIOS-Konfigurationsmenü („BIOS-Setup“) aufzurufen
- Aufrufen von BIOS-Erweiterungen einzelner Subsysteme, die entweder auf Steckkarten untergebracht sind oder direkt auf dem Mainboard integriert sind, z. B.:
- Grafikchip
- Netzwerkchip
- SCSI-Controller
- RAID-Controller
- Feststellen, von welchem Datenträger gebootet werden kann und soll
- Laden des Software-Bootloaders von diesem Datenträger.
Danach übernimmt der geladene Bootloader die Kontrolle über den Rechner. Meist lädt und startet er das auf dem entsprechenden Datenträger gespeicherte Betriebssystem entweder sofort oder bietet ein Menü zur Auswahl eines Betriebssystems an (Bootmanager). Bei klassischen im Real Mode laufenden Betriebssystemen (z. B. DOS) wird das BIOS auch im weiteren Betrieb genutzt. Es übernimmt für das Betriebssystem die Kommunikation mit diverser Hardware, z. B.:
- Tastatur
- Serielle und parallele Schnittstellen
- Systemlautsprecher
- Grafikkarte
- Diskettenlaufwerke
- Festplatten
Andere, moderne Arten von Hardware werden vom BIOS nicht bedient. Zur Ansteuerung z. B. einer Maus ist unter DOS ein spezieller Hardwaretreiber nötig.
Neuere, treiberbasierte Betriebssysteme wie z. B. Linux oder Microsoft Windows nutzen diese BIOS-Dienste nicht. Sie laden für jede Art von Hardware einen speziellen Treiber. Sie müssen jedoch am Anfang ihres Startvorgangs noch kurz auf die BIOS-Funktionen zur Ansteuerung der Festplatten zurückgreifen, um ihren Festplattentreiber zu laden.
Siehe auch Return On AC Power Loss.
BIOS-Einstellungen
Um in das Setup-Programm des BIOS zu gelangen, muss beim Einschalten des Rechners eine bestimmte Taste oder Tastenkombination betätigt werden (meist Entf, Einfg, F1, F2, F8, F10, F12 oder Esc, bei Baycom-Notebooks Strg / Ctrl+Alt+S, bei Adaptec-SCSI-Karten Strg / Ctrl+Alt+A). Bei einigen wenigen Mainboards muss ein bestimmter Jumper gesetzt werden.
Die Einstellungen werden in einem CMOS-Speicher gespeichert, der über die Mainboard-Batterie auch ohne Netzanschluss mit Strom versorgt wird. Oft ist dieser Speicher mit der Echtzeituhr des Systems kombiniert, da auch diese immer mit Strom versorgt werden muss.
Bei Schwierigkeiten bietet das BIOS meist die Möglichkeit, die Standardeinstellungen des Rechner- oder des BIOS-Herstellers zu setzen. Wenn es nicht mehr möglich ist, ins Setup-Programm zu kommen (etwa weil der Rechner gar nicht mehr bootet), lassen sich die Einstellungen meist über einen Jumper am Mainboard zurückstellen (bei allen neueren Mainboards muss dafür das Netzteil ganz abgeschaltet werden). Wenn das nicht möglich ist, kann der CMOS-Speicher durch das Entfernen der Batterie gelöscht werden. Letzteres benötigt aber einige Zeit, bis auch die Kondensatoren entladen sind.
Sicherheit
Das BIOS ist die zweite Sicherheitsstufe, die unberechtigten Zugriff auf einen Computer verhindern kann. Zuvor gibt es die physische Sicherung mit Schlössern o. ä, welche deutlich wirksamer ist. Im BIOS-Setup kann eine Passwortabfrage für das Starten des Rechners eingerichtet werden. Dies stellt nur auf den ersten Blick eine Sicherung des Systems dar, da diese Einstellungen bei physischem Zugang zum Computer mehr oder weniger leicht durch Manipulationen auf der Hauptplatine ausgehebelt werden können. Zudem wirkt diese Sicherung nur auf die Hauptplatine, auf der sich das BIOS enthaltende ROM befindet. Wird diese ausgetauscht, oder die Festplatte(n) des Systems in einen anderen Rechner eingebaut, kann problemlos auf alle Daten zugegriffen werden. Zudem haben die Hersteller meist ein festes (Recovery-, Master- oder Supervisor-)Passwort eingerichtet, um den Zugang wiederherstellen zu können, wenn der Benutzer sein eigenes Passwort vergessen hat.
Aktualisieren des BIOS
Auf modernen Hauptplatinen ist das BIOS in einem wiederbeschreibbaren Speicher (genauer: EEPROM meist Flash-Speicher) abgelegt. Daher kann es ohne Herausbauen dieses Chips durch neuere Versionen ersetzt werden („Flashen“). Da ein Rechner ohne vollständiges BIOS jedoch nicht funktionsfähig ist, stellt dieser Vorgang immer ein gewisses Risiko dar. Wird er unterbrochen, z. B. durch einen Stromausfall, muss der Chip, auf dem das BIOS gespeichert ist, normalerweise ausgetauscht werden.
Mit der Zeit entwickelten AMI, Award, Phoenix und andere Hersteller „BootBlock“/Recovery-BIOS-Bereiche, die bei einem Flash-Vorgang dann normalerweise nicht mehr überschrieben werden. Schlug der Flash-Vorgang fehl, startet das „BootBlock“/Recovery-BIOS und ermöglicht es, von Diskette zu booten. Bei einigen BIOS-Varianten kann sogar eine spezielle "Recovery-CD/-Diskette" erstellt werden, die auch bei einem defektem BIOS durch Setzen eines Jumpers automatisch das BIOS wiederherstellt. Dazu sind keinerlei Benutzereingaben notwendig und keine grafische Ausgabe nötig, welche bei defektem BIOS ohnehin meist nicht mehr funktioniert.
Einige Hauptplatinen bieten ein so genanntes DualBIOS™ an. Im Fehlerfall kann das zweite (noch intakte) BIOS den Startvorgang übernehmen und die Änderung rückgängig gemacht werden. Das kann beim Flashen des BIOS ein Rettungsanker sein, sollte die neu aufgespielte BIOS-Version nicht funktionieren. Des Weiteren können mit einem DualBIOS verschiedene BIOS-Einstellungen geladen werden.
Da das Aktualisieren eines Flash-BIOS heutzutage schon unter einem laufenden Windows möglich ist [1], eröffnen sich damit neue Einfallswege für Viren-Befall. Wenn auf diesem Wege beispielsweise ein Rootkit installiert würde, könnte es sich noch einmal wesentlich effizienter gegen Entdeckung und Löschung abschotten. Außerdem kann ein Absturz von Windows während dem Flash den PC eventuell unbootbar machen (siehe oben).
BIOS-Hersteller
Eine Auswahl von Herstellern von BIOSen für IBM-kompatible PCs:
- AMI
- Phoenix/Award – Award und Phoenix haben fusioniert. Award wird von dem Unternehmen als Desktop-Produkt geliefert. Die Phoenix-Produktreihe wird hingegen bei Servern und Laptops eingesetzt.
- MR BIOS
- ATI
- IBM
Vergleichbare Konzepte
BIOS bei CP/M-Computern
In der Ausdrucksweise von CP/M bedeutet BIOS nicht ein Programm in einem Festspeicher, sondern die unterste Ebene des Betriebssystems selbst, die von einer Diskette oder Festplatte geladen wird. Bei MS-DOS (für x86) heißt die entsprechende Komponente daher aufgrund der Verwechslungsgefahr nicht BIOS, sondern „IO.SYS“.
Kickstart beim Commodore Amiga
Die Amiga-Rechner von Commodore benötigen als Firmware das so genannte Kickstart. Es erfüllt alle Funktionen eines BIOS und enthält darüber hinaus auch den Betriebssystemkernel (exec) des AmigaOS. Die ersten Modelle des Amiga 1000 müssen nach dem Einschalten (Kaltstart) noch per Bootstrap-Diskette mit den Kickstart-Versionen 1.0 bis 1.3 gestartet werden. Das Kickstart wird hierbei im WOM, einem besonderen Bereich des RAM, abgelegt und gegen Überschreiben gesichert. Nach einem Reset (Warmstart) bleibt dieses im Speicher erhalten und braucht nicht neu geladen zu werden. Dieser Umstand hat den Vorteil, dass sehr schnell und unkompliziert auf eine neuere Version aktualisiert werden kann. Alle späteren Modelle, wie der Amiga 500 oder der Amiga 2000, verfügen über ein ROM, welches in seiner Version nur durch den Austausch des Bausteins geändert werden kann. Durch die Verwendung eines „Kickstart Switchers“ kann jedoch vor dem Einschalten zwischen zwei ROMs mit unterschiedlichen Kickstartversionen per Schalter gewechselt werden. Dies ist besonders seit Einführung von Kickstart 2.0 relevant geworden, welches Kompatibilitätsprobleme mit älteren Programmen hat. Dies trifft im besonderen Maße auf Spiele zu. Besitzer des „Amiga 500+“, welcher hauptsächlich für Computerspiele im Heimbereich ausgelegt ist und standardmäßig Kickstart 2.0 verwendet, sind auf einen solchen Kickstartswitcher angewiesen, sofern sie zu Kickstart 2.0 inkompatible Spiele auf ihrem Amiga ausführen wollen.
XBIOS/TOS beim Atari ST
Beim Atari ST war das gesamte Betriebssystem TOS, einschließlich der grafischen Benutzeroberfläche GEM, im ROM untergebracht und war quasi direkt nach dem Einschalten betriebsbereit. Als BIOS wurde die unterste Schicht des Betriebssystems bezeichnet, für den Programmierer erkennbar als eine Sammlung speicherresidenter Funktionen. Darüberliegende Schichten (ebenfalls erkennbar als solche Sammlungen) waren:
- Das GEMDOS (GEM Disk Operating System)
- Das VDI (Virtual Device Interface)
- Das AES (Application Environment System)
Das XBIOS (Extended Basic Input/Output System) war keine eigene Schicht, sondern lag parallel zum BIOS auf derselben Schicht, wobei einige Funktionen des XBIOS Hardware-näher angesiedelt waren.
Open Firmware
Für Nicht-x86-Rechner (z. B. PowerPC oder SPARC) wurde von mehreren Herstellern (u. a. Sun) der plattformunabhängige Open-Firmware-Ansatz (IEEE-1275) auf Forth-Basis definiert. Dieser kommt nicht nur bei Suns Sparc-Rechnern, sondern auch bei den PPC-Macs von Apple und CHRP-Rechnern von Drittherstellern wie Genesi (mit dem Pegasos) zum Einsatz.
Extensible Firmware Interface
Intel und Microsoft wollen das über 20 Jahre alte BIOS durch das Extensible Firmware Interface (EFI) ersetzen, weil dieses bessere Voraussetzungen für zukünftige Computergenerationen bieten soll. Es findet teilweise schon im Server-Bereich auf Intels IA-64-Architektur Verwendung, und mit der Einführung von Windows Vista sollte es auch bei konventionellen x86-PCs die Ablösung des inzwischen veralteten BIOS-Konzeptes einleiten. Im März 2006 kündigte Microsoft jedoch an, dass Vista EFI zunächst nicht unterstützen soll und es später nur für die 64-bit-Varianten nachgerüstet wird.
Im Januar 2006 brachte Apple den ersten Intel-basierten Mac in Form des iMac auf den Markt. Dies waren die ersten x86-Computer mit EFI.
Freie BIOS-Alternativen
Die verschiedenen BIOS-Implementierungen der verschiedenen PCs sind im Regelfall proprietäre Software, was große Unsicherheiten birgt: da der Quellcode nicht bekanntgegeben wird, werden Sicherheitslücken teilweise nicht rechtzeitig erkannt. Auch kann ein proprietäres BIOS den Benutzer an Tätigkeiten hindern, die von der Hardware des Gerätes her kein Problem darstellen würden: so erlaubt z. B. das BIOS der Xbox es nicht, andere Software als die von Microsoft zugelassene zu starten.
Es ist möglich, den Flash-ROM-Baustein (früher: EPROM), auf dem das BIOS abgelegt ist, zu ersetzen oder zu überschreiben, um so z. B. den Linux-Kernel direkt aus dem Flash heraus zu starten, ohne BIOS. Die Vorgehensweise ist jedoch von der jeweiligen Hauptplatine abhängig und wird überwiegend in Industriecomputern eingesetzt.
Projekte mit dieser Zielsetzung sind etwa coreboot (ehemals LinuxBIOS) und OpenBIOS.
Normen, Standards, Richtlinien
Standard über das Zusammenwirken von BIOS-Systemstart, Initial Program Load und BIOS-Funktionsergänzungen
Das Zusammenwirken von BIOS-Systemstart, Initial Program Load und BIOS-Funktionsergänzungen wird durch die sogenannte "BIOS Boot Specification" vom 11. Januar 1996[2], einem von einem Firmenkonsortium ausgearbeiteten Standard, geregelt.
Dieser Standard fixiert insbesondere, auf welche Art und Weise Initial-Program-Load(Bootstrapload)-Komponenten, welche (den BIOS-Systemstart fortsetzend) den Hochlauf der jeweiligen Betriebssysteme herbeiführen, vom BIOS identifiziert werden und wie unter Vorgabe der durch den Computerbenutzer festgelegten Priorität (entsprechend der sogenannten Bootsequenz) versucht wird, eine oder mehrere der jeweiligen Komponenten zur Ausführung zu bringen.
Direkt oder indirekt legt dieser Standard auch fest, wie etwa ein Initial Program Loader (Bootstraploader) ein auf das BIOS abgestimmtes Verhalten zustandezubringen hat und wie das BIOS das jeweils gerade verwendete Bootmedium (Festplatte, optische Laufwerk-Disk, USB-Stick, PCMCIA-Netzwerkkarte, Ethernetkarte oder dergleichen) für den Loader handhabt.
Für die Bereitstellung von Bootmechanismen spielt die Programmierschnittstelle zwischen BIOS-Verwaltung und Bootverwaltung, das sogenannte "BIOS Boot Specification API", eine Rolle, wobei die Implementierung dieser Mechanismen hardware- und/oder softwaremäßig erfolgen kann. Erfolgt sie hardwaremäßig, so wird dies durch BIOS-Funktionsergänzungen bewerkstelligt, etwa, wenn das Motherboard-BIOS durch ergänzende Add-In-Firmware-BIOSe von Netzwerk-, SCSI- oder RAID-Adaptern erweitert und/oder partiell ausgetauscht wird. Erfolgt die Implementierung softwaremäßig, so werden entsprechende Treiber programmiert. Bei Netzwerkkarten handelt es sich oft auch um eine Kombination aus beiden Implementierungsarten. Die Bootmechanismen beim Rechnerhochlauf via Netzwerkkarte sind allerdings weit komplizierter als beim klassischen Initial Program Load. In diese Kategorie gehören Fälle, in welchen beispielsweise der Rechnerhochlauf "netzwerkgesteuert" von einem außenstehenden Rechner über das Netzwerk (etwa via Fast-Ethernetadapter) angestoßen wird. Das Motherboard-BIOS, das im Regelfall keinen Treibercode für das Booten über eine bestimmte Netzwerkkarte besitzt, wird durch Add-In-Firmware auf der Netzwerkkarte unter Beachtung der Vorgaben des BIOS Boot Specification APIs ergänzt, sodass schließlich ein programmierter Netzwerkkartentreiber dafür sorgen kann, dass der Bootmechanismus umgelenkt und die Netzwerkkarte als auswählbares Bootmedium am System angemeldet wird. Nach erfolgter Treiberinstallation und Auswahl der Netzwerkkarten-Bootoption im BIOS geht dann der BIOS-Systemstart in eine Netzwerkkommunikation über, in welcher Auskünfte über Bootserveradressen eingeholt werden und Abfragevorgänge stattfinden. Die damit verbundene Konstellation beinhaltet eine Art "Bereitschaftszustand" des Rechners, in welcher dieser durch Auslösung übers Netzwerk jederzeit hochgefahren werden kann. Entsprechen nun Teile einer von einem außenstehenden Rechner kommenden Meldung einem bestimmten Code, so wird, von einem Bootserver kommend, der Bootstraploader in den RAM-Speicher heruntergeladen und ausgeführt.
Weblinks
BIOS-Entwickler
- Phoenix Technologies (Phoenix/Award Bios)
- American Megatrends Inc.
- General Software – EBIOS (Embedded BIOS)
- Insyde Software – H2O BIOS, Systemsoft BIOS, XpressROM BIOS, MobilePRO BIOS™
Weitere BIOS-bezogene Weblinks
- Uniflash, universelles Flash-Tool für DOS (via Internet Archiv)
- FlashRom, universelles Flash-Tool (Linux)
- BIOS-Kompendium (deutsch)
Einzelnachweise
Wikimedia Foundation.