BIOS- BIOS

Ein Paar AMD BIOS-Chips für einen Dell 310 Computer aus den 1980er Jahren

In der Berechnung , BIOS ( / b ɒ s , - s / , BY -oss, -⁠ohss ; ein Akronym für Basic Input / Output System und auch bekannt als das System - BIOS , ROM BIOS , BIOS ROM oder PC BIOS ) ist eine Firmware, die verwendet wird, um die Hardware- Initialisierung während des Bootvorgangs (Power-On-Start) durchzuführen und um Laufzeitdienste für Betriebssysteme und Programme bereitzustellen . Die BIOS-Firmware ist auf der Systemplatine eines PCs vorinstalliert und ist die erste Software, die beim Einschalten ausgeführt wird. Der Name stammt aus dem Basic Input / Output System verwendete im CP / M - Betriebssystem im Jahr 1975. Das BIOS ursprünglich proprietären zum IBM PC wurde Reverse Engineering von einigen Unternehmen (wie Phoenix Technologies ) auf der Suche erstellen kompatible Systeme. Die Schnittstelle dieses ursprünglichen Systems dient als De-facto- Standard .

Das BIOS in modernen PCs initialisiert und testet die Systemhardwarekomponenten ( Power-on-Selbsttest ) und lädt einen Bootloader von einem Massenspeichergerät, der dann ein Betriebssystem initialisiert. In der DOS- Ära stellte das BIOS BIOS-Interrupt-Aufrufe für Tastatur, Anzeige, Speicher und andere Eingabe-/Ausgabe (I/O)-Geräte bereit, die eine Schnittstelle zu Anwendungsprogrammen und dem Betriebssystem standardisierten. Neuere Betriebssysteme verwenden die BIOS-Interrupt-Aufrufe nach dem Start nicht.

Die meisten BIOS-Implementierungen sind speziell dafür ausgelegt, mit einem bestimmten Computer- oder Motherboard- Modell zu arbeiten, indem sie mit verschiedenen Geräten, insbesondere dem System- Chipsatz , kommunizieren . Ursprünglich war die BIOS-Firmware in einem ROM- Chip auf dem PC-Motherboard gespeichert . In modernen Computersystemen werden die BIOS-Inhalte im Flash-Speicher gespeichert, sodass sie neu geschrieben werden können, ohne den Chip vom Motherboard zu entfernen. Dies ermöglicht einfache Endbenutzer-Updates der BIOS-Firmware, sodass neue Funktionen hinzugefügt oder Fehler behoben werden können, aber es besteht auch die Möglichkeit, dass der Computer mit BIOS- Rootkits infiziert wird . Darüber hinaus Upgrade ein BIOS des fehlschlägt kann Ziegel das Motherboard.

Unified Extensible Firmware Interface (UEFI) ist ein Nachfolger des alten PC-BIOS und zielt darauf ab, seine technischen Einschränkungen zu beheben.

Geschichte

/* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
                    COPYRIGHT (C) GARY A. KILDALL
                             JUNE, 1975 */
[…]
/*  B A S I C   D I S K    O P E R A T I N G   S Y S T E M  (B D O S)
                    COPYRIGHT (C) GARY A. KILDALL
                            JUNE, 1975 */
—  Ein Auszug aus dem Dateiheader BDOS.PLM im PL/M- Quellcode von CP/M 1.1 oder 1.2 für Lawrence Livermore Laboratories (LLL)

Der Begriff BIOS (Basic Input / Output System) erstellt wurde Gary Kildall und zuerst im erschien CP / M - 1975 - Betriebssystem, die Beschreibung des maschinenspezifischen Teils CP / M geladen während der Boot - Zeit , die Schnittstellen direkt mit der Hardware . (Eine CP/M-Maschine hat normalerweise nur einen einfachen Bootloader in ihrem ROM.)

Versionen von MS-DOS , PC-DOS oder DR-DOS enthalten eine Datei, die verschiedentlich " IO.SYS ", " IBMBIO.COM ", "IBMBIO.SYS" oder "DRBIOS.SYS" genannt wird; diese Datei wird als "DOS-BIOS" (auch als "DOS-I/O-System" bezeichnet) bezeichnet und enthält den untergeordneten hardwarespezifischen Teil des Betriebssystems. Zusammen mit dem zugrundeliegenden hardwarespezifischen aber betriebssystemunabhängigen "System BIOS", welches im ROM residiert , stellt es das Analogon zum " CP/M BIOS " dar.

Die BIOS ursprünglich proprietären auf den IBM - PC wurde Reverse Engineering von einigen Unternehmen (wie Phoenix Technologies ) auf der Suche erstellen kompatible Systeme.

Mit der Einführung von PS/2-Maschinen teilte IBM das System-BIOS in Real- und Protected-Mode-Teile auf. Der Real-Mode-Teil sollte Abwärtskompatibilität mit bestehenden Betriebssystemen wie DOS bieten und wurde daher "CBIOS" (für "Compatibility BIOS") genannt, während "ABIOS" (für "Advanced BIOS") speziell neue Schnittstellen bereitstellte geeignet für Multitasking-Betriebssysteme wie OS/2 .

Benutzeroberfläche

Das BIOS des ursprünglichen IBM PC und XT hatte keine interaktive Benutzeroberfläche. Fehlercodes oder Meldungen wurden auf dem Bildschirm angezeigt, oder es wurden codierte Tonfolgen erzeugt, um Fehler zu signalisieren, wenn der Einschalt-Selbsttest (POST) nicht so weit fortgeschritten war, dass ein Videoanzeigeadapter erfolgreich initialisiert wurde. Optionen auf dem IBM PC und XT wurden durch Schalter und Jumper auf der Hauptplatine und auf Erweiterungskarten eingestellt . Ab Mitte der 1990er Jahre wurde es typisch, dass das BIOS-ROM ein "BIOS-Konfigurationsdienstprogramm" (BCU) oder ein "BIOS-Setup-Dienstprogramm" enthält, auf das beim Systemstart durch eine bestimmte Tastenfolge zugegriffen wird. Dieses Programm ermöglichte es dem Benutzer, Systemkonfigurationsoptionen des Typs, der früher mit DIP-Schaltern eingestellt wurde , über ein interaktives Menüsystem einzustellen, das über die Tastatur gesteuert wird. In der Zwischenzeit hielten IBM-kompatible PCs (einschließlich IBM AT) Konfigurationseinstellungen im batteriegepufferten RAM und verwendeten ein bootfähiges Konfigurationsprogramm auf Diskette, nicht im ROM, um die in diesem Speicher enthaltenen Konfigurationsoptionen einzustellen. Die Diskette wurde mit dem Computer geliefert, und wenn sie verloren ging, konnten die Systemeinstellungen nicht geändert werden. Gleiches galt allgemein für Computer mit EISA- Bus, für die das Konfigurationsprogramm EISA Configuration Utility (ECU) genannt wurde.

Ein moderner Wintel- kompatibler Computer bietet eine Setup-Routine, die im Wesentlichen unverändert gegenüber den ROM-residenten BIOS-Setup-Dienstprogrammen der späten 1990er Jahre ist; Der Benutzer kann Hardwareoptionen über die Tastatur und das Videodisplay konfigurieren. Der moderne Wintel-Rechner kann die BIOS-Konfigurationseinstellungen im Flash-ROM speichern, möglicherweise im gleichen Flash-ROM, der das BIOS selbst enthält.

