Extensible Firmware Interface ( EFI ) (z angličtiny - "rozšiřitelné firmware rozhraní ") - rozhraní mezi operačním systémem a firmwarem , které řídí nízkoúrovňové funkce zařízení, jeho hlavním účelem je správná inicializace zařízení při zapnutí systému zapnout a přenést řízení na bootloader nebo přímo na jádro operačního systému. EFI má nahradit BIOS , rozhraní tradičně používané všemi osobními počítači IBM PC kompatibilními . První specifikace EFI byla vyvinuta společností Intel, později bylo od prvního názvu upuštěno a nejnovější verze standardu se nazývá Unified Extensible Firmware Interface ( UEFI ). UEFI v současné době vyvíjí Unified EFI Forum .
EFI bylo původně vytvořeno pro první systémy Intel-HP Itanium v polovině 90. let . Omezení PC-BIOS (16bitový spustitelný kód, 1 MB adresovatelné paměti, hardwarová omezení IBM PC/AT atd.) zjevně nebyla povolena na velkých serverových platformách, na kterých bylo Itanium určeno. Původní název je Intel Boot Initiative ( Intel Boot Initiative ), později přejmenován na EFI [1] :
Rozhraní definované specifikací EFI obsahuje datové tabulky obsahující informace o platformě, bootovacích a runtime službách, které jsou dostupné pro zavaděč operačního systému (OS) a samotný OS. Některá existující rozšíření BIOSu , jako je ACPI a SMBIOS , jsou také přítomna v EFI, protože nevyžadují 16bitové runtime rozhraní.
EFI definuje „spouštěcí služby“, které zahrnují podporu pro textovou a grafickou konzoli na různých zařízeních, sběrnicové, blokové a souborové služby a také runtime služby, jako je datum, čas a energeticky nezávislá paměť.
Kromě standardních ovladačů zařízení specifických pro architekturu poskytuje specifikace EFI prostředí ovladače nezávislé na platformě nazývané EFI Byte Code (EBC). Specifikace UEFI vyžaduje systémový firmware , aby měl interpret pro všechny obrazy EBC, které jsou načteny nebo mohou být načteny do prostředí. V tomto smyslu je EBC podobný Open Firmware , hardwarově nezávislému firmwaru používanému v počítačích Apple Macintosh a Sun Microsystems SPARC .
Některé typy ovladačů EFI specifické pro architekturu (bez EBC) mohou mít rozhraní pro použití OS. To umožňuje OS používat EFI pro základní grafiku a síťovou podporu před načtením ovladačů definovaných OS.
Správce spouštění EFI se používá k výběru a spouštění operačního systému, což eliminuje potřebu vyhrazeného spouštěcího mechanismu (zavaděč OS je aplikace EFI).
Kromě standardního rozložení disku MBR má EFI podporu GPT , která je bez omezení specifických pro MBR. Specifikace EFI nezahrnuje popisy pro souborové systémy, nicméně implementace EFI obecně podporují FAT32 jako souborový systém [3] .
Komunita EFI vytvořila prostředí otevřeného shellu ( EFI shell ) [4] . Uživatel může místo bootování operačního systému načíst EFI shell a provádět některé operace. Shell je aplikace EFI; může být trvale umístěn v ROM platformy nebo na zařízení, jehož ovladače jsou v ROM.
Shell lze použít ke spouštění dalších aplikací EFI, jako je konfigurace, instalace OS, diagnostika, konfigurační nástroje a aktualizace firmwaru. Lze jej také použít k přehrávání médií CD nebo DVD bez spouštění operačního systému za předpokladu, že aplikace EFI tyto funkce podporují. Příkazy prostředí EFI také umožňují kopírovat nebo přesouvat soubory a adresáře na podporovaných systémech souborů a načítat a uvolňovat ovladače. Shell může také používat celý zásobník TCP/IP.
Shell EFI podporuje skriptování jako soubory .nsh , podobně jako dávkové soubory DOS . V tomto případě je soubor skriptu s názvem startup.nsh spuštěn automaticky při bootování.
Názvy příkazů shellu jsou často zděděny od interpretů příkazového řádku ( COMMAND.COM nebo Unix shell ). Shell EFI lze považovat za funkční náhradu za interpret příkazového řádku systému BIOS a textové rozhraní.
Rozšíření EFI lze načíst z téměř jakéhokoli energeticky nezávislého úložného zařízení připojeného k počítači. Například výrobce OEM může prodávat systém s oddílem EFI na pevném disku, který by přidal další funkce firmwaru EFI, který je umístěn v ROM základní desky.
Intel Platform Innovation Framework pro EFI ( Intel Innovation Toolkit v ruštině ) je sada specifikací vyvinutá společností Intel společně s EFI. Zatímco EFI definuje rozhraní mezi OS a firmwarem, sada nástrojů definuje struktury používané k vytvoření vestavěného softwaru na nižší úrovni než rozhraní mezi OS a firmwarem.
Sada nástrojů zejména podporuje všechny kroky potřebné k inicializaci počítače po jeho zapnutí. Tyto funkce interního firmwaru nejsou definovány jako součást specifikace EFI, ale jsou zahrnuty ve specifikaci inicializace platformy vyvinuté UEFI . Sada nástrojů byla testována na platformách: Intel XScale , Intel Itanium a IA-32 .
Kompatibilita s operačními systémy x86, které vyžadují rozhraní „staršího systému BIOS“, je dosaženo pomocí modulu Compatibility Support Module (CSM). CSM obsahuje 16bitový program (CSM16) implementovaný výrobcem systému BIOS a vrstvu, která propojuje CSM16 se sadou nástrojů.
Intel vyvinul referenční implementaci pro sadu nástrojů s kódovým označením „Tiano“. Tiano je kompletní implementace vestavěného softwaru bez starších verzí, která poskytuje podporu EFI. Tiano neobsahuje 16bitovou část CSM, ale poskytuje rozhraní vyžadovaná doplňky implementovanými prodejci systému BIOS. Intel neposkytuje kompletní implementaci Tiano pro koncové uživatele.
Část Tiano byla vydána jako zdrojový kód pro projekt TianoCore jako EFI Developer Kit (EDK) [5] . Tato implementace zahrnuje EFI a některé hardwarové inicializační kódy, ale nepokrývá plně specifika přímo vestavěného softwaru. Pro tento kód bylo použito několik licencí, včetně licence BSD a Eclipse Public License .
Produkty založené na EFI, UEFI a specifikacích přístrojů jsou dostupné prostřednictvím nezávislých výrobců BIOS, jako jsou American Megatrends (AMI) a Insyde Software . Některé implementace výrobců jsou založeny výhradně na Tiano, zatímco jiné odpovídají specifikacím, ale nejsou založeny na referenční implementaci Intel [6] .
Systémy založené na Itanium vydané společností Intel v roce 2000 podporovaly EFI 1.02. Systémy Itanium 2 vydané v roce 2002 společností Hewlett-Packard podporovaly EFI 1.10; mohli spustit Windows , Linux , FreeBSD a HP-UX . Všechny systémy Itanium nebo Itanium 2, které jsou vydány s firmwarem kompatibilním s EFI, musí odpovídat specifikaci DIG64 .
V listopadu 2003 společnost Gateway představila Gateway 610 Media Center, první počítačový systém x86 založený na Windows , který používá vestavěný software založený na sadě nástrojů InsydeH2O společnosti Insyde Software. Podpora systému BIOS byla implementována pomocí modulu Compatibility Support Module (CSM) pro spouštění systému Windows.
V lednu 2006 Apple Inc. představil první počítače Macintosh založené na platformě Intel . Tyto systémy používají EFI a nástroje namísto Open Firmware , který byl používán na předchozích systémech platformy PowerPC [7] .
5. dubna 2006 Apple vydal balíček Boot Camp , který umožňuje vytvořit disk s ovladačem pro Windows XP a obsahuje také nedestruktivní nástroj pro dělení disku, který umožňuje nainstalovat Windows XP s Mac OS X. Byla provedena aktualizace firmwaru také vydala podporu systému BIOS pro tyto implementace EFI. Následující modely Macintosh byly vydány s aktualizovaným firmwarem. Všechny moderní počítače Macintosh nyní mohou zavádět operační systémy kompatibilní s BIOSem , jako jsou Windows XP, Vista a Windows 7.
Velké množství základních desek Intel je dodáváno s firmwarem založeným na sadě nástrojů[ specifikovat ] . Takže během roku 2005 bylo vydáno více než jeden milion systémů Intel [8] . V roce 2006 se začaly vyrábět nové mobilní telefony, stolní počítače a servery využívající tuto sadu nástrojů. Tuto sadu nástrojů používají například všechny základní desky, které jsou postaveny na čipové sadě Intel 945. Vyráběný firmware však obvykle neobsahuje podporu EFI a je omezen na podporu BIOSu [9] .
Od roku 2005 se EFI používá v architekturách jiných než PC, jako jsou vestavěné systémy založené na jádře XScale [10] .
EDK obsahuje cíl NT32, který umožňuje firmwaru EFI a aplikacím EFI spouštět aplikace Windows.
V roce 2007 vydala společnost Hewlett-Packard multifunkční tiskárnu řady 8000 s firmwarem kompatibilním s EFI [11] .
V rozložení disku GPT obsahuje systémový oddíl EFI ( ESP ) s identifikátorem EF00 a souborovým systémem FAT32 soubor \efi\boot\boot[název architektury].efi , například: \efi\boot\bootx64. efi. Bootloader EFI BIOS načte a spustí takový soubor podle architektury počítačového systému.
Chcete-li například vytvořit spouštěcí USB flash disk se systémem Windows , stačí označit USB flash disk v GPT, vytvořit na něm aktivní oddíl se systémem souborů FAT32 a ID oddílu EF00 a poté zkopírovat všechny soubory z CD pomocí distribuci operačního systému.
Příklad vytvoření disku GPT v operačním systému GNU/Linux:
Ve většině implementací UEFI je také možné zavést systém v režimu kompatibility z disku MBR.
Apple nepoužívá ESP pro bootování, bootstrap přenáší řízení na adresu zapsanou v NVRAM (BootRom): /System/Library/CoreServices/boot.efi pomocí utility bless [uživatel může tuto hodnotu změnit pomocí stejné utility], s tím můžete také vidět aktuální spouštěcí zařízení a možnosti spouštění:
bless --info --getBoot --verbose
Verze Itanium Windows 2000 (Advanced Server Limited Edition a Datacenter Server Limited Edition) získaly podporu EFI 1.1 v roce 2002.
Windows Server 2003 pro IA-64 , Windows XP 64bitový a Windows 2000 Advanced Server Limited Edition pro procesory řady Intel Itanium podporují EFI, jak je pro tuto platformu definováno specifikací DIG64 [15] .
Microsoft představil podporu UEFI v 64bitových operačních systémech Windows počínaje Windows Server 2008 a Windows Vista Service Pack 1 [16] [17] . Microsoft tvrdí, že nedostatek oficiální podpory EFI na 32bitových CPU je způsoben nedostatečnou podporou výrobců a prodejců PC. Migrace společnosti Microsoft na 64bitové operační systémy neumožňuje použití EFI 1.10, protože 64bitová rozšíření procesoru vyžadovaná tímto operačním systémem nejsou podporována prostředím procesoru. Podpora x86-64 byla součástí UEFI 2.0.
Microsoft zveřejnil video s Andrewem Ritzem a Jamiem Schwarzem vysvětlujícím implementaci podpory UEFI ve Windows Vista a Windows Server 2008 [ 18] .
EFI podporuje grafické nabídky a některé funkce, jako jsou ty implementované Aptio nebo Great Wall UEFI [19] .
EFI bylo kritizováno za přidávání složitosti systému bez významných výhod [20] a za opuštění plně open source alternativních zavaděčů, jako je OpenBIOS a coreboot [21] .
V roce 2011 uživatelé a vývojáři operačních systémů založených na Linuxu varovali , že implementace technologie Secure Boot způsobem požadovaným společností Microsoft pro zařízení s Windows 8 by výrazně omezila svobodu uživatelů těchto zařízení při výběru nebo provozu operačního systému [22] [23 ] .
V září 2018 zveřejnila antivirová společnost zprávu o LoJax, prvním známém rootkitu pro systém UEFI, který byl skutečně používán. Inženýři společnosti objevili případ úspěšného poražení subsystému SPI a uložení rootkitu na flash disk tohoto subsystému. Díky tomu mohl malware zůstat v počítači nejen při přeformátování pevného disku, ale i při výměně samotného pevného disku. Jedinou šancí, jak se takového rootkitu zbavit, je přepsání flash paměti firmwaru systému UEFI.
operačních systémů | Aspekty|||||
---|---|---|---|---|---|
| |||||
Typy |
| ||||
Jádro |
| ||||
Řízení procesů |
| ||||
Správa a adresování paměti |
| ||||
Nástroje pro načítání a inicializaci | |||||
Shell | |||||
jiný | |||||
Kategorie Wikimedia Commons Wikibooks Wikibooks |