BIOS - Das Basic Input Output System

BIOS
BIOS-Speicher auf Mainboard

BIOS bedeutet ausgeschrieben Basic Input Output System und ist eine Software, die nach dem Einschalten eines Computers ausgeführt wird, um die Hardware zu überprüfen und das Booten (Starten) des Betriebssystems einzuleiten. Die Übersetzung auf Deutsch lautet Basis Eingabe Ausgabe System. Es wurde ursprünglich als Schnittstelle zwischen der Hardware und dem Betriebssystem entwickelt, um darüber einem Betriebssystem den Zugriff auf die Hardware zu ermöglichen. Diese Aufgabe ist im Laufe der Zeit weitgehend entfallen, da die Hardware indirekt über Gerätetreiber angesprochen werden. So verschob sich die Funktion des BIOS und es wurde vor allem dafür verwendet, um nach dem Einschalten eines PC's als Starthilfe zu dienen, damit das Betriebssystem in den Arbeitsspeicher geladen wird und die Kontrolle über den Rechner erlangt.

Hierbei macht man es sich zunutze, dass das BIOS nach dem Ausschalten eines Rechners nicht verloren geht, da es in einem nichtflüchtigen Speicher dauerhaft gespeichert wird. So kann das Programm bei jedem Start eines PC's ablaufen. Auf früheren Hauptplatinen wurde das BIOS in einem reinen ROM (Read Only Memory) gespeichert, das nur ausgelesen werden konnte. Um das BIOS programmierbar zu machen, wurden diese zu EPROM (Erasable Programmable Read Only Memory) und danach zu EEPROM (Electrically Erasable Programmable Read Only Memory) weiterentwickelt.

Dadurch, dass der nichtflüchtige Speicher fest auf der Platine untergebracht ist, wird das BIOS häufig auch als Hardware eingeordnet. Es ist jedoch eine Software, die in einer Hardware fest gespeichert ist und die Hardware wiederum fest auf der Hauptplatine gesteckt ist. Auf dem Bild ist das BIOS auf einem Mainboard der Marke ASUS zu sehen.

Bootvorgang eines Computers

Als Anwender spürt man lediglich anhand der Zeit, die ein Computer vom Zeitpunkt des Einschaltens bis zum Laden des Betriebssystems benötigt, welche komplexen Vorgänge während des Bootvorgangs ablaufen. Aus technischer Sicht ist es eine große Herausforderung, nach dem Einschalten des Rechners eine Software wie dem Betriebssystem in den Arbeitsspeicher zu laden, da nur eine Software die Hardware ansprechen kann und zu dem Zeitpunkt der Arbeitsspeicher noch keine Software enthält. An dieser Stelle wird das BIOS verwendet, die als erste Software nach dem Einschalten ausgeführt wird. Die dabei ablaufenden Schritte sind nachfolgend abgebildet.

BIOS Ausführung nach Systemstart
Bootvorgang mit der Ausführung des BIOS nach Start des Systems

Initialisierung der CPU

Wenn der Rechner eingeschaltet oder der Reset-Knopf gedrückt wird, dann wird anhand der Systemuhr die CPU initialisiert. Die CPU erhält zunächst eine Serie von Signalen von der Systemuhr, die clock-ticks genannt werden. Die Pins der CPU werden zurückgesetzt und die Register werden mit folgenden Initialwerten belegt.

  • Code Segment (CS): 0xFFFF
  • Data Segment (DS): 0x0000
  • Extra Data Segment (ES): 0x0000
  • Stack Segment (SS): 0x0000
  • Instruction Pointer (IP): 0x0000

Die CPU verwendet die Werte von CS und IP, um die Adresse für die nächste Anweisung zu ermitteln und auszuführen. Anhand der Initialwerte ergibt das nach dem Einschalten die physische Adresse 0xFFFF0 und diese Adresse verweist auf die Speicherstelle des BIOS. So wird erreicht, dass nach dem Einschalten des Rechners das BIOS als erste Anweisung ausgeführt wird.

Ausführung des BIOS

Die Ausführung des BIOS unterteilt man grob in zwei Vorgänge. Zunächst wird ein sogenannter Power On Self Test durchgeführt, der abgekürzt POST genannt wird. Dabei überprüft das BIOS die Hardware des Rechners. Für diesen Zweck wird zuerst das CMOS-RAM ausgelesen. Das ist ein flüchtiger Speicher, der seinen Inhalt durch eine sehr leistungsfähige Batterie beibehält. Aus dem CMOS-Speicher wird die aktuelle Systemzeit sowie die Hardwarekonfiguration ausgelesen. Denn, um die Hardware zu überprüfen, muss zunächst einmal ermittelt werden, welche Hardware vorhanden ist. Danach erfolgt der eigentliche Test der Hardware. Es erfolgt ein Abgleich der vorhandenen Hardware mit den Informationen aus dem CMOS und der Selbsttest läuft mit der Überprüfung der folgenden Komponenten ab.

  • Prozessor und das Selbsttestprogramm
  • Systembus
  • Festplatten
  • Systemuhr
  • Speicher der Grafikkarte
  • Arbeitsspeicher
  • Tastatur
  • Maus