Betrieb

Systemstart

Frühe Intel-Prozessoren starteten bei der physikalischen Adresse 000FFFF0h. Systeme mit neueren Prozessoren bieten Logik zum Starten des BIOS vom System-ROM aus.

Wenn das System gerade hochgefahren wurde oder der Reset-Knopf gedrückt wurde ("Kaltstart"), wird der vollständige Einschaltselbsttest (POST) durchgeführt. Wenn Strg+Alt+Entf gedrückt wurde ("Warmstart"), ermöglicht ein spezieller Flag-Wert, der im vom BIOS getesteten nichtflüchtigen BIOS-Speicher (" CMOS ") gespeichert ist, die Umgehung des langwierigen POST und der Speichererkennung.

Der POST identifiziert, testet und initialisiert Systemgeräte wie CPU , Chipsatz , RAM , Motherboard , Grafikkarte , Tastatur , Maus , Festplattenlaufwerk , optisches Laufwerk und andere Hardware , einschließlich integrierter Peripheriegeräte .

Frühe IBM-PCs hatten eine Routine im POST, die ein Programm über den Tastaturport in den RAM herunterlädt und es ausführt. Diese Funktion war für Werkstests oder Diagnosezwecke vorgesehen.

Bootvorgang

Bootvorgang

Nachdem der Options-ROM-Scan abgeschlossen ist und alle erkannten ROM-Module mit gültigen Prüfsummen aufgerufen wurden, oder unmittelbar nach dem POST in einer BIOS-Version, die nicht nach Options-ROMs sucht, ruft das BIOS INT 19h auf, um die Startverarbeitung zu starten. Nach dem Booten können geladene Programme auch INT 19h aufrufen, um das System neu zu starten, aber sie müssen darauf achten, Interrupts und andere asynchrone Hardwareprozesse zu deaktivieren, die den BIOS-Neustartprozess stören können, oder das System kann während des Neustarts hängen oder abstürzen .

Wenn INT 19h aufgerufen wird, versucht das BIOS, Bootloader- Software auf einem "Startgerät" wie einer Festplatte , einer Diskette , einer CD oder einer DVD zu finden . Es lädt und führt die erste Boot-Software aus, die es findet, und gibt ihm die Kontrolle über den PC.

Das BIOS verwendet die Boot-Geräte, die im nichtflüchtigen BIOS-Speicher ( CMOS ) eingestellt sind, oder, in den ersten PCs, DIP-Schalter . Das BIOS überprüft jedes Gerät, um festzustellen, ob es bootfähig ist, indem es versucht, den ersten Sektor ( Bootsektor ) zu laden . Wenn der Sektor nicht gelesen werden kann, fährt das BIOS mit dem nächsten Gerät fort. Wenn der Sektor erfolgreich gelesen wurde, prüfen einige BIOSe auch die Bootsektor-Signatur 0x55 0xAA in den letzten beiden Bytes des Sektors (die 512 Bytes lang ist), bevor sie einen Bootsektor akzeptieren und das Gerät als bootfähig betrachten.

Wenn ein bootfähiges Gerät gefunden wird, übergibt das BIOS die Kontrolle an den geladenen Sektor. Das BIOS interpretiert den Inhalt des Bootsektors nur, um möglicherweise die Bootsektorsignatur in den letzten zwei Bytes zu überprüfen. Die Interpretation von Datenstrukturen wie Partitionstabellen und BIOS-Parameterblöcken erfolgt durch das Bootprogramm im Bootsektor selbst oder durch andere Programme, die durch den Bootvorgang geladen werden.

Ein Nicht-Festplattengerät, wie z. B. ein Netzwerkadapter, versucht, durch ein Verfahren zu booten, das durch sein Options-ROM oder das Äquivalent, das in das BIOS-ROM des Motherboards integriert ist, definiert ist . Als solche können Options-ROMs auch den vom Motherboard-BIOS-ROM definierten Boot-Prozess beeinflussen oder ersetzen.

Mit dem El Torito Optical Media Boot-Standard emuliert das optische Laufwerk tatsächlich eine 3,5-Zoll-Diskette mit hoher Dichte für Boot-Zwecke für das BIOS. Das Lesen des "ersten Sektors" einer CD-ROM oder DVD-ROM ist kein einfach definierter Vorgang wie auf einer Diskette oder einer Festplatte. Außerdem macht es die Komplexität des Mediums schwierig, ein nützliches Boot-Programm in einem Sektor zu schreiben. Die bootfähige virtuelle Diskette kann Software enthalten, die den Zugriff auf das optische Medium in ihrer nativen Form ermöglicht Format.

Boot-Priorität

Der Benutzer kann die vom BIOS implementierte Boot-Priorität auswählen. Die meisten Computer verfügen beispielsweise über eine bootfähige Festplatte, aber manchmal gibt es ein Wechseldatenträgerlaufwerk mit einer höheren Bootpriorität, sodass der Benutzer das Booten eines Wechseldatenträgers veranlassen kann.

In den meisten modernen BIOS kann die Boot-Prioritätsreihenfolge vom Benutzer konfiguriert werden. In älteren BIOSes sind begrenzte Boot-Prioritätsoptionen auswählbar; in den frühesten BIOSs wurde ein Schema mit fester Priorität implementiert, wobei zuerst Diskettenlaufwerke, dann Festplatten (dh Festplatten) und normalerweise keine anderen Boot-Geräte unterstützt werden, vorbehaltlich der Änderung dieser Regeln durch installierte Options-ROMs. Das BIOS in einem frühen PC bootete normalerweise auch nur vom ersten Diskettenlaufwerk oder der ersten Festplatte, selbst wenn zwei Laufwerke installiert waren.

Boot-Fehler

Auf dem ursprünglichen IBM PC und XT wurde ROM BASIC durch Aufrufen von INT 18h gestartet , wenn keine bootfähige Diskette gefunden wurde . Da nur wenige Programme BASIC im ROM verwendeten, ließen die Hersteller von Klon-PCs es weg; dann würde ein Computer, der nicht von einer Diskette booten konnte, "No ROM BASIC" anzeigen und anhalten (als Reaktion auf INT 18h).

Spätere Computer zeigten eine Meldung wie "Kein bootfähiges Laufwerk gefunden" an; einige würden zum Einlegen einer Diskette und zum Drücken einer Taste auffordern, um den Bootvorgang zu wiederholen. Ein modernes BIOS zeigt möglicherweise nichts an oder öffnet automatisch das BIOS-Konfigurationsdienstprogramm, wenn der Bootvorgang fehlschlägt.

Boot-Umgebung

