UEFI Einführung
Das Unified Extensible Firmware Interface (UEFI) ist eine Interface-Spezifikation zwischen Firmware und Betriebssystem zur Boot-Zeit. Die erste Spezifikation des Extensible Firmware Interfaces (EFI) wurde bereits um das Jahr 2000 für die Itanium-Plattform entwickelt.[1]
Basierend auf der EFI-Spezifikation 1.10 von Intel wird vom Unified EFI Forum die UEFI-Spezifikation publiziert.[2] In parallelen Arbeitsgruppen arbeiten unter anderem Firmen wie Microsoft, Intel oder AMI an der Entwicklung der Spezifikation.
UEFI spezifiziert nicht wie Firmware-Entwickler ihre Firmware zu schreiben haben, sondern wie die Schnittstelle zwischen Firmware und Betriebssystem aussieht. Darüber hinaus einigte sich das UEFI-Forum für die parallele Entwicklung einer Platform Initialization (PI) Spezifikation, die die internen Mechanismen einer Implementierung der UEFI-Spezifikation beschreibt. Dadurch wird z.B. die Entwicklung von Firmware-Teilen erleichtert, die von verschiedenen Herstellern zusammengefügt werden. Durch die Verwendung und die Entwicklung PI-konformer Firmware-Teile wird eine Interoperabilität sicher gestellt.
EDKII
Intel veröffentliche ursprünglich mit dem EFI Development KIT (EDK) eine Open Source Implementierung der originalen EFI-Spezifikation. Im Zuge der Entstehung von UEFI und PI wurde dieses Open Source Projekt erweitert und als EDKII fortgeführt. Das Hauptziel des Projekts ist es Firmware-Entwicklern eine Development Kit zum Entwickeln, Testen und Debuggen von UEFI-Treibern/-option ROMs und -Applikationen.[3]
Weder UEFI als Spezifikation noch EDKII stellen einen kompletten Ersatz des traditionellen BIOS dar. Zum einen ist UEFI eine reine Spezifikation, zum anderen fehlt die Spezifikation, wie initiale Setup-Mechanismen - Power On Self Test - durchzuführen sind. Dieser Teil muss vom Firmware-Hersteller übernommen werden.
Vorteile von UEFI
UEFI beseitigt einige Einschränkungen des traditionellen BIOS und besitzt daher folgende Vorteile:[4]
- Industrieller Standard (s.a http://www.uefi.org/about/)
- Aufgrund der Entwicklung in C leichter programmier- und erweiterbar
- Architektur unabhängig (für aktuelle 32/64 Bit Systeme ausgelegt)
Des weiteren können UEFI-Firmwares:
- Graphische User Interfaces in der der Pre-Boot-Umgebung anbieten (z.B. durch einen pre-Boot Netzwerk-Stack)
- Remote Upgrade von Firmware-Komponenten oder der ganzen Firmware durchführen
- Auf beliebigen Plattformen eingesetzt werden
Einschränkungen, die gegenüber dem traditionellen BIOS nicht mehr gelten:[4]
- Parallel-Installation von mehreren Betriebssystemen ohne OS-spezifische Bootmanager (wie z.B. Grub2)
- Limitierung der Festplattenkapazität auf 2,2 TByte (im eigentlichen Sinne eine Einschränkung des Master Boot Records (MBR), die durch die Einführung der GPT-Partitionierung aufgehoben wurde)
- Netzwerkfähigkeiten auch ohne OS (z.B. zum Aktualisieren der Firmware)
- Pre-Boot-Applikationen (z.B. für Recovery-Funktionen, Diagnose-Werkzeuge)
Unterschiede zum traditionellen Boot-Prozess
Das UEFI-System verwendet nicht mehr den traditionellen Boot-Sektor, sondern prüft das Vorhandensein der OS-Loader auf einer EFI System Partition (ESP):[5]
Weitere Informationen
Informative Videos über UEFI finden sie auch unter:
- http://linuxplumbers.ubicast.tv/videos/plumbing-uefi-into-linux/
- http://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-1/
- http://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-2/
Einzelnachweise
- ↑ UEFI Today: Bootstrapping the Continuum (intel.com/technology)
- ↑ UEFI FAQs (uefi.org)
- ↑ EDKII FAQs (sourceforge.net/apps/mediawiki/tianocore)
- ↑ 4,0 4,1 AMI - An Introduction to UEFI (embedded.communities.intel.com)
- ↑ OSDev Wiki - EFI (wiki.osdev.org)