Das (kurz UEFI, für einheitliche erweiterbare Firmware-Schnittstelle) ist eine von Intel 1998 veröffentlichte Schnittstellen-Definition für Computer-Firmware, für die Intel zugleich eine Referenzimplementierung vorstellte. Ursprünglich wurde die von Intel für die 64-Bit-Itanium-Architektur entwickelte Firmware als Extensible Firmware Interface, kurz EFI, bezeichnet. UEFI hat sich als Nachfolger des PC-BIOS etabliert und bildet als solches die zentrale Schnittstelle zwischen der Plattform-Firmware und dem Betriebssystem.

Dadurch, dass UEFI-Firmware auf IBM-PC-kompatiblen Computern die bisherige Firmware – das BIOS – abgelöst hat, wird UEFI auch oft als „UEFI-BIOS“ sowie dessen Firmware-Setup auch (weiterhin) oft als „BIOS-Setup“ bezeichnet.

Wesentliche Merkmale von UEFI sind die Nutzung der GUID-Partitionstabelle, die zum vom BIOS genutzten Master Boot Record teil-kompatibel bleibt, Framebuffer-basierte Grafikunterstützung, Netzwerkfunktionalität, sowie seit UEFI-Version 2.3.1, , eine Funktion, die das Booten auf vorher signierte Bootloader beschränkt und so Schadsoftware oder andere unerwünschte Programme hindern soll, zu starten.

mini|Lage der Schnittstelle

Merkmale Im Gegensatz zu dem alten PC-BIOS enthält UEFI Schnittstellen und Datentabellen mit Plattforminformationen sowie Boot- und Laufzeitdienste, die dem Betriebssystemlader und in Folge dem Betriebssystem zur Verfügung stehen. Die UEFI-Firmware bietet verschiedene technische Vorteile gegenüber dem BIOS-System:

UEFI ist unabhängig vom Typ der CPU, und es können damit verschiedene Arten von Systemen, unter anderem Arm-Architektur und x64, gebootet werden. Es können große Festplatten mit über 2 TB mit einer im Rahmen von UEFI eingeführten GUID-Partitionstabelle (GPT) verwendet werden. Alle Daten und Programme für UEFI werden in Form von herkömmlichen Dateien in einer eigenen VFAT-Partition gehalten. Im Gegensatz zum BIOS braucht UEFI keine Daten oder Treiber wie den Betriebssystemlader in bestimmten fixen und unveränderlichen Speicherbereichen wie dem Master Boot Record (MBR). UEFI ist netzwerkfähig. Im Gegensatz zum älteren BIOS-Standard Preboot Execution Environment (PXE), der im BIOS der Netzwerkkarte entsprechende Treiber benötigt, ist UEFI selbst netzwerkfähig und erlaubt, angelehnt an die Verfahren wie bei PXE, direkt das Booten über Netzwerk. Generell modulares, erweiterbares Design in den Strukturen. Beispielsweise kann man eine der Unix-Shell ähnliche UEFI-Shell im Rahmen des Bootvorganges aufrufen. Im UEFI-Standard sind Verfahren festgelegt, wie bestimmte Daten, beispielsweise die Boot-Reihenfolge von verschiedenen Medien, im NVRAM permanent gespeichert werden.

Geschichte Maßgeblich für die Neuentwicklung EFI war eine Initiative von Intel, um einen Ersatz für das BIOS zur Verwendung auf der Itanium-Architektur ( 64-Bit, kurz IA-64) zu finden. In dem 1998 gegründeten Intel Boot Initiative (IBI)-Programm wurde die Idee spezifiziert.

Unified EFI (UEFI) mini|UEFI-Logo|hochkant=0.3

Zur Werbung und Weiterentwicklung von EFI wurde 2005 das Unified EFI Forum gegründet. Daran sind außer Intel auch AMD, Microsoft, Hewlett-Packard und viele andere PC- und BIOS-Hersteller beteiligt, sodass die nun als Unified EFI (UEFI) bezeichnete Schnittstelle nicht mehr allein von Intel festgelegt wird. Im Januar 2006 wurde die Version 2.0 der EFI-Spezifikation und deren Quelltext bereits als UEFI freigegeben.

Der Unterschied zwischen EFI und UEFI ist daher nur der Name: vor Version 2.0 hieß die Firmware „EFI“, ab Version 2.0 ist die korrekte Bezeichnung „UEFI“.