Die Umgebung für das Bootprogramm ist sehr einfach: Die CPU befindet sich im Realmodus und die Universal- und Segmentregister sind undefiniert, außer SS, SP, CS und DL. CS:IP zeigt immer auf die physikalische Adresse 0x07C00. Welche Werte CS und IP tatsächlich haben, ist nicht genau definiert. Einige BIOSe verwenden ein CS:IP von, 0x0000:0x7C00während andere möglicherweise 0x07C0:0x0000. Da Bootprogramme immer unter dieser festen Adresse geladen werden, muss kein Bootprogramm verschoben werden. DL kann die Laufwerksnummer des Startgeräts enthalten, wie sie bei INT 13h verwendet wird. SS:SP zeigt auf einen gültigen Stack, der vermutlich groß genug ist, um Hardware-Interrupts zu unterstützen, ansonsten sind SS und SP jedoch nicht definiert. (Ein Stack muss bereits eingerichtet sein, damit Interrupts bedient werden können, und Interrupts müssen aktiviert sein, damit der System-Timer-Tick-Interrupt aktiviert wird, den das BIOS immer mindestens verwendet, um die Tageszeitzählung aufrechtzuerhalten und den es initialisiert während des POST, aktiv zu sein und die Tastatur zu funktionieren. Die Tastatur funktioniert auch, wenn der BIOS-Tastaturdienst nicht aufgerufen wird; Tastenanschläge werden empfangen und in den vom BIOS verwalteten 15-stelligen Type-Ahead-Puffer abgelegt.) Das Boot-Programm muss gesetzt werden einen eigenen Stack aufbauen, da die Größe des vom BIOS eingerichteten Stack unbekannt ist und seine Position ebenfalls variabel ist; Obwohl das Bootprogramm den Standard-Stack untersuchen kann, indem es SS:SP untersucht, ist es einfacher und kürzer, einfach einen neuen Stack bedingungslos einzurichten.

Beim Booten sind alle BIOS-Dienste verfügbar, und der Speicher unter der Adresse 0x00400enthält die Interrupt-Vektortabelle . BIOS POST hat die System-Timer, Interrupt-Controller, DMA-Controller und andere Motherboard-/Chipsatz-Hardware nach Bedarf initialisiert, um alle BIOS-Dienste in den Bereitschaftsstatus zu versetzen. Die DRAM-Auffrischung für alle System-DRAMs in konventionellem Speicher und erweitertem Speicher, aber nicht unbedingt im erweiterten Speicher, wurde eingerichtet und wird ausgeführt. Die den BIOS-Interrupts entsprechenden Interrupt-Vektoren wurden so eingestellt, dass sie auf die entsprechenden Eintrittspunkte im BIOS zeigen, Hardware-Interrupt-Vektoren für vom BIOS initialisierte Geräte wurden so eingestellt, dass sie auf die vom BIOS bereitgestellten ISRs zeigen, und einige andere Interrupts, einschließlich solcher die das BIOS für Programme zum Hooken generiert, wurden auf einen Standard-Dummy-ISR gesetzt, der sofort zurückkehrt. Das BIOS unterhält einen reservierten Block des System-RAM an Adressen 0x00400–0x004FFmit verschiedenen Parametern, die während des POST initialisiert werden. Der gesamte Speicher ab Adresse 0x00500kann vom Bootprogramm verwendet werden; es kann sich sogar selbst überschreiben.

Erweiterungen (Options-ROMs)

Peripheriekarten wie Festplatten- Host-Bus-Adapter und Grafikkarten haben ihre eigene Firmware, und das BIOS-Erweiterungsoptions- ROM kann ein Teil der Erweiterungskarten-Firmware sein, die dem BIOS zusätzliche Funktionen bereitstellt. Code in Options-ROMs wird ausgeführt, bevor das BIOS das Betriebssystem vom Massenspeicher bootet . Diese ROMs testen und initialisieren normalerweise Hardware, fügen neue BIOS-Dienste hinzu oder ersetzen vorhandene BIOS-Dienste durch ihre eigenen Dienste. Ein SCSI-Controller verfügt beispielsweise normalerweise über ein BIOS-Erweiterungs-ROM, das Unterstützung für über diesen Controller angeschlossene Festplatten bietet. Ein Erweiterungs-ROM könnte im Prinzip ein Betriebssystem enthalten oder einen ganz anderen Boot-Prozess wie Netzwerk-Booten implementieren . Der Betrieb eines IBM-kompatiblen Computersystems kann durch Entfernen oder Einsetzen einer Adapterkarte (oder eines ROM-Chips), die ein BIOS-Erweiterungs-ROM enthält, vollständig geändert werden.

Das Motherboard-BIOS enthält normalerweise Code für den Zugriff auf Hardwarekomponenten, die für das Bootstrapping der integrierten Anzeige und des integrierten Speichers erforderlich sind. Darüber hinaus enthalten Plug-in-Adapterkarten wie SCSI , RAID , Netzwerkschnittstellenkarten und Videokarten oft ihr eigenes BIOS (zB Video BIOS ), das den System-BIOS-Code für die jeweilige Komponente ergänzt oder ersetzt. Sogar in das Motherboard eingebaute Geräte können sich so verhalten; ihre Options-ROMs können Teil des Motherboard-BIOS sein.

Eine Add-In-Karte erfordert ein Options-ROM, wenn die Karte vom Motherboard-BIOS nicht unterstützt wird und die Karte initialisiert oder über BIOS-Dienste zugänglich gemacht werden muss, bevor das Betriebssystem geladen werden kann (normalerweise bedeutet dies, dass dies beim Bootvorgang erforderlich ist) ). Auch wenn es nicht benötigt wird, kann ein Options-ROM die Verwendung einer Adapterkarte ermöglichen, ohne dass nach dem Booten Treibersoftware von einem Speichergerät geladen wird – mit einem Options-ROM wird keine Zeit zum Laden des Treibers benötigt, der Treiber nimmt keine Zeit in Anspruch Speicherplatz im RAM noch auf der Festplatte, und die Treibersoftware auf dem ROM verbleibt immer beim Gerät, damit die beiden nicht versehentlich getrennt werden können. Auch wenn sich das ROM auf der Karte befindet, werden sowohl die Peripheriehardware als auch die vom ROM bereitgestellte Treibersoftware zusammen ohne zusätzlichen Aufwand zur Installation der Software installiert. Ein zusätzlicher Vorteil von ROM auf einigen frühen PC-Systemen (insbesondere dem IBM PCjr) bestand darin, dass das ROM schneller war als das Hauptsystem-RAM. (Auf modernen Systemen ist der Fall genau umgekehrt, und der BIOS-ROM-Code wird normalerweise in den RAM kopiert ("verdunkelt"), damit er schneller ausgeführt wird.)

Es gibt viele Methoden und Dienstprogramme zum Untersuchen des Inhalts verschiedener Motherboard-BIOS- und Erweiterungs-ROMs, wie z. B. Microsoft DEBUG oder Unix dd .

Bootvorgang

Wenn ein Erweiterungs-ROM die Art und Weise des Systemstarts (z. B. von einem Netzwerkgerät oder einem SCSI-Adapter) auf kooperative Weise ändern möchte, kann es die BIOS Boot Specification (BBS) API verwenden , um seine Fähigkeit dazu zu registrieren. Nachdem sich die Erweiterungs-ROMs unter Verwendung der BBS-APIs registriert haben, kann der Benutzer innerhalb der Benutzeroberfläche des BIOS unter den verfügbaren Boot-Optionen auswählen. Aus diesem Grund erlauben die meisten BBS-kompatiblen PC-BIOS-Implementierungen dem Benutzer nicht, die Benutzeroberfläche des BIOS zu öffnen, bis die Erweiterungs-ROMs die Ausführung und Registrierung bei der BBS-API abgeschlossen haben.

