„Unified Extensible Firmware Interface“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
→‎Kritik: Freeze
Zeile 85: Zeile 85:
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 bspw. von Windows aus kontrollieren oder einschränken könnte. Auch für [[Digitale Rechteverwaltung|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 eher für ein quelloffenes System wie coreboot (ehemals ''LinuxBIOS'').<ref name="kt_linus" /><ref>http://www.youtube.com/watch?v=QsW88Efgmlk&feature=related</ref><ref>http://pinstack.blogspot.com/2009/01/efi-hidden-threat-to-computing-freedom.html</ref>
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 bspw. von Windows aus kontrollieren oder einschränken könnte. Auch für [[Digitale Rechteverwaltung|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 eher für ein quelloffenes System wie coreboot (ehemals ''LinuxBIOS'').<ref name="kt_linus" /><ref>http://www.youtube.com/watch?v=QsW88Efgmlk&feature=related</ref><ref>http://pinstack.blogspot.com/2009/01/efi-hidden-threat-to-computing-freedom.html</ref>


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 geblockt.<ref>c't: [www.heise.de/ct/artikel/Firmware-Schaden-1807064.html Firmware-Schaden], 6/2013</ref> Anfang 2014 trat das gleiche Problem bei Geräten von [[Lenovo]] auf.<ref>heise.de: [http://www.heise.de/newsticker/meldung/Fehlerhafte-UEFI-Firmware-Linux-killt-Thinkpads-2106149.html Fehlerhafte UEFI-Firmware: Linux killt Thinkpads], 5. Februar 2014</ref>
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 geblockt.<ref>c't: [http://www.heise.de/ct/artikel/Firmware-Schaden-1807064.html Firmware-Schaden], 6/2013</ref> Anfang 2014 trat das gleiche Problem bei Geräten von [[Lenovo]] auf.<ref>heise.de: [http://www.heise.de/newsticker/meldung/Fehlerhafte-UEFI-Firmware-Linux-killt-Thinkpads-2106149.html Fehlerhafte UEFI-Firmware: Linux killt Thinkpads], 5. Februar 2014</ref>


== Weblinks ==
== Weblinks ==

Version vom 10. Februar 2014, 13:50 Uhr

Das Unified Extensible Firmware Interface (kurz UEFI, englisch für Vereinheitlichte erweiterbare Firmware-Schnittstelle) und dessen Vorgänger Extensible Firmware Interface (kurz EFI genannt) beschreiben die zentrale Schnittstelle zwischen der Firmware, den einzelnen Komponenten eines Rechners und dem Betriebssystem. Es sitzt logisch gesehen unterhalb des Betriebssystems und stellt den Nachfolger des PC-BIOS dar, mit Fokus auf 64-Bit-Systeme. Ein Bestandteil aktueller UEFI-Versionen ist Secure Boot, das das Booten auf vorher signierte Bootloader beschränkt und so Schadsoftware oder andere unerwünschte Programme am Starten hindert.

Lage der Schnittstelle

Ziel

EFI soll einfacher zu bedienen sein als herkömmliche BIOS-Implementierungen. Zudem sollen die Anwender beim Systemstart auswählen können, welche Bestandteile des verwendeten Betriebssystems geladen werden sollen, beispielsweise könnten fehlerhafte Treiber deaktiviert werden.

Auch soll von den grafischen Möglichkeiten moderner Hardware Gebrauch gemacht werden, und es soll möglich werden, Fehler mit Hilfe von Netzwerk-Verbindungen zu diagnostizieren.

Geschichte

Das ursprüngliche PC-BIOS erschien 1981 mit dem ersten IBM-PC und wird trotz vieler späterer Erweiterungen den Anforderungen moderner Hardware und Betriebssysteme schon seit einiger Zeit nicht mehr gerecht. Insbesondere ist es nicht 64-bit-tauglich, und weitere „Flickschustereien“ in dieser Richtung erschienen Hardware-Herstellern (wie Intel oder AMD) nicht mehr tragbar.

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

Den eigentlichen Nachfolger für das BIOS stellt der Firmware Foundation Code dar, der zu den Bedingungen der CPL (Common Public License) freigegeben wird und das Extensible Firmware Interface implementiert.[1]

Unified EFI (UEFI)

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, so dass die nun als Unified EFI (UEFI) bezeichnete Schnittstelle nicht mehr allein von Intel festgelegt wird. Im Januar 2006 wurde die EFI-Version 2.0 freigegeben.

Mit der Einführung von Windows 8 im Jahre 2012 wird verstärkt das UEFI in der Version 2.3.1 mit einem Secure-Boot-Mechanismus eingeführt, der das Booten auf vorher signierte Bootloader beschränkt. Dies erhöht die Sicherheit beim Systemstart, indem Schadsoftware am Starten gehindert wird. Andererseits wird der Aufwand für die Nutzung von z.B. Linux-Distributionen erhöht, da entweder Secure Boot deaktiviert oder ein signierter Kernel genutzt werden muss, wobei das Signieren eines Kernels mit Kosten verbunden ist, die die wenigsten Distributoren tragen wollen.[2].

Alternativen

Für PowerPC-und SPARC-Rechner wurde vor geraumer Zeit 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 Mac mit Open Firmware zu Mac (gleicher Jahrgang) mit EFI), sind nicht bekannt.

Eine weitere Alternative stellt die unter der GPL-Lizenz stehende Firmware coreboot (ehemals LinuxBIOS) dar. Coreboot ist ein Minimalsystem, das lediglich die Hardware soweit initialisiert, dass ein anderes Programm (eine sogenannte Payload) aufgerufen werden kann, etwa ein Linux-Kernel, ein Bootloader wie etwa GRUB, Open Firmware oder diverse andere.

Techniken und Möglichkeiten

Ablauf eines Systemstarts mit EFI

Die EFI-Schnittstelle soll die Nachteile des 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
  • BIOS-Emulation (also Kompatibilität zu vorhandenem BIOS) durch ein „Compatibility Support Module“ (CSM)[3]
  • 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) Boot-Loader überflüssig.
  • Mit der GUID Partition Table führt es einen flexibleren Nachfolger für auf dem Master Boot Record basierende Partitionstabellen ein. Die GPT ist notwendig, um von einer Festplatte > 2 TB booten zu können, bzw. Partitionen > 2 TB anlegen und verwalten zu können.

Marktdurchdringung

Die Etablierung des Extensible Firmware Interface als zukünftiger Ersatz für das BIOS scheiterte bisher im PC-Bereich am Widerstand einiger Computer- und BIOS-Hersteller. Mit dem Einstieg von Apple in den x86-Markt scheint sich das jedoch langsam zu ändern – Macs auf Intel-Basis verwenden ausschließlich EFI.

Inzwischen hat mit dem Mainboard-Hersteller MSI der erste Anbieter „normaler“ x86-Systeme damit begonnen, seine Produkte auf EFI umzustellen. Im Februar 2008 sollte das erste Mainboard (P35 Neo3), welches auf dem P35-Chipsatz von Intel basiert, mit EFI erscheinen.[4] Erschienen ist es jedoch nie. MSI plante allerdings die Markteinführung von EFI für P45-Boards im Juli 2008.[5] 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.[6] 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 vor allem die verkürzte Ladezeit des jeweiligen Systems angeführt werden.[7] Seit Ende 2010 sind außerdem vom Hersteller Asus erste Mainboards für den Sockel 1155 mit EFI verfügbar.[8]

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, und dank der Hilfe von Intel konnte auch Apple EFI bereits einsetzen. Windows-Versionen für Itanium-Systeme mit EFI gibt es bereits seit Windows 2000. Microsoft hat also bereits einige Jahre Praxiserfahrung mit dem EFI. 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 bisher bei Intel-Macs verwendet wird.[9]

Betriebssysteme

X86

Windows

Seit Windows 2000 gibt es Versionen von Windows für die IA64 Architektur. Da EFI ein zwingender Bestandteil dieser Plattform ist, unterstützt jede IA64-Version von Windows somit auch EFI.

Für Endanwender unterstützt Windows EFI ausschließlich in den 64-Bit-Varianten ab Windows Vista mit integriertem Service Pack 1 bzw. Windows Server 2008.[10]

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.[11]

Alle vorherigen Windows-Versionen für die x86-Architektur funktionieren nur, wenn eine BIOS-Kompatibilitätsschicht (CSM) vorhanden ist. Diese wird z. B. von Macintosh-Computern mit Intel-CPU bereitgestellt, ist aber auch Bestandteil jedes aktuellen UEFI auf PC-Mainboards.[12][13]

Linux

EFI wird auch von Linux unterstützt. Der stabile Zweig des Linux-Kernels bietet seit Version 2.6.25 auch für die x86-Architektur Unterstützung für EFI.[14]

Seit dem Erscheinen der ersten Itanium-Systeme entwickelt HP den Bootloader elilo. Dieser ist zwar für IA-64 ausgelegt, lässt sich aber ebenfalls auf IA-32 verwenden – eine Portierung von elilo auf x86-64 befindet sich aber noch im Beta-Stadium. Als Alternative zu elilo kann auch GRUB 2 für EFI-PC verwendet werden.

Fedora unterstützt ab Version 17 EFI in der Installation und richtet das System entsprechend ein, um mit EFI arbeiten zu können.

Mac OS X

Die im Januar 2006 vorgestellten und alle nachfolgenden Apple Macintosh-Rechner mit Mac OS X, die auf Intel-CPUs und Chipsätzen basieren, verwenden ebenfalls EFI als Firmware.[15] 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 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" 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öglicht, 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 10.5 (Leopard) ist Boot Camp standardmäßig auf allen Intel-Macs vorinstalliert. Die Beta-Version von Boot Camp, die auch auf Mac OS X 10.4 lief, ist inzwischen offiziell nicht mehr lauffähig.

Mit EFi-X erschien im Sommer 2008 nachrüstbare Firmware für PCs, mit der die Installation von Mac OS X von einer unmodifizierten, handelsüblichen Original-DVD auf ausgewählter Hardware anderer Hersteller, die sich hauptsächlich aus einer Kombination von Gigabyte-Hauptplatinen mit bestimmten Nvidia- und ATI-Grafikkarten zusammensetzt, ermöglicht wird. Die EFi-X-Firmware ist dabei auf einem USB-Dongle untergebracht, der auf einen internen USB-Steckplatz der Hauptplatine gesteckt wird. Beim Systemstart wird daraufhin eine EFI-Emulation und ein "Multiboot-Manager" geladen, über den neben OS X auch Windows XP, Vista oder Linux gestartet werden können.[16]

Mittlerweile gibt es auch den Bootloader Chameleon,[17] mit dem rein durch Software ein EFI simuliert wird.

Andere (IA64)

Da EFI auf IA64-Rechnern standardmäßig integriert ist, unterstützen Betriebssysteme, die auf diesen Rechnern laufen sollen, zumindest den Teil, der zum Laden des Betriebssystems selbst zum Einsatz kommt. Darunter fallen die entsprechenden Versionen von FreeBSD, HP-UX, Linux, NetBSD, OpenVMS und Microsoft Windows.

Kritik

EFI wurde dafür kritisiert, mehr Komplexität ins System zu bringen, ohne nennenswerte Vorteile zu bieten[18], und das vollständige Ersetzen mit einem Open-Source-BIOS wie OpenBIOS und coreboot unmöglich zu machen.[19] Es löse nicht eines der langjährigen Probleme des BIOS – nämlich, dass die meiste Hardware zwei unterschiedliche Treiber benötigt.[20] 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.[20]

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 bspw. von Windows aus 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 eher für ein quelloffenes System wie coreboot (ehemals LinuxBIOS).[18][21][22]

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 geblockt.[23] Anfang 2014 trat das gleiche Problem bei Geräten von Lenovo auf.[24]

Commons: Extensible Firmware Interface – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. http://www.chip.de/news/Intel-will-BIOS-Nachfolger-als-Open-Source-freigeben_13728343.html
  2. http://www.heise.de/ct/hotline/FAQ-UEFI-Secure-Boot-und-Linux-1776846.html
  3. http://www.intel.com/technology/framework/overview4.htm
  4. http://www.computerbase.de/news/hardware/mainboards/intel-systeme/2008/januar/msi_bios_p35_neo3/
  5. Computerbase: MSI bringt EFI auf P45-Boards im Juli
  6. http://eu.msi.com/html/popup/MB/uefi/about.html
  7. http://www.heise.de/newsticker/meldung/IDF-Notebook-Firmware-bootet-kuerzer-als-1-Sekunde-790212.html
  8. Asus LGA1155 Motherboard Preview. bit-tech.net, 16. November 2010, abgerufen am 28. März 2011.
  9. heise: Windows Vista Service Pack 1 ist fertig
  10. http://www.microsoft.com/whdc/system/platform/firmware/UEFI_Windows.mspx
  11. Abschied vom PC-BIOS – Meldung beim c't magazin, vom 3. Juni 2011
  12. http://www.heise.de/kiosk/archiv/ct/2009/11/186_kiosk
  13. http://www.heise.de/kiosk/archiv/ct/2009/11/180
  14. heise open: Kernel 2.6.25 unterstützt nun auch auf der x86-Architektur den designierten BIOS-Nachfolger EFI
  15. http://web.archive.org/web/20090103143738/http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_diffs/chapter_3_section_10.html
  16. http://www.efi-x.com/index.php?option=com_content&view=article&id=23&language=english efi-x.com Produktinfo
  17. Chameleon
  18. a b kerneltrap.org (Memento vom 8. Oktober 2006 im Internet Archive)Vorlage:Webarchiv/Wartung/Linktext_fehlt
  19. Interview: Ronald G Minnich
  20. a b http://www.youtube.com/watch?v=X72LgcMpM9k
  21. http://www.youtube.com/watch?v=QsW88Efgmlk&feature=related
  22. http://pinstack.blogspot.com/2009/01/efi-hidden-threat-to-computing-freedom.html
  23. c't: Firmware-Schaden, 6/2013
  24. heise.de: Fehlerhafte UEFI-Firmware: Linux killt Thinkpads, 5. Februar 2014