EFI

Allikas: Vikipeedia

EFI (Extensible Firmware Interface) e. laiendatav püsivara liides on spetsifikatsioon, mis korraldab, kuidas tarkvara suhtleb püsivaraga. EFI on asendus vanemale igas IBM tüüpi arvutis olevale BIOSile. Esimese EFI spetsifikatsiooni arendas välja Intel, kuidas alates 2005. aastast lõppes EFI arendamine. Selle asemel hakati arendama UEFI-t (ühtne laiendatav püsivara liides), mis põhines EFI 1.10 -l. UEFI spetsifikatsiooni arendab Unified EFI Foorum, üks tööstusharu hõlmav organisatsioon. UEFI ei ole piiratud ühelegi platvormile ega arhitektuurile ja võib joosta nii traditsioonilise BIOSi asemel kui ka selle peal.

UEFI logo
EFI paiknemine

Ajalugu[muuda | redigeeri lähteteksti]

Mõte EFI-t luua tekkis Inteli Itaniumi-põhiste süsteemide loomise varases faasis, 1990-date aastate keskel. Põhjuseks oli tavapärase BIOSi piiratus (näiteks 16-bitine protsessorirežiim, 1 MB addresseeritavat mälu ja olenemine PC AT riistvarast). Sellist olukorda peeti vastuvõetamatuks suuremõõtmeliste serveriplatvormide jaoks, turunišš, mida Itanium sihtis. Nende murede lahendamiseks algatati 1998. aastal „Intel Boot Initiative“ ja nimetati hiljem ümber EFI-ks. 2005. aasta juuli lõpetas Intel EFI spetsifikatsooni arendamise versiooni 1.10 juures ja andis selle üle Unified EFI Foorumile. Originaalne EFI spetsifikatsioon kuulub ikka veel Intelile, kuid UEFI kuulub Foorumile. UEFI versioon 2.1 avaldati 7. jaanuar 2007, sellega kaasnes krüptograafia tugi ja kasutajaliidese arhitektuur (User Interface Architecture). Oktoober 2010 seisuga on hiliseim versioon UEFI-st 2.3.

Sisu[muuda | redigeeri lähteteksti]

EFI spetsifikatsiooni poolt paika pandud liides sisaldab andmeid platvormi ja käivitamisel olemasolevate teenuste kohta. UEFI püsivara omab mitmeid tehnilisi eeliseid:

EFI buudihalduri ja EFI draiverite suhtus
  • Võimalus käivitada operatsioonisüsteem suuremalt kettalt kui 2TB
  • Kiirem käivitumine
  • Protsessorist mitte olenev arhitektuur
  • Protsessorist mitte olenevad draiverid
  • Paindlik operatsioonisüsteemile eelnev keskkond, sh võrgutugi
  • Modulaarne disain

Osad BIOSile omased täiustused nagu ACPI(progressiivne konfiguratsiooni- ja toiteliides) ja SMBIOS (süsteemihaldus BIOS), on olemas ka EFI-l, kuna nad ei vaja 16-bitist käitusliidest.

Ketta tugi[muuda | redigeeri lähteteksti]

Lisaks tavalisele jaotustabelile, mis kasutab peabuutsektorit (MBR), toetab EFI ka GUID partitsioonitabelit (GPT). GPT ei kannata tavaliste MBR piirangute all, näiteks ei piira GPT partitsioonide arvu (MBR ei toeta üle nelja partitsiooni) ja lubab kuni 9.4 ZB suurust ketast kasutada. EFI spetsifikatsioon ei määra millist failisüsteemi kasutama peaks. Ainukesed Windowsi versioonid, mis toetavad GPT-d on Windows Vista/7 ja Windows Server 2008 ja uuemad.

32/64 bit[muuda | redigeeri lähteteksti]

BIOS on piiratud 16-bitise protsessori režiimi ja 1MB adresseeritava mälu peale, kuna disain põhineb IBM 5150-l, mis kasutas 16-bitist Intel 8080 protsessorit. Selle eest võib UEFI joosta nii 32(x86-32) kui ka 64-bitisena (x86-64 ja Itanium). 64-bitine UEFI lubab operatsioonisüsteemile eelneval keskkonnal kasutada 64-bitist mälu adresseerimist.

Teenused[muuda | redigeeri lähteteksti]

EFI defineerib kahte sorti teenused: käivitusteenused (boot services) ja käitusteenused (runtime services). Käivitusteenuste alla käivad teksti ja graafilise konsooli tugi mitmetel seadmetel, siinidel, blokkidel ja failiteenustel. Käitusteenuste hulka kuuluvad teenused nagu kuupäev, aeg ja NVRAM.

Protokollid[muuda | redigeeri lähteteksti]

EFI defineerib protokollid kui komplekti tarkvaraliideseid, mida kasutatakse suhtlemiseks kahe binaarse mooduli vahel. Kõik EFI draiverid peavad pakkuma teenuseid teistele draiveritele protokollide kaudu.

Draiverid[muuda | redigeeri lähteteksti]