Wenn ein Erweiterungs-ROM außerdem die Art und Weise ändern möchte, wie das System einseitig bootet, kann es einfach INT 19h oder andere Interrupts, die normalerweise von Interrupt 19h aufgerufen werden, wie z. Dann kann es den BIOS-Boot-Prozess durch einen eigenen ersetzen, oder es kann lediglich die Boot-Sequenz ändern, indem es seine eigenen Boot-Aktionen einfügt, indem es verhindert, dass das BIOS bestimmte Geräte als bootfähig erkennt, oder beides. Vor der Veröffentlichung der BIOS Boot Specification war dies die einzige Möglichkeit für Erweiterungs-ROMs, die Bootfähigkeit für Geräte zu implementieren, die nicht vom nativen BIOS des Motherboards zum Booten unterstützt werden.

Initialisierung

Nachdem das Motherboard-BIOS seinen POST abgeschlossen hat, suchen die meisten BIOS-Versionen nach Options-ROM-Modulen, auch BIOS-Erweiterungs-ROMs genannt, und führen diese aus. Das Motherboard-BIOS sucht nach Erweiterungs-ROMs in einem Teil des " oberen Speicherbereichs " (dem Teil des x86-Realmodus-Adressraums ab Adresse 0xA0000) und führt jedes gefundene ROM der Reihe nach aus. Um speicherabgebildete ISA- Options-ROMs zu erkennen, scannt eine BIOS-Implementierung den Realmodus-Adressraum von 0x0C0000bis 0x0F0000zu 2  KB (2.048 Byte) Grenzen und sucht nach einer Zwei-Byte-ROM- Signatur : 0x55 gefolgt von 0xAA. In einem gültigen Erweiterungs-ROM folgt dieser Signatur ein einzelnes Byte, das die Anzahl der 512-Byte-Blöcke angibt, die das Erweiterungs-ROM im Realspeicher belegt, und das nächste Byte ist der Eintrittspunkt des Options-ROM (auch als "Eintrittsoffset" bekannt). . Eine Prüfsumme der angegebenen Anzahl von 512-Byte-Blöcken wird berechnet, und wenn das ROM eine gültige Prüfsumme hat, überträgt das BIOS die Kontrolle an die Eingangsadresse, die in einem normalen BIOS-Erweiterungs-ROM der Anfang der Initialisierungsroutine der Erweiterung sein sollte.

An diesem Punkt übernimmt der Erweiterungs-ROM-Code, der typischerweise die von ihm gesteuerte Hardware testet und initialisiert und Interrupt-Vektoren zur Verwendung durch Post-Boot-Anwendungen registriert . Es kann BIOS-Dienste (einschließlich der von zuvor initialisierten Options-ROMs bereitgestellten) verwenden, um eine Benutzerkonfigurationsschnittstelle bereitzustellen, Diagnoseinformationen anzuzeigen oder alles andere zu tun, was es erfordert. Es ist möglich, dass ein Options-ROM nicht zum BIOS zurückkehrt, wodurch die Boot-Sequenz des BIOS vollständig verhindert wird.

Ein Options-ROM sollte normalerweise nach Abschluss des Initialisierungsvorgangs zum BIOS zurückkehren. Sobald (und falls) ein Options-ROM zurückkehrt, fährt das BIOS mit der Suche nach weiteren Options-ROMs fort und ruft jedes auf, wenn es gefunden wird, bis der gesamte Options-ROM-Bereich im Speicherbereich gescannt wurde.

Physische Platzierung

BIOS-Chips in einem Dell 310, die durch Austausch der Chips aktualisiert wurden

Options-ROMs befinden sich normalerweise auf Adapterkarten. Der Original-PC, und vielleicht auch der PC XT, verfügen jedoch über einen freien ROM-Sockel auf dem Motherboard (im Sinne von IBM das "System Board"), in den ein Options-ROM gesteckt werden kann, und die vier ROMs, die den BASIC-Interpreter enthalten, können auch entfernt und durch benutzerdefinierte ROMs ersetzt werden, die Options-ROMs sein können. Der IBM PCjr ist einzigartig unter den PCs, da er zwei ROM-Kassettensteckplätze auf der Vorderseite hat. Kassetten in diesen Steckplätzen werden demselben Bereich des oberen Speicherbereichs zugeordnet, der für Options-ROMs verwendet wird, und die Kassetten können Options-ROM-Module enthalten, die das BIOS erkennen würde. Die Kassetten können auch andere Typen von ROM-Modulen enthalten, wie beispielsweise BASIC-Programme, die anders gehandhabt werden. Eine PCjr-Cartridge kann mehrere ROM-Module unterschiedlichen Typs enthalten, die möglicherweise zusammen in einem ROM-Chip gespeichert sind.

Betriebssystemdienste

Das BIOS-ROM ist an die Hardware des jeweiligen Herstellers angepasst, so dass Low-Level-Dienste (wie das Lesen eines Tastendrucks oder das Schreiben eines Datensektors auf Diskette) auf standardisierte Weise für Programme, einschließlich Betriebssysteme, bereitgestellt werden können. Ein IBM-PC kann beispielsweise entweder über einen Monochrom- oder einen Farbdisplayadapter verfügen (unter Verwendung unterschiedlicher Displayspeicheradressen und Hardware), aber ein einzelner Standard-BIOS -Systemaufruf kann aufgerufen werden, um ein Zeichen an einer bestimmten Position auf dem Bildschirm in . anzuzeigen Textmodus oder Grafikmodus .

Das BIOS bietet eine kleine Bibliothek grundlegender Eingabe-/Ausgabefunktionen zum Betrieb von Peripheriegeräten (wie Tastatur, rudimentäre Text- und Grafikanzeigefunktionen usw.). Bei Verwendung von MS-DOS könnte auf BIOS-Dienste durch ein Anwendungsprogramm (oder durch MS-DOS) zugegriffen werden, indem ein INT 13h-Interrupt-Befehl ausgeführt wird, um auf Plattenfunktionen zuzugreifen, oder indem einer von mehreren anderen dokumentierten BIOS-Interrupt-Aufrufen ausgeführt wird, um auf Video zuzugreifen Display , Tastatur , Kassette und andere Gerätefunktionen.

Betriebssysteme und Ausführungssoftware, die diese grundlegende Firmware-Funktionalität ersetzen sollen, bieten Ersatzsoftwareschnittstellen zur Anwendungssoftware. Anwendungen können diese Dienste auch selbst bereitstellen. Dies begann sogar in den 1980er Jahren unter MS-DOS , als Programmierer beobachteten, dass die Verwendung der BIOS-Videodienste für die Grafikanzeige sehr langsam war. Um die Geschwindigkeit der Bildschirmausgabe zu erhöhen, haben viele Programme das BIOS umgangen und die Videoanzeigehardware direkt programmiert. Andere Grafikprogrammierer, insbesondere aber nicht ausschließlich in der Demoszene , stellten fest, dass es technische Fähigkeiten der PC- Grafikkarten gibt, die vom IBM BIOS nicht unterstützt werden und nicht ohne Umgehung genutzt werden können. Da das AT-kompatible BIOS im Intel Real-Modus lief, erforderten Betriebssysteme, die auf 286- und späteren Prozessoren im Protected-Modus ausgeführt wurden, Hardware-Gerätetreiber, die mit dem Protected-Mode-Betrieb kompatibel sind, um die BIOS-Dienste zu ersetzen.

In modernen PCs mit modernen Betriebssystemen (wie Windows und Linux ) werden die BIOS-Interrupt-Aufrufe nur beim Booten und beim erstmaligen Laden von Betriebssystemen verwendet. Bevor der erste grafische Bildschirm des Betriebssystems angezeigt wird, werden Eingabe und Ausgabe normalerweise über das BIOS abgewickelt. Ein Boot-Menü wie das Textmenü von Windows, das es Benutzern ermöglicht, ein zu bootendes Betriebssystem auszuwählen, in den abgesicherten Modus zu booten oder die letzte als funktionierend bekannte Konfiguration zu verwenden, wird über das BIOS angezeigt und empfängt Tastatureingaben über das BIOS.

