12.07.2015 Aufrufe

c't magazin für computer technik 15 vom 1.7.2013 - since

c't magazin für computer technik 15 vom 1.7.2013 - since

c't magazin für computer technik 15 vom 1.7.2013 - since

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Know-how | Das leistet UEFIChristof WindeckCrashkurs UEFIDas Unified Extensible Firmware InterfaceEnde der 1990er-Jahre entwickelte Intel das Extensible FirmwareInter face, welches Apple seit 2006 für die Macs nutzt. Doch erst mitWindows 8 setzt sich UEFI bei den PCs durch.PC-Firmware hat mittlerweile einen kolossalenFunktionsumfang. Das deutetschon der Umfang des Codes an, der ineinem Flash-Chip auf dem Mainboard residiert:8 oder gar 16 MByte sind heute üblich.Das ist ein Mehrfaches dessen, was früher Betriebssystemebrauchten. Die Firmware initialisiertsämtliche Systemkomponenten, diezum Booten nötig sind: CPU, RAM, Grafikprozessor,PCI-Express-Bausteine, Storage-Controller.Sie befüllt komplexe ACPI-Tabellen,die das Betriebssystem unter anderem fürStromsparfunktionen benötigt. Zum Bootenvon RAID-Verbünden, USB-Massenspeichernoder via Netzwerk stellt die Firmware Emulationsschichtenbereit. Auf ähnliche Weisebindet sie USB-Eingabegeräte ein.Die zahlreichen Aufgaben ließen sichbeim BIOS nur mit Klimmzügen umsetzen,weil es mit Funktionen aus der CPU-Steinzeitstartet. Der 16-bittige „Real Mode“ reichtnicht einmal mehr zur direkten Adressierungder internen Caches aktueller Prozessorenaus. Jeder der BIOS-Hersteller AMI, Insydeund Phoenix – Letzterer inklusive der MarkeAward – werkelte nach eigenem Gusto vorsich hin. Firmware-Gerätetreiber, etwa für dieerwähnten SATA-, USB- oder Ethernet-Bausteine,müssen für jede BIOS-Variante mühsamangepasst werden.UEFI räumt mit solchen Problemen auf [1]:Die Firmware kann im 32-Bit- oder 64-Bit-Modus loslegen, viele Konzepte und Funktionensind exakt spezifiziert. UEFI ist nicht aneinen Prozessortyp gebunden, außer für x86-und x64-CPUs gibt es Varianten für Intels Itaniumund für Systems-on-Chip mit ARM-Kernen.Ein wesentlicher Bestandteil von UEFI istdie eingebaute Ausführungsmaschine (derInterpreter) für EFI-Bytecode. Das erleichtertdie Programmierung von Firmware-Treibern.EFI-Bytecode ist zwar nicht binärkompatibel,aber der Quelltext muss bloß für die Zielplattformübersetzt werden. Die Entwicklerkönnen mehr Zeit in Optimierungen stecken.Shell-ExperimenteViele Mainboards mit UEFI-Firmware könneneine EFI-Shell von einem FAT- oderFAT32-formatierten USB-Stick starten. Sieist selbst in EFI-Bytecode geschriebenund erlaubt unter anderem einen Blick insNVRAM: Der Shell-Befehl dmpstore > nvram.txterzeugt eine Textdatei, die man späterauswerten kann.Die Shell steckt im EFI Development Kit II,siehe c’t-Link unten. Laden Sie UDK2010.SR1.UP1.Complete.MyWorkSpace.zip herunter.Darin befindet sich unter \My-WorkSpace\EdkShellBinPkg\FullShell\X64die Datei Shell-Full.efi. Legen Sie auf demUSB-Stick ein Verzeichnis namens „efi“ anund darin wiederum eines namens „boot“.Kopieren Sie Shell-full.efi nach \efi\bootauf dem Stick und benennen Sie sie um in„bootx64.efi“. Nun sollte Ihr UEFI-System(ohne Secure Boot) <strong>vom</strong> Stick startenkönnen. Unter \MyWorkSpace\EdkShell-BinPkg\Bin\X64\Apps finden sich weitereTools, die Sie auf den USB-Speicher kopierenund dann ausprobieren können.Das trägt auch dazu bei, dass UEFI-Firmwareschneller booten kann.Intel wollte das BIOS mit EFI zunächst imAlleingang ablösen, was misslang. 2004 veröffentlichteder CPU-Marktführer die EFI-Spezifikationdann im Tiano-Projekt und übergabdie Hoheit 2005 dem UEFI-Industrie gremium.UEFI und EFI sind nicht dasselbe: Windows unterstütztnur UEFI ab Revision 2.0. Ältere Serverboardsverwenden EFI 1.1 und Apple beiden Mac-OS-Systemen einen eigenen EFI-Dialekt,der beispielsweise einen OS-X-Bootloaderenthält und das Dateisystem HFS+ kennt.Schon bevor die ersten Mainboards verkauftwurden, die Betriebssysteme im UEFI-Modus starten können, war UEFI-Firmware imEinsatz – aber man merkte nichts davon: UEFI-Firmware kann per Software BIOS-kompatibelwerden. Nach Abschluss der Initialisierungsphaselädt die Firmware dazu ein CompatibilitySupport Module (CSM). Man unterscheidetdrei Klassen von UEFI-Systemen: Die erstenladen stets ein CSM, sind also nicht von BIOS-Systemen zu unterscheiden. Zur Klasse 2 gehörenheute die meisten, sie lassen sich zwischenBIOS- und UEFI-Startmodus umschaltenoder tun das automatisch. Geräte völlig ohneCSM zählen zur Klasse 3, beispielsweise Tabletsmit Win dows RT und ARM-Prozessoren.Den großen Funktionsumfang von UEFInutzen viele – aber nicht alle – Mainboard-Firmen für knallbunte und per Maus steuerbareSetups sowie eingebaute Update- undDiagnosefunktionen. Die Vielfalt an Funktionenist für Schadsoftware attraktiv, weshalbdie UEFI-Spezifikation 2.3.1 eine digitale Signaturprüfungnachreichte: Secure Boot.Microsoft hatte UEFI-Unterstützung ursprünglichallgemein für Vista versprochen,später war dann nur noch von der 64-Bit-Versiondie Rede. Letztlich konnte erst Vista x64mit dem 2008 erschienenen Servicepack 1 imUEFI-Modus starten. Welche UEFI-FunktionenWindows 8 genau verwendet, spezifizierendie Windows Hardware Logo Requirementsfür Computer, die mit einem Win -dows-Logo verkauft werden.Die UEFI-Spezifikation verlangt nur Unterstützungfür FAT, FAT32 und das CD-DateisystemISO 9660 samt Boot-Erweiterung ElTorito. Von USB-Sticks mit NTFS oder DVDsmit UDF kann UEFI-Firmware nicht booten.Daher trickst Microsoft bei den Setup-DVDsfür Windows: Der UEFI-Bootloader liegt hierin einem speziellen El-Torito-Image.EFI nutzt die GUID-Partitionstabelle (GPT),die Nachteile des Master Boot Record (MBR)überwindet. Festplatten oder RAIDs mit mehrals 2 TByte oder mehr als vier primären Partitionensind kein Problem. Eine EFI-Systempartition(ESP) nimmt die jeweiligen Bootloaderaller installierten Betriebssysteme auf, Verweisedarauf landen in einem nichtflüchtigenSpeicher. Der heißt NVRAM, obwohl es sich oftum Flash-Speicher handelt. Die Firmwareselbst bringt einen Boot-Manager mit. (ciw)Literatur[1]ˇChristof Windeck, Maskierte Ablösung, Exten -sible Firmware Interface ersetzt BIOS, c’t 11/09,S. 180www.ct.de/13<strong>15</strong>13834 Sektoren128 MByte:GUID-Partitionstabelle (GPT) „Microsoft Reserved“mit „Protective MBR“ (versteckt)Festplatte500 GByteUEFI-Firmware(Mainboard)NVRAM-Eintragverweist auf200 MByte FAT:EFI Systempartition(ESP), FATEFI Microsoft Boot bootmgfw.efi///verweist auf//200 GByteWindows(NTFS)/Windows System32 winload.efi/Windows System32 winload.efi//299,97 GByteweiteres Betriebssystemoder andere Nutzung34 SektorenKopie derGPTDer UEFI-Startvorgang funktioniert anders als beim BIOS: Das NVRAM speichert Verweise auf Bootloader in der EFI-Systempartition. c138 c’t 2013, Heft <strong>15</strong>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!