Falls einige Komponenten über ein eigenes BIOS verfügen, werden diese beim Selbsttest berücksichtigt und ausgeführt. Der Status der Überprüfung wird durch kurze oder lange Pieptöne signalisiert, die abhängig vom Mainboard-Hersteller eine unterschiedliche Bedeutung haben können und aus der Dokumentation entnommen werden müssen. Mehrere kurze oder lange Pieptöne deuten meistens auf einen Fehler hin und der Startvorgang des Rechners wird abgebrochen, wenn der Fehler als "fatal error" klassifiziert wird, was bei den meisten Fehlern der Fall ist. Falls keine Fehler entdeckt werden, wird in der Regel ein kurzer Piepton gesendet. Die Pieptöne werden verwendet, da die Grafikkarte vor der Verwendung ebenfalls überprüft werden muss und zu dem Zeitpunkt noch nicht aktiviert ist, sodass eine grafische Anzeige der Fehler nicht möglich ist.

Ist der Power On Self Test erfolgreich, wird gemäß der Bootreihenfolge nacheinander versucht, einen Master Boot Record aus dem ersten Sektor einer Datenquelle (z.B. Festplatte) in den Arbeitsspeicher zu laden. Ob der erste Sektor ein MBR enthält, identifiziert das BIOS anhand der Signatur AA55 am Ende des 512 Byte großen Sektors. Falls kein MBR gefunden wird, wird der Bootvorgang mit dem Hinweis abgebrochen, dass kein Betriebssystem zur Verfügung steht.

Da das Betriebssystem in der Regel auf der Festplatte installiert ist, ist die Bootreihenfolge üblicherweise so eingerichtet, dass das BIOS mit der Festplatte beginnt, um das MBR zu laden. Es kann jedoch vorkommen, dass man die Bootreihenfolge ändern muss und das System z.B. von einer CD oder DVD starten soll. Hierfür kann es verschiedene Gründe geben. Einige Beispiele.

  • Man möchte das vorhandene Betriebssystem löschen oder es ist gar kein Betriebssystem installiert. Man legt die CD/DVD in das Laufwerk und möchte das Betriebssystem neu installieren.
  • Das System startet nicht richtig und man besitzt eine Notfall-CD oder -DVD. Das System soll damit starten, um eine Reparatur des System durchführen zu können.
  • Man möchten die Festplatte neu partitionieren und das System soll daher von einer CD oder DVD starten, auf der das Programm für die Partitionierung enthalten ist.

MBR in den Arbeitsspeicher laden

Ist der Sektor mit dem Master Boot Record identifiziert und in den Arbeitsspeicher geladen, ist die Arbeit des BIOS an dieser Stelle beendet und das MBR übernimmt zunächst die Kontrolle über den Rechner. Das MBR enthält einen Bootcode, für den mehrere Bezeichnungen im Umlauf sind und auf dieser Seite Master-Boot-Routine genannt wird (nicht zu verwechseln mit Master Boot Record). Daneben enthält es eine Partitionstabelle mit den Partitionseinträgen sowie die Signatur AA55.

Die Master-Boot-Routine prüft die Einträge in der Partitionstabelle und sucht nach der Partition, die als aktiv markiert ist. Pro Festplatte kann nur eine Partition als aktiv markiert werden, um das mehrfache Laden eines Betriebssystems zu verhindern. Nachdem die aktive Partition ermittelt ist, wird der Bootsektor von der Partition geladen. Das ist der erste Sektor der Partition, auf dem sich ein Bootloader des Betriebssystems befindet.

Im BIOS kann man noch weitere Dinge wie Systemdatum und Uhrzeit etc. einstellen. Allerdings muss man vorsichtig sein. Eine falsche Einstellung im BIOS kann dafür sorgen dass der Computer gar nicht läuft. Auch bei BIOS-Updates sollte man sehr vorsichtig sein.

Da das BIOS veraltet ist, wurde in der IT-Branche nach einem Nachfolger für das BIOS gesucht und gefunden. Es ist UEFI und bedeutet Unified Extensible Firmware Interface UEFI. Fälschlicherweise wird es auch häufig UEFI-BIOS genannt.