Viele moderne PCs können immer noch ältere Betriebssysteme wie MS-DOS oder DR-DOS booten und ausführen, die für ihre Konsolen- und Festplatten-I/O stark vom BIOS abhängig sind, vorausgesetzt, das System verfügt über ein BIOS oder eine CSM-fähige UEFI-Firmware.

Prozessor-Mikrocode-Updates

Intel- Prozessoren haben seit der P6- Mikroarchitektur umprogrammierbaren Mikrocode . AMD- Prozessoren haben seit der K7- Mikroarchitektur umprogrammierbaren Mikrocode . Das BIOS enthält Patches für den Prozessor-Mikrocode, die Fehler im anfänglichen Prozessor-Mikrocode beheben; Mikrocode wird in den SRAM des Prozessors geladen, so dass eine Neuprogrammierung nicht dauerhaft ist, so dass das Laden von Mikrocode-Aktualisierungen jedes Mal durchgeführt wird, wenn das System eingeschaltet wird. Ohne umprogrammierbaren Mikrocode wäre ein teurer Prozessortausch erforderlich; So wurde beispielsweise der Pentium-FDIV-Bug für Intel zu einem teuren Fiasko, da ein Produktrückruf erforderlich war, da der defekte Mikrocode des ursprünglichen Pentium-Prozessors nicht umprogrammiert werden konnte. Betriebssysteme können auch den Mikrocode des Hauptprozessors aktualisieren .

Identifikation

Einige BIOSes enthalten eine Software-Lizenzierungsbeschreibungstabelle (SLIC), eine digitale Signatur, die vom Originalgerätehersteller (OEM), z. B. Dell, im BIOS platziert wird . Der SLIC wird in die ACPI-Datentabelle eingefügt und enthält keinen aktiven Code.

Computerhersteller, die OEM-Versionen von Microsoft Windows und Microsoft-Anwendungssoftware vertreiben, können den SLIC verwenden, um die Lizenzierung für den OEM-Windows-Installationsdatenträger und den Systemwiederherstellungsdatenträger mit Windows-Software zu authentifizieren . Systeme mit SLIC können mit einem OEM-Produktschlüssel voraktiviert werden und sie verifizieren ein XML-formatiertes OEM-Zertifikat mit dem SLIC im BIOS als Mittel zur Selbstaktivierung (siehe System Locked Preinstallation , SLP). Wenn ein Benutzer eine Neuinstallation von Windows durchführt, muss er sowohl im Besitz des OEM-Schlüssels (entweder SLP oder COA) und des digitalen Zertifikats für seinen SLIC sein, um die Aktivierung zu umgehen. Dies kann erreicht werden, wenn der Benutzer eine Wiederherstellung mit einem vom OEM bereitgestellten vorgefertigten Image durchführt. Power-User können die erforderlichen Zertifikatsdateien aus dem OEM-Image kopieren, den SLP-Produktschlüssel entschlüsseln und dann die SLP-Aktivierung manuell durchführen. Cracks für nicht originale Windows-Distributionen bearbeiten normalerweise den SLIC oder emulieren ihn, um die Windows-Aktivierung zu umgehen.

Übertaktung

Einige BIOS-Implementierungen ermöglichen Übertaktung , eine Aktion, bei der die CPU auf eine höhere Taktrate als die Herstellerbewertung eingestellt wird, um eine garantierte Leistungsfähigkeit zu gewährleisten. Übertakten kann jedoch bei unzureichend gekühlten Computern die Systemzuverlässigkeit ernsthaft beeinträchtigen und die Lebensdauer der Komponenten allgemein verkürzen. Übertakten kann bei unsachgemäßer Ausführung auch dazu führen, dass Komponenten so schnell überhitzen, dass sie sich mechanisch selbst zerstören.

Moderne Nutzung

Einige ältere Betriebssysteme , zum Beispiel MS-DOS , verlassen sich auf das BIOS, um die meisten Eingabe-/Ausgabeaufgaben innerhalb des PCs auszuführen.

Das direkte Aufrufen von Real-Mode- BIOS-Diensten ist für Protected-Mode- (und Long-Mode )-Betriebssysteme ineffizient . BIOS-Interrupt-Aufrufe werden von modernen Multitasking-Betriebssystemen nach dem ersten Laden nicht verwendet.

In den 1990er Jahren stellte das BIOS einige Protected-Mode- Schnittstellen für Microsoft Windows und Unix-ähnliche Betriebssysteme bereit, wie Advanced Power Management (APM), Plug and Play BIOS , Desktop Management Interface (DMI), PCI BIOS, VESA BIOS Extensions (VBE) und Multiprozessor-Spezifikation (MPS). Ausgehend von den 2000er Jahren bieten die meisten BIOS - Versionen ACPI , SMBIOS , VBE und E820 Schnittstellen für moderne Betriebssysteme.

Nach Betriebssystemen Last, das System Management Mode läuft Code noch in SMRAM. Seit 2010 befindet sich die BIOS-Technologie in einem Übergangsprozess in Richtung UEFI .

Aufbau

Setup-Programm

Historisch gesehen hatte das BIOS im IBM PC und XT keine integrierte Benutzeroberfläche. Die BIOS-Versionen früherer PCs (XT-Klasse) waren nicht per Software konfigurierbar; Stattdessen stellen Benutzer die Optionen über DIP-Schalter auf dem Motherboard ein. Spätere Computer, einschließlich aller IBM-kompatiblen mit 80286-CPUs, hatten einen batteriegepufferten nichtflüchtigen BIOS-Speicher (CMOS-RAM-Chip), der BIOS-Einstellungen enthielt. Diese Einstellungen wie Videoadaptertyp, Speichergröße und Festplattenparameter konnten nur konfiguriert werden, indem ein Konfigurationsprogramm von einer Festplatte ausgeführt wurde, die nicht in das ROM integriert ist. Eine spezielle "Referenzdiskette" wurde in einen IBM AT eingelegt , um Einstellungen wie die Speichergröße zu konfigurieren.

Frühe BIOS-Versionen hatten keine Kennwörter oder Optionen zur Auswahl von Boot-Geräten. Das BIOS war fest programmiert, um vom ersten Diskettenlaufwerk zu booten, oder, falls dies fehlgeschlagen ist, von der ersten Festplatte. Die Zugangskontrolle in frühen Maschinen der AT-Klasse erfolgte durch einen physischen Schlüsselschalter (der nicht schwer zu umgehen war, wenn das Computergehäuse geöffnet werden konnte). Jeder, der den Computer einschalten konnte, konnte ihn booten.

Später begannen Computer der 386-Klasse, das BIOS-Setup-Dienstprogramm neben dem BIOS-Code in das ROM selbst zu integrieren; diese Computer booten normalerweise in das BIOS-Setup-Dienstprogramm, wenn eine bestimmte Taste oder Tastenkombination gedrückt wird, andernfalls werden der BIOS-POST und der Boot-Vorgang ausgeführt.

Award BIOS-Setup-Utility auf einem Standard-PC

