Extensible Firmware Interface ( EFI ) ( angolul - "expandable firmware interface ") - interfész az operációs rendszer és a firmware között , amely a berendezés alacsony szintű funkcióit vezérli, fő célja a berendezés helyes inicializálása a rendszer bekapcsolásakor be, és átadja a vezérlést a rendszerbetöltőre vagy közvetlenül az operációs rendszer kernelére . Az EFI célja a BIOS leváltása , egy olyan interfész, amelyet hagyományosan minden IBM PC-kompatibilis személyi számítógép használ. Az első EFI specifikációt az Intel fejlesztette ki , később a keresztnevet elhagyták, és a szabvány legújabb verzióját Unified Extensible Firmware Interface-nek ( UEFI ) hívják. Az UEFI-t jelenleg az Egységes EFI Fórum fejleszti .
Az EFI-t eredetileg az első Intel-HP Itanium rendszerekhez hozták létre az 1990-es évek közepén . A PC-BIOS korlátait (16 bites futtatható kód, 1 MB címezhető memória, IBM PC/AT hardverkorlátozások stb.) nyilvánvalóan nem engedélyezték azokon a nagy szerverplatformokon, amelyeken az Itaniumot használni tervezték. Az eredeti neve Intel Boot Initiative ( Intel Boot Initiative ), később EFI [1] néven :
Az EFI specifikáció által meghatározott interfész adattáblázatokat tartalmaz, amelyek a platformról, a rendszerindítási és a futásidejű szolgáltatásokról tartalmaznak információkat, amelyek elérhetők az operációs rendszer (OS) betöltője és maga az operációs rendszer számára. Néhány létező BIOS -bővítmény , például az ACPI és az SMBIOS , szintén megtalálható az EFI-ben, mivel nem igényelnek 16 bites futásidejű interfészt.
Az EFI meghatározza a "boot service"-et, amely magában foglalja a szöveges és grafikus konzol támogatását különböző eszközökön, busz-, blokk- és fájlszolgáltatásokat, valamint futásidejű szolgáltatásokat, például dátumot, időt és nem felejtő memóriát.
A szabványos, architektúra-specifikus eszközillesztő-programok mellett az EFI-specifikáció rendelkezik egy platformfüggetlen illesztőprogram-környezetről is, az EFI Byte Code (EBC) néven. Az UEFI specifikációja megköveteli a rendszer firmware -jét, hogy rendelkezzen értelmezővel a környezetbe betöltött vagy betölthető EBC-képekhez. Ebben az értelemben az EBC hasonló az Open Firmware -hez, az Apple Macintosh és Sun Microsystems SPARC számítógépeken használt hardverfüggetlen firmware- hez .
Egyes architektúra-specifikus (nem EBC) EFI-illesztőprogram-típusok rendelkezhetnek interfészekkel az operációs rendszer számára. Ez lehetővé teszi az operációs rendszer számára, hogy az EFI-t használja az alapvető grafikus és hálózati támogatáshoz, mielőtt az operációs rendszer által meghatározott illesztőprogramokat betöltené.
Az EFI rendszerindítás-kezelő az operációs rendszer kiválasztására és indítására szolgál, így nincs szükség dedikált rendszerindítási mechanizmusra (az operációs rendszer betöltő egy EFI-alkalmazás).
A szabványos MBR lemezelrendezés mellett az EFI rendelkezik GPT támogatással , amely mentes az MBR-specifikus korlátozásoktól. Az EFI specifikáció nem tartalmazza a fájlrendszerek leírását, azonban az EFI implementációk általában támogatják a FAT32 fájlrendszert [3] .
Az EFI közösség nyitott shell környezetet hozott létre ( EFI shell ) [4] . A felhasználó betölthet egy EFI-héjat, hogy végrehajtson bizonyos műveleteket az operációs rendszer indítása helyett. A shell egy EFI alkalmazás; állandóan a platform ROM-ban vagy egy olyan eszközön tartózkodhat, amelynek az illesztőprogramjai a ROM-ban vannak.
A shell más EFI-alkalmazások futtatására is használható, mint például a konfiguráció, az operációs rendszer telepítése, a diagnosztika, a konfigurációs segédprogramok és a firmware-frissítések. Használható CD vagy DVD lemezek lejátszására is az operációs rendszer indítása nélkül, feltéve, hogy az EFI alkalmazások támogatják ezeket a funkciókat. Az EFI shell parancsok lehetővé teszik fájlok és könyvtárak másolását vagy áthelyezését a támogatott fájlrendszereken, valamint az illesztőprogramok betöltését és eltávolítását. A shell használhatja a teljes TCP/IP-vermet is.
Az EFI shell támogatja a szkripteket .nsh fájlként , hasonlóan a DOS kötegfájlokhoz . Ebben az esetben a startup.nsh nevű parancsfájl automatikusan végrehajtásra kerül rendszerindításkor.
A shell parancsneveket gyakran a parancssori értelmezőktől öröklik ( COMMAND.COM vagy Unix shell ). Az EFI shell a BIOS parancssori értelmező és szöveges felület funkcionális helyettesítőjeként tekinthető.
Az EFI-bővítmények szinte bármilyen, a számítógéphez csatlakoztatott, nem felejtő tárolóeszközről betölthetők. Például egy OEM eladhat egy olyan rendszert, amelynek a merevlemezén EFI-partíció van, amely extra funkciókat adna az alaplap ROM-jában található EFI-firmware-hez.
Az Intel Platform Innovation Framework for EFI ( oroszul Intel Innovation Toolkit ) az Intel által az EFI-vel közösen kifejlesztett specifikációkészlet. Míg az EFI az operációs rendszer és a firmware közötti interfészt határozza meg, az eszköztár alacsonyabb szinten határozza meg a beágyazott szoftverek létrehozásához használt struktúrákat, mint az operációs rendszer és a firmware közötti interfész.
Az eszközkészlet különösen támogatja a számítógép bekapcsolása utáni inicializálásához szükséges összes lépést. Ezek a belső firmware-képességek nem az EFI specifikáció részeként vannak meghatározva, hanem az UEFI által kifejlesztett platform inicializálási specifikációjában szerepelnek . Az eszközkészletet a következő platformokon tesztelték: Intel XScale , Intel Itanium és IA-32 .
A „régi BIOS” interfészt igénylő x86 operációs rendszerekkel a kompatibilitást támogató modul (CSM) segítségével érhető el. A CSM tartalmaz egy 16 bites programot (CSM16), amelyet a BIOS gyártó valósít meg, és egy réteget, amely a CSM16-ot az eszközkészlethez köti.
Az Intel kifejlesztett egy referencia implementációt az eszközkészlethez, kódnéven "Tiano". A Tiano a beágyazott szoftverek teljes örökségmentes megvalósítása , amely EFI támogatást nyújt. A Tiano nem tartalmazza a CSM 16 bites részét, de biztosítja a BIOS gyártók által megvalósított kiegészítők által megkívánt interfészt. Az Intel nem biztosítja a Tiano teljes megvalósítását a végfelhasználók számára.
A Tiano egy része a TianoCore projekt forráskódjaként jelent meg EFI Developer Kit (EDK) néven [5] . Ez a megvalósítás magában foglalja az EFI-t és néhány hardveres inicializálási kódot, de nem fedi le teljesen a közvetlenül beágyazott szoftver sajátosságait. Számos licencet használtak ehhez a kódhoz, beleértve a BSD licencet és az Eclipse Public License -t .
Az EFI-n, UEFI-n és a műszerspecifikációkon alapuló termékek független BIOS-gyártókon keresztül érhetők el, mint például az American Megatrends (AMI) és az Insyde Software . Egyes gyártói implementációk teljes mértékben a Tiano-n alapulnak, míg mások megfelelnek a specifikációknak, de nem az Intel referenciamegvalósításán [6] .
Az Intel által 2000-ben kiadott Itanium alapú rendszerek támogatták az EFI 1.02-t. A Hewlett-Packard által 2002-ben kiadott Itanium 2 rendszerek támogatták az EFI 1.10-et; elindíthatták a Windowst , a Linuxot , a FreeBSD -t és a HP-UX- t . Minden EFI-kompatibilis firmware-rel kiadott Itanium vagy Itanium 2 rendszernek meg kell felelnie a DIG64 specifikációnak .
2003 novemberében a Gateway bemutatta a Gateway 610 Media Centert, az első Windows-alapú x86 számítógépes rendszert, amely az Insyde Software InsydeH2O eszközkészletén alapuló beágyazott szoftvert használ. A BIOS támogatást a kompatibilitási támogatási modul (CSM) segítségével valósították meg a Windows indításához.
2006 januárjában az Apple Inc. bemutatta az első Intel platformon alapuló Macintosh számítógépeket . Ezek a rendszerek EFI-t és szerszámozást használnak a korábbi PowerPC platformrendszereken használt Open Firmware helyett [7] .
2006. április 5-én az Apple kiadta a Boot Camp csomagot , amely lehetővé teszi Windows XP illesztőprogram-lemez létrehozását, és tartalmaz egy roncsolásmentes lemezparticionáló eszközt is, amely lehetővé teszi a Windows XP telepítését Mac OS X rendszerrel. A firmware frissítése kiadta azt a kiegészített BIOS-támogatást is ehhez az EFI-megvalósításhoz. A későbbi Macintosh modelleket frissített firmware-rel adták ki. Mostantól minden modern Macintosh számítógép képes elindítani a BIOS -kompatibilis operációs rendszereket, mint például a Windows XP, Vista és Windows 7.
Számos Intel alaplap rendelkezik eszközkészlet-alapú firmware-rel[ adja meg ] . Így 2005 folyamán több mint egymillió Intel rendszert adtak ki [8] . 2006-ban kezdték el gyártani az eszközkészletet használó új mobiltelefonokat, asztali számítógépeket és szervereket. Például minden Intel 945 lapkakészletre épülő alaplap használja az eszközkészletet. A gyártott firmware azonban általában nem tartalmaz EFI-támogatást, és a BIOS-támogatásra korlátozódik [9] .
Az EFI-t 2005 óta használják nem PC-s architektúrákban, például az XScale magon alapuló beágyazott rendszerekben [10] .
Az EDK tartalmaz egy NT32 célt, amely lehetővé teszi az EFI firmware és EFI alkalmazások futtatását Windows alkalmazásokon.
2007 - ben a Hewlett-Packard kiadta a 8000-es sorozatú többfunkciós nyomtatót EFI-kompatibilis firmware-rel [11] .
A GPT lemezelrendezésben az EFI ( ESP ) rendszerpartíció EF00 azonosítóval és a FAT32 fájlrendszer tartalmazza a \efi\boot\boot[architektúra neve].efi fájlt , például: \efi\boot\bootx64. efi. Az EFI BIOS rendszerbetöltő betölti és végrehajtja az ilyen fájlokat a számítógépes rendszer architektúrájának megfelelően.
Például egy rendszerindító USB flash meghajtó létrehozásához a Windows rendszerben , csak meg kell jelölnie az USB flash meghajtót a GPT-ben, létre kell hoznia rajta egy aktív partíciót FAT32 fájlrendszerrel és partícióazonosítóval EF00, majd másolja az összes fájlt a CD-ről az operációs rendszer disztribúciója.
Példa GPT lemez létrehozására GNU/Linux operációs rendszerben:
Ezenkívül a legtöbb UEFI -megvalósításban lehetséges a kompatibilitási módban való rendszerindítás MBR-lemezről.
Az Apple nem használ ESP-t a rendszerindításhoz, a bootstrap átadja a vezérlést az NVRAM -ban (BootRom) írt címre: /System/Library/CoreServices/boot.efi a bless segédprogrammal [a felhasználó megváltoztathatja ezt az értéket ugyanazzal a segédprogrammal], vele megtekintheti az aktuális rendszerindító eszközt és a rendszerindítási beállításokat is:
bless --info --getBoot --verbose
A Windows 2000 Itanium verziói (Advanced Server Limited Edition és Datacenter Server Limited Edition) 2002-ben megkapták az EFI 1.1 támogatást.
A Windows Server 2003 for IA-64 , a Windows XP 64 bites és a Windows 2000 Advanced Server Limited Edition az Intel Itanium processzorcsaládhoz támogatja az EFI-t a DIG64 specifikációban [15] erre a platformra meghatározottak szerint .
A Microsoft bevezette az UEFI-támogatást a 64 bites Windows operációs rendszerekben, kezdve a Windows Server 2008 -tól és a Windows Vista Service Pack 1 -től [16] [17] . A Microsoft azt állítja, hogy a hivatalos EFI-támogatás hiánya a 32 bites CPU-kon a PC-gyártók és -szállítók elégtelen támogatásának tudható be. A Microsoft 64 bites operációs rendszerekre való átállása nem teszi lehetővé az EFI 1.10 használatát, mivel az operációs rendszer által igényelt 64 bites processzorbővítéseket a processzorkörnyezet nem támogatja. Az x86-64 támogatást az UEFI 2.0 tartalmazza.
A Microsoft kiadott egy videót Andrew Ritz és Jamie Schwarz közreműködésével, amelyben elmagyarázza az UEFI támogatás megvalósítását a Windows Vista és a Windows Server 2008 rendszerben [ 18] .
Az EFI támogatja a grafikus menüket és néhány szolgáltatást, például az Aptio vagy a Great Wall UEFI által megvalósítottakat [19] .
Az EFI-t kritizálták amiatt, hogy jelentős előnyök nélkül bonyolítja a rendszert [20] , és elhagyta a teljesen nyílt forráskódú alternatív rendszerbetöltőket, mint például az OpenBIOS és a coreboot [21] .
2011-ben a Linux-alapú operációs rendszerek felhasználói és fejlesztői arra figyelmeztettek , hogy a Secure Boot technológia a Microsoft által a Windows 8 rendszerű eszközökön megkövetelt módon történő megvalósítása jelentősen korlátozza ezen eszközök felhasználóinak szabadságát az operációs rendszer kiválasztásában vagy üzemeltetésében [22] [23 ] ] .
2018 szeptemberében egy víruskereső cég jelentést tett közzé a LoJax-ról, az első ismert rootkitről, amelyet valós használatban láttak egy UEFI rendszerhez. A vállalat mérnökei felfedeztek egy esetet, amikor sikeresen legyőzték az SPI alrendszert, és elmentették a rootkitet az alrendszer flash meghajtójára. Ennek köszönhetően a rosszindulatú programok nem csak a merevlemez újraformázásakor maradhatnak a számítógépben, hanem a merevlemez cseréjekor is. Az egyetlen lehetőség, hogy megszabaduljon egy ilyen rootkittől, az UEFI rendszer firmware flash memóriájának felülírása.
Az operációs rendszerek szempontjai | |||||
---|---|---|---|---|---|
| |||||
Típusok |
| ||||
Sejtmag |
| ||||
Folyamatmenedzsment _ |
| ||||
Memóriakezelés és címzés | |||||
Betöltési és inicializálási eszközök | |||||
Héj | |||||
Egyéb | |||||
Kategória Wikimedia Commons Wikikönyvek Wikiszótár |