BIOS-Nachfolger Das ursprüngliche PC-BIOS erschien 1981 mit dem ersten IBM PC. Mit Fortschreiten der Entwicklung der IBM-PC-kompatiblen Computer wurde es trotz ständiger Erweiterungen den Anforderungen moderner Hardware und Betriebssysteme nicht mehr gerecht. Insbesondere ist es weder 32-Bit- noch 64-Bit-tauglich im Bezug auf Treiber. Zu Beginn der 2000er Jahre erschienen weitere Provisorien zum Ausgleich dieser Makel den Hardware-Herstellern (wie Intel oder AMD) nicht mehr tragbar.

Auf die x86-Architektur kam EFI in etwa zur selben Zeit wie die Befehlssatzerweiterung „x64“ bzw. „x86-64“, mit der die damals 32-Bit-x86-Architektur „IA-32“ ebenfalls zu einer 64-Bit-Architektur wurde. Dennoch wurde EFI anfänglich nur als 32-Bit-Firmware implementiert, u. a. bei Intel-Macs von Apple, die ab 2006 EFI-Version 1.10 als Firmware nutzten. Ab UEFI 2.0 gibt es offiziell eine 64-Bit-Implementierung auf x86.

Um auf x86-Systemen zu bestehender Software kompatibel zu bleiben, war mit dem , kurz CSM, eine BIOS-Kompatibilitätsschicht integriert. Seit ca. 2010 löste UEFI schrittweise das BIOS ab, welches daher auch als (dt.: Erbe/Hinterlassenschaft/Altlast) bezeichnet wurde. Seit 2020 wird das CSM, der BIOS-Kompatibilitäts-Modus, von den Herstellern weggelassen.

Der eigentliche Nachfolger für das BIOS ist der , der zu den Bedingungen der CPL (Common Public License) freigegeben wird und das implementiert.

Secure Boot Mit der Einführung von Windows 8 im Jahr 2012 wurde das UEFI in der Version 2.3.1 mit einem „“-Mechanismus verstärkt eingeführt, der das Booten auf vorher signierte Bootloader beschränkt: ermöglicht den gesicherten Anfang einer unterbrechungsfreien „Vertrauens-Kette“ von der Hardware-Firmware bis zur Benutzeranwendung. Das erhöht die Sicherheit beim Systemstart u. a. weil es Schadsoftware, der die passenden Signaturen fehlen, im Grundsatz nicht mehr möglich ist, in den Boot-Prozess einzugreifen, es verhindert jedoch nicht, dass jedes Kettenglied auch „nicht-vertrauenswürdige“ Software nachladen kann. Beispielsweise existiert mit Shim ein von Microsoft signierter Bootloader, der einen nicht zertifizierten GRUB und über diesen beliebige andere Binaries nachladen kann.

Notwendig wurde Shim, da viele Hersteller von Hauptplatinen in ihren UEFI-Implementierungen ausschließlich Signaturen für Microsoft-Produkte mitliefern und die Installation benutzereigener Signaturen auf ihrer Hardware, z. B. für die Installation eines Linux-Kernels, nicht oder zumindest nicht allein mit den UEFI-Bordmitteln möglich ist. Da die Microsoft-Signaturen in nahezu allen real verfügbaren UEFI-Implementierungen vorhanden sind, nutzen praktisch alle aktuellen Linux-Distributionen Shim, um auf Rechnern mit aktiviertem zu starten.

Wie Forscher der Mitre Corporation Mitte 2014 bekannt gegeben haben, weist die Intel-Referenzimplementierung von UEFI zudem eine Sicherheitslücke auf, die das dauerhafte Einschleusen von Malware ermöglicht. Genutzt wird hierfür eine fehlerhafte Update-Funktion, durch die es zu Integer-Overflows kommt und Schadcode ausführbar macht. Viele verwenden den Code der Intel-Referenzimplementierung als Basis für ihr UEFI.

2016 wurde außerdem eine Sicherheitslücke im Microsoft-Bootloader bekannt, die eine Umgehung des Schutzes ermöglichte.

UEFI Security Response Team (USRT) Im Jahr 2017 wurde das UEFI Security Response Team (USRT) gegründet, das als Schnittstelle und Ansprechpartner zwischen IT-Sicherheitsexperten wie beispielsweise sogenannten white hat hackern und den Unternehmen dienen soll, die UEFI-basierte Hardware herstellen. Damit will man den Weg erleichtern und verkürzen, den jemand gehen muss, um die Industrie über eine Sicherheitslücke zu informieren, die er in UEFI gefunden hat, so dass letzten Endes auch die Industrie schneller mit Sicherheitspatches reagieren kann.UEFI-BIOS bekommt ein Sicherheits-Expertenteam

Implementierungen

Tianocore EDK2 Mit TianoCore EDK2 steht eine Referenzimplementierung unter der BSD-Lizenz zur Verfügung. Diese basiert auf einer vorhergehenden Entwicklung von Intel.