Ein modernes BIOS-Setup-Dienstprogramm verfügt über eine Textbenutzeroberfläche (TUI) oder eine grafische Benutzeroberfläche (GUI), auf die durch Drücken einer bestimmten Taste auf der Tastatur beim Starten des PCs zugegriffen wird. Normalerweise wird die Taste während des frühen Starts für kurze Zeit angekündigt, zum Beispiel "Drücken Sie DEL, um das Setup zu öffnen". Der tatsächliche Schlüssel hängt von der spezifischen Hardware ab. Zu den Funktionen des BIOS-Setup-Dienstprogramms gehören normalerweise:

  • Konfigurieren, Aktivieren und Deaktivieren der Hardwarekomponenten
  • Einstellen der Systemzeit
  • Einstellen der Bootreihenfolge
  • Festlegen verschiedener Passwörter, z. B. ein Passwort zum Sichern des Zugriffs auf die BIOS-Benutzeroberfläche und zum Verhindern, dass böswillige Benutzer das System von nicht autorisierten tragbaren Speichergeräten booten, oder ein Passwort zum Booten des Systems

Hardwareüberwachung

Ein moderner BIOS-Setup-Bildschirm bietet oft einen PC-Health-Status oder einen Hardware-Monitoring- Tab, der direkt mit einem Hardware-Monitor-Chip des Mainboards verbunden ist. Dies ermöglicht die Überwachung der CPU- und Gehäusetemperatur , der vom Netzteil bereitgestellten Spannung sowie die Überwachung und Steuerung der Drehzahl der an das Motherboard angeschlossenen Lüfter .

Sobald das System gebootet ist, werden die Hardwareüberwachung und die Computerlüftersteuerung normalerweise direkt vom Hardwaremonitor-Chip selbst durchgeführt, der ein separater Chip sein kann, der über I²C oder SMBus angeschlossen ist oder als Teil einer Super-I/O- Lösung mit Schnittstelle geliefert wird durch Low Pin Count (LPC). Einige Betriebssysteme, wie NetBSD mit envsys und OpenBSD mit sysctl hw.sensors , verfügen über eine integrierte Schnittstelle zu Hardwaremonitoren.

Unter bestimmten Umständen stellt das BIOS jedoch auch die zugrunde liegenden Informationen über die Hardwareüberwachung über ACPI bereit. In diesem Fall kann das Betriebssystem ACPI verwenden, um die Hardwareüberwachung durchzuführen.

Umprogrammierung

BIOS-Ersatzkit für einen Dell 310 aus den späten 1980er Jahren. Im Lieferumfang enthalten sind zwei Chips, ein Kunststoffhalter für die Chips und ein Chip-Puller.

In modernen PCs wird das BIOS in einem wiederbeschreibbaren EEPROM oder NOR-Flash-Speicher gespeichert , sodass der Inhalt ersetzt und geändert werden kann. Dieses Umschreiben des Inhalts wird manchmal als Flashen bezeichnet . Dies kann durch ein spezielles Programm erfolgen, das normalerweise vom Systemhersteller bereitgestellt wird, oder bei POST mit einem BIOS-Image auf einer Festplatte oder einem USB-Flash-Laufwerk. Eine Datei, die solche Inhalte enthält, wird manchmal als "ein BIOS-Image" bezeichnet. Ein BIOS kann neu geflasht werden, um auf eine neuere Version zu aktualisieren, um Fehler zu beheben oder eine verbesserte Leistung bereitzustellen oder um neuere Hardware zu unterstützen.

Hardware

American Megatrends BIOS 686. Dieser BIOS-Chip ist in einem PLCC- Gehäuse in einem Sockel untergebracht.

Das ursprüngliche IBM PC-BIOS (und Kassetten-BASIC) wurde auf maskenprogrammierten Read-Only-Memory- Chips (ROM) in Sockeln auf dem Motherboard gespeichert. ROMs könnten von Benutzern ersetzt, aber nicht verändert werden. Um Aktualisierungen zu ermöglichen, verwendeten viele kompatible Computer umprogrammierbare BIOS-Speichergeräte wie EPROM , EEPROM und spätere Flash-Speicher (normalerweise NOR-Flash )-Geräte. Laut Robert Braver, dem Präsidenten des BIOS-Herstellers Micro Firmware, wurden Flash-BIOS- Chips um 1995 herum verbreitet, weil die elektrisch löschbaren PROM (EEPROM)-Chips billiger und einfacher zu programmieren sind als Standard- UV- Löschbare PROM ( EPROM )-Chips. Flash-Chips werden im Schaltkreis programmiert (und neu programmiert), während EPROM-Chips zur Neuprogrammierung von der Hauptplatine entfernt werden müssen. BIOS-Versionen werden aktualisiert, um neuere Hardwareversionen zu nutzen und Fehler in früheren BIOS-Revisionen zu korrigieren.

Beginnend mit dem IBM AT unterstützten PCs eine über das BIOS einstellbare Hardware-Uhr. Es hatte ein Jahrhundert-Bit, das es ermöglichte, das Jahrhundert manuell zu ändern, als das Jahr 2000 passierte. Die meisten BIOS-Revisionen, die 1995 erstellt wurden, und fast alle BIOS-Revisionen von 1997 unterstützten das Jahr 2000, indem das Jahrhundertbit automatisch gesetzt wurde, wenn die Uhr am 31. Dezember 1999 nach Mitternacht lief.

Die ersten Flash-Chips wurden an den ISA-Bus angeschlossen . Ab 1998 wechselte der BIOS-Flash auf den LPC- Bus, einen funktionalen Ersatz für ISA, nach einer neuen Standardimplementierung, die als "Firmware Hub" (FWH) bekannt ist. 2006 wurde der BIOS-Flash-Speicher auf den SPI- Bus umgestellt .

Die Größe des BIOS und die Kapazität des ROM, EEPROM oder anderer Medien, auf denen es gespeichert werden kann, haben sich im Laufe der Zeit erhöht, da dem Code neue Funktionen hinzugefügt wurden; Es gibt mittlerweile BIOS-Versionen mit Größen bis zu 32 Megabyte. Im Gegensatz dazu war das ursprüngliche IBM PC-BIOS in einem 8-KB-Masken-ROM enthalten. Einige moderne Motherboards haben sogar noch größere NAND- Flash-Speicher- ICs an Bord, die ganze kompakte Betriebssysteme speichern können, wie zum Beispiel einige Linux-Distributionen . Einige ASUS-Notebooks enthielten beispielsweise das Splashtop-Betriebssystem, das in ihre NAND-Flash-Speicher-ICs eingebettet war. Die Idee, ein Betriebssystem zusammen mit dem BIOS in das ROM eines PCs aufzunehmen, ist jedoch nicht neu; in den 1980er Jahren bot Microsoft eine ROM-Option für MS-DOS an, die in den ROMs einiger PC-Klone wie dem Tandy 1000 HX enthalten war .

Ein anderer Typ von Firmware-Chip wurde auf dem IBM PC AT und frühen kompatiblen Geräten gefunden. Im AT wurde die Tastaturschnittstelle von einem Mikrocontroller mit eigenem programmierbaren Speicher gesteuert . Beim IBM AT war das ein Gerät mit 40-Pin-Sockel, während einige Hersteller eine EPROM-Version dieses Chips verwendeten, die einem EPROM ähnelte. Diesem Controller wurde auch die A20-Gate- Funktion zugewiesen , um Speicher oberhalb des Ein-Megabyte-Bereichs zu verwalten; gelegentlich war ein Upgrade dieses "Tastatur-BIOS" erforderlich, um Software zu nutzen, die den oberen Speicher nutzen konnte.

