UEFI Einführung

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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 und PI beschreiben einen standardisierten Weg für die Entwicklung UEFI-konformer Firmware sowie Erweiterungen dieser. Quelle: Using the Latest EFI Development Kit (EDK II) for UEFI Advanced Development and Innovation, F.4 (intel.com)

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]

Konzeptionelle Übersicht eines UEFI-konformen Systems zum Booten eins OS. Quelle: UEFI Spezifikation 2.3.1, S. 9

Weitere Informationen

Informative Videos über UEFI finden sie auch unter:

Einzelnachweise

  1. UEFI Today: Bootstrapping the Continuum (intel.com/technology)
  2. UEFI FAQs (uefi.org)
  3. EDKII FAQs (sourceforge.net/apps/mediawiki/tianocore)
  4. 4,0 4,1 AMI - An Introduction to UEFI (embedded.communities.intel.com)
  5. OSDev Wiki - EFI (wiki.osdev.org)

Das könnte Sie auch interessieren

EFI Shell USB Stick
Extreme Privilege Escalation UEFI Sicherheitslücke
GUID Partition Table