Praxis: Tech Talk EFI
EFI: Das neue Bios
Zeit für etwas Neues
Praxis: Tech Talk EFI
Den Anforderungen moderner Rechner genügt das traditionelle Bios längst nicht mehr. Daher hat Intel mit EFI (Extensible Firmware Interface) einen Nachfolger entwickelt, der schneller, vielseitiger und für die Entwickler einfacher zu programmieren ist. Die Vorteile für den Anwender: Der PC bootet schneller und System-Tools, die man bisher über eine DOS-Boot-Diskette aufrufen muss, sind schon in EFI integriert. Zudem nimmt der Anwender alle Einstellungen in einer grafischen Oberfläche vor.
Es wurde auch Zeit für etwas Neues, das Bios ist schließlich so etwas wie der Quastenflosser im PC-Ökosystem: ein Überbleibsel aus der Urzeit. Seit 1982 dient es als Bootloader für den PC und fungiert als Schnittstelle zwischen Hard- und Software. Das Problem beim Bios ist, dass es im Prinzip immer noch auf die Erfordernisse von MS-DOS zugeschnitten ist. Selbst die neuesten 64-Bit-Dual-Core-Prozessoren laufen beim Start des Rechners im 16-Bit-Real-Mode, der den Intel 8086 von 1978 emuliert. Speicher oberhalb 1 MByte ist nicht adressierbar.
Erweiterungskarten oder Onboard-Geräte, die beim Booten präsent sein sollen, müssen über ein Option-ROM verfügen, das höchstens 128 KByte groß sein darf. Programmiert wird ein Bios immer noch in Assembler. So lässt sich zwar schneller und kompakter Code erzeugen, die Programmierung ist aber langwierig und kompliziert. Zwar wurde das Bios in den letzten Jahren um immer neue Funktionen erweitert. Die Kehrseite der Medaille: Damit wurde der Aufbau immer unübersichtlicher und fehlerträchtiger.
EFI: modular und kompatibel
Praxis: Tech Talk EFI
Bereits 1999 stellte Intel die erste EFI-Spezifikation vor, seinerzeit noch für Computer mit dem nicht x86-kompatiblen Serverprozessor Intel Itanium. In einem weiteren Schritt wurde es dann auch für x86-Rechner und Computer mit XScale-Prozessor implementiert, um so auf allen Intel-Plattformen dasselbe Firmware-Interface verwenden zu können.
Das EFI ist wegen seiner weitgehenden Plattformunabhängigkeit modularer als ein herkömmliches Bios aufgebaut. Die unterste Schicht bildet eine rudimentäre Plattform-Firmware, die das eigentliche EFI-Image lädt. Als Speichermedien können auch Festplatten, CD-ROM- oder Netzwerklaufwerke dienen.
Darüber liegt das Driver Execution Environment, bestehend aus der hardwareunabhängigen Pre-EFI-Foundation mit Framework- und Plattformtreibern sowie dem nur für x86-Rechner existierenden Compatibility Support Module (CSM). Es wird weiterhin Operationen im 16-Bit-Real-Mode ausführen und auf das Option-ROM von Erweiterungsgeräten zugreifen können. So können Betriebssysteme und Hardware-Komponenten, die nicht zu EFI kompatibel sind, trotzdem weiterhin benutzt werden.
Grafische Oberfläche ersetzt Bios-Setup
Praxis: Tech Talk EFI
Der EFI-OS-Loader lädt das eigentliche Betriebssystem oder ruft einen Setup-Screen auf. EFI unterstützt hier die Ausgabe im Textmodus und auch grafische Oberflächen. Die Bildschirm-Ausgabe ist im Gegensatz zum Bios nicht auf VGA festgelegt, sondern nutzt auch höhere Auflösungen als 640 x 480. Die grafische Oberfläche ersetzt das Bios-Setup, dient darüber hinaus aber auch zur Auswahl des zu startenden Betriebssystems oder zum Start so genannter Pre-Boot-Applikationen.
Bisherige EFI-Implementierungen von Insyde, Phoenix und AMI erinnern in ihrer Darstellung und Bedienung eher an Windows-Programme als an ein klassisches Bios. Prinzipiell kann der Anwender die EFI-Oberfläche auch von entfernten Rechnern aus bedienen. Die Steuerung über ein Web-Interface ist ebenfalls möglich.
Bei einem laufenden Betriebssystem bleibt auch mit EFI das Advanced Configuration and Power Interface (ACPI) der bevorzugte Mechanismus für die Kommunikation mit dem Betriebssystem, um Hardware zu erkennen, Geräte zu konfigurieren und die Energieverwaltung zu steuern.
Treiber und Applikationen für EFI
Praxis: Tech Talk EFI
Im Prinzip arbeitet das EFI wie ein kleines Betriebssystem. Allerdings ist es kein Ersatz für ein vollwertiges OS wie Windows oder Linux, da das EFI weder präemptives Multitasking noch Multithreading unterstützt. Um Geräte wie die Grafikkarte, den Chipsatz oder Festplattencontroller anzusprechen, lädt das EFI eigene Treiber in Form von komprimierten Binärdateien.
Als Dateisystem für die EFI-Firmware-Volumes ist in der Spezifikation FAT32 festgelegt. Die Plattformtreiber kommunizieren über einen Satz von Architekturprotokollen mit der Hardware des Rechners und arbeiten so, ohne spezifisch an spezielle Prozessoren, Chipsätze oder Mainboards gebunden zu sein.
Die bereits heute für die Fernwartung eines Rechners verwendete Preboot-Execution-Environment-Technik (PXE) ist ebenfalls fester Bestandteil der EFI-Architektur. Sie erlaubt zum Beispiel die Installation eines Betriebssystems über ein Netzwerk oder sogar das Booten von einem Netzwerk-Volume. PXE arbeitet unabhängig von den Netzwerkkartentreibern bestimmter Hersteller. Im Gegensatz zum aktuellen PXE-Standard 2.0, bei dem PXE als Option-ROM entwickelt wurde und auf den 16-Bit-Real-Mode beschränkt ist, wird PXE bei EFI im Protected Mode arbeiten und somit deutlich schneller sein.
Da über die Treiber Zugriff auf die Hardware besteht, können auch so genannte Pre-Boot-Applikationen ausgeführt werden, etwa Diagnose-Tools, Partitionierungsprogramme oder Software für die automatisierte Installation eines Festplatten-Images. Die Applikationen und die Treiber werden digital signiert, um Sicherheitslücken zu vermeiden.
Abschied von Assembler
Praxis: Tech Talk EFI
Einer der ganz großen Vorteile von EFI gegenüber einem herkömmlichen Bios liegt in der Programmierung. Während ein Bios in Assembler geschrieben ist, dient als Programmiersprache für EFI die Hochsprache C, in der auch der überwiegende Teil der gängigen Software geschrieben wird. Das erleichtert den Bios-Herstellern nicht nur das Schreiben, sondern auch das Debuggen von EFI-Implementierungen. Die sollten so weniger Fehler aufweisen als viele heutige Bios-Revisionen, bei denen Updates teilweise im Wochenrhythmus erscheinen.
EFI und Windows Vista
Das erste x86-Betriebssystem mit nativer EFI-Unterstützung wird Windows Vista. Ein großer Vorteil dabei ist, dass Microsoft das veraltete Master-Boot-Record-Format (MBR) dann auch für Boot-Festplatten aufs Altenteil schicken kann und stattdessen auf das GUID-Partition-Table-Format umsteigen wird. Eine MBR-partitionierte Festplatte kann maximal vier primäre oder drei primäre und eine erweiterte Partition enthalten, die Größe einer Partition liegt bei maximal zwei Terabytes.
Die Zahl der logischen Laufwerke in der erweiterten Partition wird durch die Kennzeichnung mit Laufwerksbuchstaben beschränkt. Um die 2-Terabyte-Einschränkung zu umgehen, wurden bisher mehrere logische Laufwerke zu einem größeren zusammengefasst.
Microsoft will Pre-Boot-Applikationen entwickeln
Praxis: Tech Talk EFI
Beim GUID-Partition-Table-Format (Global Unique Identifier, GPT) können Partitionen dagegen theoretisch bis zu 18 Exabytes groß sein. Eine Platte kann bis zu 128 primäre Partitionen umfassen, die durch Unique-IDs gekennzeichnet sind. Die Datensicherheit wird durch zwei redundante Partitionstabellen erhöht, die Abwärtskompatibilität wird durch einen Pseudo-MBR gewährleistet. Microsoft unterstützt bereits GPT-formatierte Festplatten in Windows für den Intel Itanium und Windows 2003 für x86-Rechner, hier muss die Boot-Partition allerdings noch das MBR-Format haben.
Microsoft hat angekündigt, eigene Pre-Boot-Applikationen zu entwickeln, etwa für die Partitionierung der Festplatte. Ob die kommenden EFI-Applikationen auch die bisherige Rec
overy-Konsole ablösen oder nur als Ergänzung dienen, bleibt abzuwarten. Zudem soll durch EFI ein deutlich schnellerer Start aus dem S4-Modus, also dem Ruhezustand, möglich werden, da das auf Festplatte abgelegte Speicherabbild schneller geladen werden kann als im Real Mode.
Wann kommt EFI?
Praxis: Tech Talk EFI
Bei großen Servern oder Workstations mit Intels Itanium-Prozessor ist EFI bereits heute Realität. Wann genau die ersten PC-Mainboards mit EFI auf den Markt kommen werden, ist momentan noch offen, derzeit arbeiten aber mit Phoenix und American Megatrends (AMI) beide führenden Bios-Hersteller an eigenen Implementierungen. Bei AMI läuft die EFI-Implementierung unter dem Namen Aptio (www.ami.com/aptio) und kann von den Mainboardherstellern bereits als Entwicklungskit geordert werden. Phoenix wird EFI im Trusted-Core-Bios integrieren, das in Zusammenarbeit mit Microsoft entwickelt wurde (www.phoenix.com).
Bis zum Erscheinen von Vista im zweiten Halbjahr 2006 sollte es also so weit sein, dass das Bios für neue Rechner in Rente geschickt werden kann. Das neue Microsoft-Betriebssystem wird allerdings EFI nicht zwingend voraussetzen, sondern auch auf PCs mit herkömmlichen Bios laufen, die Vistas Hardwareanforderungen genügen.