Das BIOS kann Komponenten wie den Memory Reference Code (MRC) enthalten, der für die Speicherinitialisierung (z. B. SPD und Speicher-Timing- Initialisierung) verantwortlich ist.

Modernes BIOS enthält die Firmware der Intel Management Engine oder des AMD Platform Security Processors .

Anbieter und Produkte

Vergleich verschiedener BIOS-Implementierungen
Gesellschaft AuszeichnungBIOS AMIBIOS Insyde SeaBIOS
Lizenz Proprietär Proprietär Proprietär LGPL v3
Gepflegt / weiterentwickelt Beendet Beendet Beendet Jawohl
32-Bit- PCI-BIOS-Aufrufe Jawohl Jawohl Jawohl Jawohl
AHCI Jawohl Jawohl Jawohl Jawohl
APM Jawohl Jawohl Ja (1.2) Ja (1.2)
BBS Jawohl Jawohl Jawohl Jawohl
Startmenü Jawohl Jawohl Jawohl Jawohl
Kompression Ja ( LHA ) Ja (LHA) Ja (RLE) Ja (LZMA)
CMOS Jawohl Jawohl Jawohl Jawohl
EDD Jawohl Jawohl Jawohl Jawohl
ESCD Jawohl Jawohl ? Nein
Flash von ROM ? Jawohl ? Nein
Sprache Montage Montage Montage C
LBA Ja (48) Ja (48) Jawohl Ja (48)
Multiprozessor-Spezifikation Jawohl Jawohl Jawohl Jawohl
Options-ROM Jawohl Jawohl Jawohl Jawohl
Passwort Jawohl Jawohl Jawohl Nein
PMM ? Jawohl ? Jawohl
Einrichtungsbildschirm Jawohl Jawohl Jawohl Nein
SMBIOS Jawohl Jawohl Jawohl Jawohl
Begrüßungsbildschirm Ja (EPA) Ja ( PCX ) Jawohl Ja (BMP, JPG)
TPM Unbekannt Unbekannt Unbekannt Etwas
USB- Booten Jawohl Jawohl Jawohl Jawohl
USB-Hub ? ? ? Jawohl
USB-Tastatur Jawohl Jawohl Jawohl Jawohl
USB-Maus Jawohl Jawohl Jawohl Jawohl

IBM veröffentlichte die vollständigen Auflistungen des BIOS für seinen ursprünglichen PC, PC XT, PC AT und andere zeitgenössische PC-Modelle in einem Anhang des IBM PC Technical Reference Manual für jeden Maschinentyp. Die Veröffentlichung der BIOS-Listen bewirkt, dass jeder genau sehen kann, was ein endgültiges BIOS tut und wie es funktioniert.

Compaq Portable 386 BIOS

Im Mai 1984 veröffentlichte Phoenix Software Associates sein erstes ROM-BIOS, das es OEMs ermöglichte, im Wesentlichen vollständig kompatible Klone zu erstellen, ohne das IBM PC-BIOS selbst zurückentwickeln zu müssen, wie es Compaq für den Portable getan hatte , und trug so zum Wachstum der PC- kompatibel mit Industrie und Vertrieb von Nicht-IBM-Versionen von DOS. Und das erste American Megatrends (AMI) BIOS wurde 1986 veröffentlicht.

Neue Standards, die auf das BIOS aufgepfropft wurden, sind normalerweise ohne vollständige öffentliche Dokumentation oder BIOS-Auflistungen. Infolgedessen ist es nicht so einfach, die intimen Details über die vielen Nicht-IBM-Ergänzungen des BIOS zu erfahren wie über die BIOS-Kerndienste.

Die meisten Anbieter von PC-Motherboards lizenzierten einen BIOS-"Kern" und ein Toolkit von einem kommerziellen Drittanbieter, der als "unabhängiger BIOS-Anbieter" oder IBV bekannt ist. Der Motherboard-Hersteller hat dieses BIOS dann an seine eigene Hardware angepasst. Aus diesem Grund werden aktualisierte BIOSe normalerweise direkt vom Motherboard-Hersteller bezogen. Zu den früheren großen BIOS-Anbietern gehörten American Megatrends (AMI), Insyde Software , Phoenix Technologies , Byosoft, Award Software und Microid Research. Microid Research und Award Software wurden 1998 von Phoenix Technologies übernommen; Phoenix hat den Markennamen Award später auslaufen lassen. General Software , ebenfalls 2007 von Phoenix übernommen, verkaufte BIOS für Embedded-Systeme auf Basis von Intel-Prozessoren.

Die Open-Source-Community verstärkte ihre Bemühungen, einen Ersatz für proprietäre BIOSe und ihre zukünftigen Inkarnationen durch ein Open-Source-Gegenstück durch die Projekte libreboot , coreboot und OpenBIOS / Open Firmware zu entwickeln. AMD hat Produktspezifikationen für einige Chipsätze bereitgestellt und Google sponsert das Projekt. Motherboard - Hersteller Tyan bietet Coreboot neben den Standard - BIOS mit ihrer Opteron Linie von Motherboards.

Sicherheit

Ein amerikanisches Megatrends- BIOS, das nach einem fehlgeschlagenen Versuch, Mikrocode-Patches in die CPU hochzuladen , einen " Intel CPU uCode Loading Error" anzeigt
Ein abgelöster BIOS-Chip

EEPROM- und Flash-Speicherchips sind vorteilhaft, da sie vom Benutzer leicht aktualisiert werden können; Es ist üblich, dass Hardwarehersteller BIOS-Updates herausgeben, um ihre Produkte zu aktualisieren, die Kompatibilität zu verbessern und Fehler zu beheben . Dieser Vorteil birgt jedoch das Risiko, dass ein unsachgemäß ausgeführtes oder abgebrochenes BIOS-Update den Computer oder das Gerät unbrauchbar macht. Um diese Situationen zu vermeiden, verwenden neuere BIOSe einen "Bootblock"; ein Teil des BIOS, der zuerst ausgeführt wird und separat aktualisiert werden muss. Dieser Code überprüft, ob der Rest des BIOS intakt ist (unter Verwendung von Hash- Prüfsummen oder anderen Methoden), bevor die Kontrolle an ihn übertragen wird. Wenn der Bootblock eine Beschädigung des Haupt-BIOS erkennt, wird der Benutzer normalerweise gewarnt, dass ein Wiederherstellungsprozess durch Booten von Wechselmedien (Diskette, CD oder USB-Flash-Laufwerk) eingeleitet werden muss, damit der Benutzer erneut versuchen kann, das BIOS zu flashen. Einige Motherboards verfügen über ein Backup- BIOS (manchmal auch als DualBIOS-Boards bezeichnet), um sich von BIOS-Korruptionen zu erholen.

Es gibt mindestens fünf bekannte BIOS-Angriffsviren, von denen zwei zu Demonstrationszwecken dienten. Die erste in freier Wildbahn gefundene war Mebromi , die auf chinesische Benutzer abzielte .

Der erste BIOS-Virus war BIOS Meningitis, der, anstatt BIOS-Chips zu löschen, sie infizierte. BIOS Meningitis ist im Vergleich zu einem Virus wie CIH relativ harmlos .

