Loading AI tools
x64-kompatibler Nachfolger des Basic Input/Output Systems (BIOS) Aus Wikipedia, der freien Enzyklopädie
Das Unified Extensible Firmware Interface (kurz UEFI, englisch für einheitliche erweiterbare Firmware-Schnittstelle[1]) 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 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.[2]
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, Secure Boot, eine Funktion, die das Booten auf vorher signierte Bootloader beschränkt und so Schadsoftware oder andere unerwünschte Programme hindern soll, zu starten.
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:
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 (Intel Architecture 64-Bit, kurz IA-64) zu finden. In dem 1998 gegründeten Intel Boot Initiative (IBI)-Programm wurde die Idee spezifiziert.
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“.
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.[4]
Um auf x86-Systemen zu bestehender Software kompatibel zu bleiben, war mit dem Compatibility Support Module, kurz CSM, eine BIOS-Kompatibilitätsschicht integriert. Seit ca. 2010 löste UEFI schrittweise das BIOS ab,[5] welches daher auch als Legacy[6][7] (dt.: Erbe/Hinterlassenschaft/Altlast) bezeichnet wurde. Seit 2020 wird das CSM, der BIOS-Kompatibilitäts-Modus, von den Herstellern weggelassen.[8][9]
Der eigentliche Nachfolger für das BIOS ist der Firmware Foundation Code, der zu den Bedingungen der CPL (Common Public License) freigegeben wird und das Extensible Firmware Interface implementiert.[10]
Mit der Einführung von Windows 8 im Jahr 2012 wurde das UEFI in der Version 2.3.1 mit einem „Secure Boot“-Mechanismus verstärkt eingeführt, der das Booten auf vorher signierte Bootloader beschränkt: Secure Boot 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 Secure Boot 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.[11]
2016 wurde außerdem eine Sicherheitslücke im Microsoft-Bootloader bekannt, die eine Umgehung des Schutzes ermöglichte.[12][13]
Im Jahr 2017 wurde das UEFI Security Response Team (USRT) gegründet, das als Schnittstelle und Ansprechpartner zwischen IT-Sicherheitsleuten wie beispielsweise ethischen Hackern (engl. sogenannte „white hats“) 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.[14]
Mit TianoCore EDK2[15] steht eine Referenzimplementierung unter der BSD-Lizenz zur Verfügung. Diese basiert auf einer vorhergehenden Entwicklung von Intel.
Im Universal Boot Loader (Das U-Boot) steht seit 2017[16] 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[17]). Auch OpenBSD[18] nutzt das UEFI-API, um von U-Boot zu starten.
Für PowerPC- und SPARC-Rechner wurde 1994 bei 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:
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:
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 ausschließlich EFI.
Im Februar 2008 sollte das erste „normale“ x86-Mainboard (P35 Neo3 von MSI), welches auf dem P35-Chipsatz von Intel basiert, mit EFI erscheinen.[22] Erschienen ist es jedoch nie. MSI plante allerdings die Markteinführung von EFI für P45-Boards im Juli 2008.[23] Anders als diese Nachrichten vermuten ließen, hat MSI die Veröffentlichung eines Mainboards mit EFI-Installation nicht vom Werk aus geplant, sondern hat für die dort genannten Mainboards ein EFI als öffentliche Beta-, also Testversion, herausgebracht.[24] Im Jahr 2009 haben sich verschiedene Hersteller zu (U)EFI bekannt (u. a. Insyde, Intel und Phoenix). Als Grund hierfür kann die x86_64-Kompatibilität und die verkürzte Ladezeit des jeweiligen Systems angeführt werden.[25] Ende 2010 lieferte Hersteller Asus erste Mainboards für den Sockel 1155 mit EFI.[26]
EFI wird hauptsächlich von Intel gefördert und – mit Einschränkungen – auch von Microsoft. Intels Itanium-Systeme liefen von Anfang an ausschließlich mit EFI. Zusammen mit Intel-Hauptprozessoren setzte ab 2006 auch Apple das EFI ein. Windows-Versionen für IA-64-Server mit EFI gibt es seit Windows 2000. Windows Vista (x64) unterstützt seit SP1 UEFI 2.0, ebenso Windows Server 2008 (gleiche Entwicklungsgrundlage wie Vista mit SP1), aber nicht den älteren EFI-Standard 1.3, der bis ca. 2012 auf Intel-Macs verwendet wurde.[27] Ab 2013 wurde Apple-EFI mehr oder weniger zu UEFI 2.0 kompatibel,[28][29] allerdings hatte Apple schon ab ca. Ende 2008 bei der Grafikschnittstelle (EFI-Framebuffer) UEFI-2.0-Kompatibilität hergestellt.[30]
Bei den meisten Betriebssystemen kann ein 64-Bit-Kernel nur 64-Bit-Treiber, inklusive (U)EFI-Treiber, verwenden, sowie ein 32-Bit-Kernel nur Treiber, die ebenfalls in 32-Bit vorliegen. Daher ergibt sich oft, dass aus einer 32-Bit-(U)EFI-Firmware nur ein 32-Bit-Betriebssystem gestartet und aus einer 64-Bit-(U)EFI-Firmware nur ein 64-Bit-Betriebssystem gestartet werden kann (z. B. bei Microsoft Windows und den meisten Linux-Distributionen). Dennoch verhindert ein 32/64-Bit-(U)EFI nicht prinzipiell den Start eines 64/32-Bit-Betriebssystems; beispielsweise beherrscht der Bootloader der verbreiteten Linux-Distribution Fedora den Start eines 64-Bit-Linux auf einem System mit lediglich 32-Bit-UEFI.
Die Itanium-Architektur von Intel und HP, auch unter der Abkürzung IA-64 („Intel Architecture 64-Bit“) bekannt, war die erste Computer-Architektur, auf der EFI als Firmware eingesetzt wurde. Daher unterstützen Betriebssysteme, die auf Itanium-Rechnern laufen, zumindest den Teil, der zum Laden des Betriebssystems selbst zum Einsatz kommt. Darunter fallen die IA-64-Versionen von FreeBSD, HP-UX, Linux, NetBSD, OpenVMS und Windows (Windows 2000 bis Server 2008 R2).
Die x86-Architektur wurde von Intel retronym als IA-32 bezeichnet, was für „Intel Architecture 32-Bit“ steht. Allerdings wurde die Architektur mit der x64-Befehlssatzerweiterung 2003 ebenfalls zur 64-Bit-Architektur.
Für Endanwender unterstützt Windows (U)EFI vor allem in den 64-Bit-Varianten ab Windows Vista mit integriertem Service Pack 1 bzw. Windows Server 2008; einige Windows-32-Bit-Versionen unterstützen auch UEFI-32-Bit.[31]
Für den Windows-7-Nachfolger Windows 8 wird EFI 2.x empfohlen. Systeme mit Systemplatten größer als 2 Terabyte und Systeme mit Arm-Prozessor benötigen EFI zwingend.[32]
Alle Windows-Versionen vor Vista für die x86-Architektur funktionieren nur dann auf (U)EFI-Mainboards, wenn eine BIOS-Kompatibilitätsschicht (CSM) vorhanden ist. Diese wurde auch z. B. von Macintosh-Computern mit Intel-Prozessor, „Intel-Macs“ (ab 2006), bereitgestellt, ist aber auch Bestandteil der meisten aktuellen UEFI-Implementierungen auf PC-Mainboards bis 2020.[33][34]
Welche Firmware aktuell läuft, lässt sich mit dem Befehl %windir%\system32\bcdedit
als Admin abfragen.
EFI wird auch von Linux unterstützt. Der stabile Zweig des Linux-Kernels bietet ab Version 2.6.25 auch für die x86-Architektur Unterstützung für EFI.[35]
Seit dem Erscheinen der ersten Itanium-Systeme entwickelt HP den Bootloader elilo. Dieser war zwar anfänglich nur für IA-64 (Itanium) ausgelegt, wurde dann aber auch auf IA-32 (x86) und x86-64 (x64) portiert. GRUB 2 unterstützt EFI-PCs ebenfalls.
Fedora unterstützt ab Version 17 EFI in der Installation und richtet das System entsprechend ein, um mit EFI arbeiten zu können. Debian unterstützt EFI ab Version 7.0 Wheezy mit einem eigenen Bootloader. Der Fedora-Bootloader kann auf einem 64-Bit-fähigen System mit lediglich 32-Bit-UEFI dennoch ein 64-Bit-Linux installieren und starten,[36] was die meisten anderen Linux-Distributionen nicht beherrschen.[37]
Die im Januar 2006 vorgestellten und alle nachfolgenden Apple-Macintosh-Rechner mit macOS (das ursprünglich „Mac OS X“ und von 2012 bis 2016 „OS X“ hieß), die auf x86-Prozessoren von Intel basieren, verwenden EFI als Firmware.[38] Damit sind sie – zusammen mit einigen Media-Center-PCs wie etwa dem Gateway 610 aus dem Jahr 2003 – die ersten EFI-basierten Massenmarktcomputer. Die ausschließliche Nutzung des EFI ohne die optionale BIOS-Kompatibilitätsschicht CSM verhinderte zunächst das Booten von Windows XP auf Intel-basierten Macintosh-Rechnern. Bald wurde aber durch das Projekt xom eine BIOS-Emulation implementiert, die das Starten von Windows ermöglichte.
Apple rüstete den „BIOS Layer“ (CSM) nach einigen Monaten durch eine Firmware-Aktualisierung nach und bot bis Mitte Oktober 2007 eine kostenlose, „Boot Camp“ genannte Lösung an, die es ermöglichte, Mac OS X und Windows XP auf zwei Partitionen desselben Rechners zu installieren und durch Neustart (Booten) zwischen den Betriebssystem hin- und herzuwechseln („Dualboot-Lösung“). Seit Erscheinen von Mac OS X Leopard (10.5, 2007) ist Boot Camp standardmäßig auf allen Intel-Macs vorinstalliert. Die Beta-Version von Boot Camp, die auch auf Mac OS X Tiger (10.4, 2005) lief, ist inzwischen offiziell nicht mehr verfügbar.
Mit EFi-X erschien im Sommer 2008 nachrüstbare Firmware für PCs, mit der die Installation von OS X von einer unmodifizierten, handelsüblichen Original-DVD auf ausgewählter Hardware anderer Hersteller ermöglicht wird, die sich hauptsächlich aus einer Kombination von Gigabyte-Hauptplatinen mit bestimmten Nvidia- und ATI-Grafikkarten zusammensetzt. Die EFi-X-Firmware ist dabei auf einem USB-Dongle untergebracht, der auf einen internen USB-Steckplatz der Hauptplatine gesteckt wird. Beim Systemstart werden daraufhin eine EFI-Emulation und ein „Multiboot-Manager“ geladen, über den neben OS X auch Windows XP, Vista oder Linux gestartet werden können.[39]
Mittlerweile gibt es auch den Bootloader Chameleon,[40] mit dem der macOS-Kernel direkt geladen werden kann, oder Clover,[41] welcher ein Macintosh-EFI vollständig softwareseitig emuliert.
Ebenso gibt es Ozmosis-Firmware, die einen Plattform-Treiber für macOS darstellt. Ein Dual-BIOS wie auf Gigabyte-Mainboards wird empfohlen, da dort die Gefahr des „Brickens“ minimiert ist. macOS lässt sich von einem solchen PC direkt starten.
EFI wurde dafür kritisiert, mehr Komplexität ins System zu bringen, ohne nennenswerte Vorteile zu bieten,[42] und das vollständige Ersetzen durch Open-Source-Alternativen wie OpenBIOS oder coreboot unmöglich zu machen.[43] Es löse nicht eines der langjährigen Probleme des BIOS – nämlich, dass die meiste Hardware zwei unterschiedliche Treiber benötigt.[44] Es sei nicht klar, warum es nützlich sein soll, zwei komplett unterschiedliche Betriebssysteme gleichzeitig in Betrieb zu haben, die im Grunde dieselben Aufgaben erledigen, oder warum ein neues Betriebssystem von Grund auf neu geschrieben werden müsste.[44]
EFI gilt einem Entwickler von coreboot zufolge in sicherheitskritischen Einsatzumgebungen – wie etwa in Banken – als ein mögliches Sicherheitsrisiko, da etwa mit dem implementierten Netzwerkstack die theoretische Möglichkeit bestünde, Daten unbemerkt vom Betriebssystem an eine beliebige Adresse zu senden. Der eigene Netzwerkstack für TCP/IP, der „unterhalb“ vom Betriebssystem direkt und unabhängig auf der Hauptplatine läuft, ermöglicht es, das System zu manipulieren, zu infizieren oder zu überwachen, ohne dass man es betriebssystemseitig kontrollieren oder einschränken könnte. Auch für DRM-Zwecke könnte EFI benutzt werden, um etwa den I/O-Datenstrom auf digitale Wasserzeichen hin zu überwachen. Aus diesen Gründen plädieren einige Anwender für ein quelloffenes System wie coreboot (ehemals LinuxBIOS).[42][45][46]
Fehlerhafte Implementationen von UEFI haben bei mehreren Herstellern zu irreparablen Schäden an Systemen geführt. Im Juni 2013 wurden Notebooks von Samsung beim Bootvorgang mit Linux eingefroren, sobald das Betriebssystem schreibend auf die UEFI-Firmware zugriff. Das Mainboard wurde dadurch unlösbar blockiert.[47] Anfang 2014 trat das gleiche Problem bei Geräten von Lenovo auf sowie Ende 2015 bei Geräten von Asus.[48][49]
Da im Unterschied zum traditionellen BIOS und manchen konkurrierenden Ansätzen UEFI eine Netzwerkimplementierung enthält, von der ein Teil (das Driver eXecution Environment Runtime, DXERuntime) im Hintergrund aktiv bleibt, während am Computer bereits das Betriebssystem läuft, besteht ein zusätzliches Risiko, von Schadsoftware angegriffen zu werden. Es gibt dokumentierte Fälle, in denen Programmierfehler oder Fehler beim Paketieren der EFI-Software zu Schwachstellen führten.[50][51][52][53][54][55] Auch der System Management Mode (SMM) kann bei Programmfehlern im UEFI zur Installation von Schadsoftware genutzt werden („BIOS-Rootkits“).[56] Zur Absicherungen gegen gefundene Sicherheitslücken ist man allerdings darauf angewiesen, dass der Hersteller auch Updates bereitstellt, was nicht immer zeitnah geschieht.[57][58]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.