Lisaks standardardsetele arhitektuurile spetsiifilistele draiveritele, lubab EFI kasutada ka protsessori arhitektuurist mitte olenevaid draivereid, mida nimetatakse EFI Byte Code ehk EBC-ks. Süsteemi püsivaralt nõuab UEFI spetsifikatsioon, et tal oleks interpretaator kettal olevate EBC-de lugemiseks. Selles mõttes on EBC sarnane Open Firmware-le, tuntud mitmele platvormile kirjutatud püsivarale, mida kasutavad teiste seas ka PowerPC põhised Macintoshid ja Sun Microsystemsi SPARC arvutid.

Osad arhitektuuri-spetsiifilised (mitte EBC) EFI draiveritüübid võivad omada liideseid, mida kasutatakse operatsioonisüsteemis. See lubab operatsioonisüsteemil lasta EFI-l kuvada lihtsat graafikat, kuni operatsioonisüsteemi draivereid laetakse.

Buudihaldur[muuda | redigeeri lähteteksti]

EFI buudihaldurit kasutatakse ka operatsioonisüsteemi valimiseks ja käivitamiseks, kaotades vajaduse eraldi buudihalduri järgi. Operatsioonisüsteemi buutija on EFI programm.

EFI kest[muuda | redigeeri lähteteksti]

EFI toetab kestakeskkonda. Kesta saab kasutada teiste EFI programmide käivitamiseks.

Laiendused[muuda | redigeeri lähteteksti]

EFI-le saab laiendusi laadida sisuliselt igalt mäluseadmelt. Näiteks saavad originaalseadmete tootjad (OEM-d) seadmele lisada EFI partitsiooni, et pakkuda funktsioone lisaks arvuti püsimälus olevale EFI püsivarale.

Rakendamine ja vastuvõtt[muuda | redigeeri lähteteksti]

Inteli EFI[muuda | redigeeri lähteteksti]

Inteli EFI implementatsioon kannab nime Intel Platform Innovation Framework, kuid on tuntud ka kui „Tiano“. Tiano jookseb Inteli Xscale, Itanium ja IA32 protsessoritel ja on enamuses firmaomane (suletud koodiga). Vaid väike osa Tiano koodist on avaldatud (seda BSD ja EPL litsentsi all) ning kannab nime „TianoCore Project“. Phoenix Technologies müüb praegusel ajal UEFI toega Phoenix SecureCore Tiano ja MicroCore Bios-i.

Platvormid, mis kasutavad EFI-t[muuda | redigeeri lähteteksti]

Inteli esimesed Itaniumil põhinevad tööjaamad ja serverid alates aastast 2000, toetavad EFI 1.02-e.

Hewlett Packardi esimesed Itanuim 2-l põhinevad masinad alates 2002. aastast toetavad EFI 1.10-i. Suudavad buutida nii Windowsit, Linuxit, FreeBSD-d kui ka HP-UX-i. OpenVMS-i tugi tuli 2003. aasta juunis.

2006. aasta jaanuarist alates on kõik Apple Inc-i Inteli põhised Macintosh tüüpi arvutid EFI toega. EFI asendas varasemat Open Firmware-i, millel põhinesid PowerPC tüüpi arvutid. 2006. aasta kevadel lasi Apple välja Boot Camp-i, mis suudab teha Windowsi draiveritega plaadi ja dünaamiliselt kõvaketast partitsioneerida, et installeerida Windows XP ja Vista, ilma Mac OS X-i uuesti installimata. Hiljem lasti välja püsivara uuendus, mis lisas nende EFI implementatsioonile BIOSi toe. Kõik hilisemad Macintoshi mudelid tulevad uuema püsivaraga.

2005. aasta jooksul tarniti üle ühe miljoni Inteli masina, millel oli kaasas Inteli Platform Innovation Framework. Uuemaid mobiilseid tooteid ning servereid ja lauaarvuteid, mis kasutasid Inteli raamistikku, hakati tarnima 2006. aastal. Näiteks, emaplaadid, mis kasutasid Inteli 945 seeria kiibistikku.

EFI-it on alates 2005. aastast implementeeritud ka mitte PC arhitektuuriga toodetesse, näiteks manussüsteemidesse, mis põhinevad XScale tuumadel.

Juba 2008. aastal hakkas EFI laiemat kasutust leidma, eriti x64 arhitektuuriga arvutites. Kuigi paljud neist toetavad siiski veel BIOSist buutimist kasutades Compatibility Support Module-t, et BIOSi-põhiseid operatsioonisüsteeme käivitada. Selle tõttu ei saa kasutajad tihti peale aru, et nende arvuti kasutab UEFI-t. Teised süsteemid on hakanud toetama UEFI-põhist buutimist teises operatsioonisüsteemide jaoks. Näiteks IBM x3450 server, MSI emaplaadid, millel on ClickBIOS ja kõik HP EliteBook süle- ja tahvelarvutid.