Der zweite BIOS-Virus war CIH , auch bekannt als "Tschernobyl-Virus", der Flash-ROM-BIOS-Inhalte auf kompatiblen Chipsätzen löschen konnte. CIH erschien Mitte 1998 und wurde im April 1999 aktiv. Oft konnten infizierte Computer nicht mehr booten, und die Leute mussten den Flash-ROM-IC vom Motherboard entfernen und neu programmieren. CIH zielte auf den damals weit verbreiteten Intel i430TX Mainboard-Chipsatz und machte sich den Umstand zunutze, dass die damals ebenfalls weit verbreiteten Windows 9x- Betriebssysteme einen direkten Hardwarezugriff auf alle Programme ermöglichten.

Moderne Systeme sind nicht anfällig für CIH, da eine Vielzahl von Chipsätzen verwendet wird, die mit dem Intel i430TX-Chipsatz und auch anderen Flash-ROM-IC-Typen nicht kompatibel sind. Es gibt auch zusätzlichen Schutz vor versehentlichem BIOS-Neuschreiben in Form von Bootblöcken, die vor versehentlichem Überschreiben geschützt sind, oder mit Dual- und Quad-BIOS ausgestatteten Systemen, die im Falle eines Absturzes ein Backup-BIOS verwenden können. Außerdem erlauben alle modernen Betriebssysteme wie FreeBSD , Linux , macOS , Windows NT- basierte Windows-Betriebssysteme wie Windows 2000 , Windows XP und neuere Programme im Benutzermodus keinen direkten Hardwarezugriff.

Infolgedessen ist CIH seit 2008 im Wesentlichen harmlos geworden und verursacht im schlimmsten Fall Ärger, indem es ausführbare Dateien infiziert und Antivirensoftware auslöst. Andere BIOS-Viren bleiben jedoch möglich; Da die meisten Windows-Heimbenutzer ohne die UAC von Windows Vista/7 alle Anwendungen mit Administratorrechten ausführen, könnte ein moderner CIH-ähnlicher Virus im Prinzip immer noch Zugriff auf Hardware erhalten, ohne zuvor einen Exploit zu verwenden. Das Betriebssystem OpenBSD verhindert diesen Zugriff allen Benutzern und der grsecurity-Patch für den Linux-Kernel verhindert standardmäßig auch diesen direkten Hardwarezugriff.

Der zweite BIOS-Virus war eine Technik, die von John Heasman, dem leitenden Sicherheitsberater der in Großbritannien ansässigen Next-Generation Security Software, vorgestellt wurde. Im Jahr 2006 zeigte er auf der Black Hat Security Conference, wie man Berechtigungen erhöht und physischen Speicher ausliest, indem er bösartige Verfahren verwendet, die normale ACPI- Funktionen, die im Flash-Speicher gespeichert sind , ersetzten .

Der dritte BIOS-Virus war eine Technik namens "Persistent BIOS-Infektion". Es erschien 2009 auf der CanSecWest-Sicherheitskonferenz in Vancouver und auf der SyScan-Sicherheitskonferenz in Singapur. Die Forscher Anibal Sacco und Alfredo Ortega von Core Security Technologies demonstrierten, wie man Schadcode in die Dekompressionsroutinen im BIOS einfügt und so eine nahezu vollständige Kontrolle über den PC beim Start ermöglicht, noch bevor das Betriebssystem gebootet wird. Der Proof-of-Concept nutzt keinen Fehler in der BIOS-Implementierung aus, sondern beinhaltet nur die normalen BIOS-Flashing-Prozeduren. Daher ist ein physischer Zugriff auf die Maschine erforderlich, oder der Benutzer muss als Root angemeldet sein. Trotz dieser Anforderungen unterstrich Ortega die tiefgreifenden Auswirkungen seiner und Saccos Entdeckung: "Wir können einen Treiber patchen, um ein voll funktionsfähiges Rootkit zu löschen . Wir haben sogar einen kleinen Code, der Antivirus entfernen oder deaktivieren kann."

Mebromi ist ein Trojaner, der auf Computer mit AwardBIOS , Microsoft Windows und Antivirensoftware von zwei chinesischen Unternehmen abzielt: Rising Antivirus und Jiangmin KV Antivirus. Mebromi installiert ein Rootkit, das den Master-Boot-Record infiziert .

In einem Interview mit 60 Minutes im Dezember 2013 behauptete Deborah Plunkett, Information Assurance Director der US National Security Agency , die NSA habe einen möglichen BIOS-Angriff eines ausländischen Nationalstaats aufgedeckt und vereitelt, der auf das US-Finanzsystem abzielt. Das Programm zitierte anonyme Quellen, die behaupteten, es handele sich um eine chinesische Verschwörung. Folgeartikel in The Guardian , The Atlantic , Wired und The Register widerlegten jedoch die Behauptungen der NSA.

Auf neueren Intel-Plattformen ist die Intel Boot Guard (IBG)-Technologie aktiviert. Diese Technologie überprüft die digitale BIOS-Signatur beim Start und der öffentliche IBG-Schlüssel wird mit dem PCH des Motherboards verschmolzen . Endbenutzer können diese Funktion nicht deaktivieren.

Alternativen und Nachfolger

Das alte PC-BIOS wurde in vielen neuen Maschinen durch das komplexere Unified Extensible Firmware Interface (UEFI) ersetzt. UEFI ist eine Spezifikation, die die Laufzeitschnittstelle des Legacy-BIOS ersetzt. Ursprünglich für die Intel Itanium-Architektur geschrieben , ist UEFI jetzt für x86- , x86-64- und ARM-Architekturplattformen verfügbar; Die Spezifikationsentwicklung wird vom Unified EFI Forum , einer Branchen- Special Interest Group, vorangetrieben . EFI-Booten wurde nur in Microsoft Windows- Versionen unterstützt , die GPT , Linux-Kernel 2.6.1 und höher und macOS auf Intel-basierten Macs unterstützen . Ab 2014 wird neue PC-Hardware überwiegend mit UEFI-Firmware ausgeliefert. Die Architektur des Rootkit-Schutzes kann auch verhindern, dass das System die eigenen Softwareänderungen des Benutzers ausführt, was UEFI als Legacy-BIOS-Ersatz in der offenen Hardware- Community umstritten macht . Außerdem erfordert Windows 11 zum Booten UEFI.

Andere Alternativen zur Funktionalität des "Legacy BIOS" in der x86-Welt sind coreboot und libreboot .

Einige Server und Workstations verwenden eine plattformunabhängige Open Firmware (IEEE-1275), die auf der Programmiersprache Forth basiert ; es ist zusammen mit dem x86-basierten OLPC XO-1 in den SPARC- Computern von Sun , der RS/6000- Reihe von IBM und anderen PowerPC- Systemen wie den CHRP- Motherboards enthalten .

Seit mindestens 2015 hat Apple die Legacy-BIOS-Unterstützung von MacBook Pro- Computern entfernt. Daher unterstützt das BIOS-Dienstprogramm die Legacy-Option nicht mehr und druckt "Legacy-Modus wird auf diesem System nicht unterstützt". Im Jahr 2017 kündigte Intel an, die Legacy-BIOS-Unterstützung bis 2020 zu entfernen. Seit 2019 unterstützen neue OEM-PCs der Intel-Plattform die Legacy-Option nicht mehr.

Siehe auch

Anmerkungen

Verweise

Weiterlesen

Externe Links