Das U-Boot Im (Das U-Boot) steht seit 2017 die UEFI-API zur Verfügung. Auf der Armv8-A-Architektur nutzen Linux-Distributionen die U-Boot-UEFI-Implementierung zusammen mit GNU GRUB zum Booten (z. B. SUSE Linux). Auch OpenBSD nutzt das UEFI-API, um von U-Boot zu starten.

Alternativen Für PowerPC- und SPARC-Rechner wurde 1994 auf Unix-Workstations und -Servern der plattform- und prozessorunabhängige Forth-basierte Industriestandard Open Firmware (IEEE-1275) spezifiziert. Wesentliche technische Vorteile von Intels Eigenentwicklung EFI gegenüber Open Firmware, abgesehen von wesentlich gesteigerter Ausführungsgeschwindigkeit (Vergleich zwischen Mac mit Open Firmware und Mac mit EFI des gleichen Jahrgangs), waren zu diesem Zeitpunkt nicht bekannt.

Eine weitere Alternative ist die unter der GPL-Lizenz stehende Firmware coreboot (ehemals LinuxBIOS). Coreboot ist ein Minimalsystem, das lediglich die Hardware soweit initialisiert, dass ein anderes Programm (ein sogenanntes Payload) aufgerufen werden kann, etwa ein Linux-Kernel, ein Bootloader wie GRUB, aber auch alternative Firmware wie ein BIOS (mittels SeaBIOS), Open Firmware oder ein UEFI (mittels TianoCore).

Darüber hinaus existieren, meist für Nischen, weitere Alternativen: LinuxBoot m1n1m1n1 user guide, Asahi Linux, zugegriffen 2022-10-10.

Techniken und Möglichkeiten mini|320px|Ablauf eines Systemstarts mit EFI

Die EFI-Schnittstelle soll die Nachteile des seit den 1980er Jahren verbreiteten BIOS beseitigen und neue Möglichkeiten eröffnen. Dazu gehören laut EFI-Spezifikationen: Einfache Erweiterbarkeit (z. B. für Digital Rights Management) Eingebettetes Netzwerkmodul (zur Fernwartung) Preboot Execution Environment (universelles Netzwerkbootsystem) Unterstützung für hochauflösende Grafikkarten schon beim Start des Computers optional in der Übergangszeit (zwischen 2010 und 2020) eine BIOS-Emulation durch das „Compatibility Support Module“ (CSM), zur Wahrung der Kompatibilität zu vorhandenen Betriebssystemen, die UEFI nicht unterstützen und ein BIOS voraussetzen eine Shell, über die beispielsweise EFI-Applikationen (*.efi) aufgerufen werden können Treiber können als Modul in das EFI integriert werden, so dass sie nicht mehr vom Betriebssystem geladen werden müssen. Damit sind, wie bei Open Firmware, systemunabhängige Treiber möglich. Das System kann in einem Sandbox-Modus betrieben werden, bei dem Netzwerk- und Speicherverwaltung auf der Firmware laufen anstatt auf dem Betriebssystem. Das EFI bietet eine Auswahlmöglichkeit für die auf dem System installierten Betriebssysteme und startet diese; damit sind (den Betriebssystemen vorgeschaltete) Bootloader überflüssig. Mit der GUID-Partitionstabelle „GPT“ (für ) führt es einen flexibleren Nachfolger für auf dem Master Boot Record basierende Partitionstabellen ein. Die GUID-Partitionstabelle ist notwendig, um von einer Festplatte > 2 TB booten zu können bzw. Partitionen > 2 TB anlegen und verwalten zu können.Obwohl GPT mit EFI eingeführt wurde, kann die Partitionstabelle auch von anderen Systemen verwendet werden. U. a. ist es auch mit dem PC-BIOS möglich, von einer GPT-partitionierten Festplatte zu starten, wenn ein geeigneter Bootloader (z. B. GRUB) installiert ist. Allerdings wird das nicht von vielen Betriebssystemen unterstützt: Windows beispielsweise bricht den Startvorgang mit einem Fehler ab, Linux hingegen kann auch im BIOS- oder CSM-Modus auf GPT-Partitionen installiert und genutzt werden.

Marktdurchdringung Die Etablierung des Extensible Firmware Interface als Ersatz für das BIOS scheiterte im PC-Bereich zunächst am Widerstand von Computer- und BIOS-Herstellern. Nur Apple verwendete ab dem Einstieg in den x86-Markt mit Macs auf Intel-Basis – Intel-Macs – ausschließlich EFI.