2009. aastal hakkas IBM tarnima System X masinaid (x3550 M2, x3650 M2, iDataPlex dx360M2) ja BladeCenter HS22 UEFI toega. Dell omalt poolt hakkas pakuma PowerEdge T610, R610, R710, M610 ja M710 serverid, mis ka toetasid UEFI-t.

Operatsioonisüsteemid[muuda | redigeeri lähteteksti]

(U)EFI spetsifikatsiooni alusel kutsutakse operatsioonisüsteeme, mis toetavad (U)EFI-lt buutmist (U)EFI-st teadlik olevateks operatsioonisüsteemideks. Siin tähendab termin „buuditud (U)EFI-lt“ seda, et buuditi otse (U)EFI laadurist, mida hoiti mõnel mäluseadmel. Standardkoht operatsioonisüsteemi laaduri jaoks on \EFI\BOOT\[arhitektuuri nimi]\boot[arhitektuuri nimi].efi, kus arhitektuuri nimi võib olla näiteks IA32, x64 või IA64. Osad operatsioonisüsteemide tootjad võivad kaasa panna enda operatsioonisüsteemi laaduri. See võib muuta ka laaduri asukohta.

  • Linux on olnud suuteline EFI-lt buutima juba 2000. aastast alates, kasutades elilo EFI buudilaadurit. Hiljuti on hakatud rokhem kasutama GRUB-i EFI versiooni.
  • HP-UX on kasutanud (U)EFI-t oma buudimehhanismina IA64 süsteemides 2002. aastast saati. HP OpenVMS on IA64-l (U)EFI-t kasutanud 2005. aasta algusest, kuid esimest korda kasutati (U)EFI-t hindamiseks toodetud masinatel juba kaks aastat varem.
  • Apple kasutab EFI-t oma Intelil põhinevatel Macintoshidel. Mac OS X v10.4 ja uuemad toetavad EFI 1.10 versiooni 32-bitises režiimis, isegi 64-bitiste protsessoritega. Uuemad Macintosihd aga kasutavad juba 64-bitist EFI-t.
  • Itaniumi versioonid Windows 2000-st (Advanced Server Limited Edition ja Datacenter Server Limited Edition) on EFI-t toetanud juba 2002. aastat saati . Windows Server 2003 IA-64-le, Windows XP 64-bitine versioon Windows Server 2000 Advanced Server Edition, mis kõik põhinevad Inteli Itanium protsessori perekonnal, toetavad EFI-t, kuna see on DIG64 platvormi spetsifikatsiooni järgi nõutud.
  • Microsoft tõi UEFI toe x64 Windowsitele Windows Server 2008 ja Windows Vista Service Pack 1-ga. Microsoft ei paku tuge 32-bitisele UEFI-le, kuna tootjad ei tundnud selle vastu huvi 64-biti populaarsuse tõusu tõttu.

Virtualiseerimise tugi[muuda | redigeeri lähteteksti]

  • Vmware Fusion 3 tarkvara Macintoshile toetab Mac OS X Serveri virtuaalmasinatel EFI kasutamist.

Graafilised funktsioonid[muuda | redigeeri lähteteksti]

EFI toetab graafilisi menüüsi ja funktsioone, näiteks nagu need, mis on implementeeritud Aptios või Great Wall UEFI-s. EFI spetsifikatsioon defineerib kaks erinevat graafika väljundi protokolli. Esimene neist on UGA (Universaalsed Graafika Adapterid), mida toetavad vaid EFI 1.1-st vanemad spetsifikatsioonid. Teine on GOP (Graafilise Väljudi Protokoll), mida kasutatakse praegu. EFI ei paku ega defineeri kasutajaliidest, selle välimus ja implementatsioon oleneb täielikult BIOSi tootjast. Praegusel ajal kasutavad enamus EFI-ga masinaid BIOSile omast kasutajaliidest, aga see ei näita, milleks EFI tegelikult võimeline on.

Kriitika ja riskid[muuda | redigeeri lähteteksti]

Corebooti (avatud lähtekoodiga alternatiiv BIOSile) looja Ronald G. Minnich kritiseeris EFI-t, oletades, et EFI ei ole midagi muud kui katse säilitada intellektuaalset omandit. Põhjuseks tõi ta selle, et EFI ei lahenda BIOSiga kaasnevat probleemi – vaja on kahte erinevat draiverit, ühte püsivarale ja teist operatsioonisüsteemile. Seda vähemalt enamiku riistvara puhul. Mainida tuleb, et avatud lähtekoodiga projekt TianoCore pakub tasuta tööriistu, millega saab teha täiesti vabu ja tasuta püsivarapõhist UEFI-t, kuid sellel puuduvad spetsiaalsed driverid, mis kiibistiku käivitavad. Seetõttu on vaja kasutada väikseid juppe kinnise lähtekoodiga draivereid, mille kiibistiku tootjad teinud on. Kuna UEFI lubab paindlikumalt kaugvõrgubuutimist kui praegused BIOSi tehnoloogiad, on muret tuntud sellega kaasnevate turvariskide pärast.

Viited[muuda | redigeeri lähteteksti]