Extensible Firmware Interface ( EFI ) ( englanniksi " laajentava laiteohjelmistoliitäntä ") - käyttöjärjestelmän ja laiteohjelmiston välinen liitäntä , joka ohjaa laitteen matalan tason toimintoja, sen päätarkoituksena on alustaa laite oikein, kun järjestelmä käännetään päälle ja siirrä ohjaus käynnistyslataimeen tai suoraan käyttöjärjestelmän ytimeen. EFI on tarkoitettu korvaamaan BIOS , liitäntä, jota perinteisesti käytetään kaikissa IBM PC -yhteensopivissa tietokoneissa. Ensimmäisen EFI-spesifikaation kehitti Intel , myöhemmin etunimi hylättiin ja standardin uusin versio on nimeltään Unified Extensible Firmware Interface ( UEFI ). UEFI:ää kehittää parhaillaan Unified EFI Forum .
EFI luotiin alun perin ensimmäisiä Intel-HP Itanium -järjestelmiä varten 1990-luvun puolivälissä . PC-BIOSin rajoitukset (16-bittinen suoritettava koodi, 1 Mt osoitettava muisti, IBM PC/AT -laitteistorajoitukset jne.) eivät selvästikään olleet sallittuja suurilla palvelinalustoilla, joilla Itanium oli tarkoitettu käytettäväksi. Alkuperäinen nimi on Intel Boot Initiative ( Intel Boot Initiative ), joka nimettiin myöhemmin uudelleen EFI [1] :
EFI-spesifikaation määrittelemä rajapinta sisältää tietotaulukot, jotka sisältävät tietoa käyttöjärjestelmän (OS) lataajan ja itse käyttöjärjestelmän käytettävissä olevista alustasta, käynnistys- ja ajonaikaisista palveluista. Jotkut olemassa olevat BIOS -laajennukset , kuten ACPI ja SMBIOS , ovat myös EFI:ssä, koska ne eivät vaadi 16-bittistä ajonaikaista käyttöliittymää.
EFI määrittelee "käynnistyspalvelut", jotka sisältävät tuen teksti- ja graafiselle konsolille eri laitteissa, väylä-, lohko- ja tiedostopalvelut sekä ajonaikaiset palvelut, kuten päivämäärä, aika ja haihtumaton muisti.
Tavallisten arkkitehtuurikohtaisten laiteajureiden lisäksi EFI-spesifikaatio tarjoaa alustasta riippumattoman ajuriympäristön nimeltä EFI Byte Code (EBC). UEFI-spesifikaatio edellyttää järjestelmän laiteohjelmistoa , jotta sillä on tulkki kaikille ympäristöön ladatuille tai ladattavissa oleville EBC-kuville. Tässä mielessä EBC on samanlainen kuin Open Firmware , laitteistosta riippumaton laiteohjelmisto, jota käytetään Apple Macintosh- ja Sun Microsystems SPARC -tietokoneissa .
Joillakin arkkitehtuurikohtaisilla (ei-EBC-) EFI-ohjaintyypeillä voi olla käyttöliittymän käyttöliittymä. Tämän ansiosta käyttöjärjestelmä voi käyttää EFI:tä perusgrafiikkaan ja verkkotukeen ennen kuin käyttöjärjestelmän määrittämät ohjaimet ladataan.
EFI -käynnistyshallintaa käytetään käyttöjärjestelmän valitsemiseen ja käynnistämiseen, mikä eliminoi erillisen käynnistysmekanismin tarpeen (käyttöjärjestelmän latausohjelma on EFI-sovellus).
Tavallisen MBR - levyasettelun lisäksi EFI:ssä on GPT -tuki , joka on vapaa MBR-kohtaisista rajoituksista. EFI-spesifikaatio ei sisällä kuvauksia tiedostojärjestelmistä, mutta EFI-toteutukset tukevat yleensä FAT32:ta tiedostojärjestelmänä [3] .
EFI - yhteisö on luonut avoimen kuoriympäristön ( EFI shell ) [4] . Käyttäjä voi ladata EFI-kuoren suorittaakseen joitain toimintoja käyttöjärjestelmän käynnistämisen sijaan. Shell on EFI-sovellus; se voi sijaita pysyvästi alustan ROMissa tai laitteessa, jonka ajurit ovat ROMissa.
Shelliä voidaan käyttää muiden EFI-sovellusten, kuten määritysten, käyttöjärjestelmän asennuksen, diagnostiikan, konfigurointiapuohjelmien ja laiteohjelmistopäivitysten suorittamiseen. Sitä voidaan käyttää myös CD- tai DVD-levyjen toistamiseen ilman käyttöjärjestelmän käynnistämistä, mikäli EFI-sovellukset tukevat näitä ominaisuuksia. EFI-kuorikomentojen avulla voit myös kopioida tai siirtää tiedostoja ja hakemistoja tuetuissa tiedostojärjestelmissä sekä ladata ja poistaa ohjaimia. Shell voi myös käyttää täyttä TCP/IP-pinoa.
EFI - kuori tukee komentosarjoja .nsh - tiedostoina , kuten DOS - erätiedostot . Tässä tapauksessa komentosarjatiedosto nimeltä startup.nsh suoritetaan automaattisesti käynnistyksen yhteydessä.
Shell-komentojen nimet peritään usein komentorivilulkeilta ( COMMAND.COM tai Unix-kuori ). EFI-kuori voidaan nähdä toiminnallisena korvaajana BIOS-komentorivitulkille ja tekstiliittymälle.
EFI-laajennukset voidaan ladata melkein mistä tahansa tietokoneeseen liitetystä haihtumattomasta tallennuslaitteesta. OEM-valmistaja saattaa esimerkiksi myydä järjestelmän, jonka kiintolevyllä on EFI-osio, joka lisäisi emolevyn ROM-muistissa olevaan EFI-laiteohjelmistoon lisätoimintoja.
Intel Platform Innovation Framework for EFI ( venäjäksi Intel Innovation Toolkit ) on Intelin yhdessä EFI:n kanssa kehittämä spesifikaatiosarja. Vaikka EFI määrittelee käyttöjärjestelmän ja laiteohjelmiston välisen rajapinnan, työkalupakki määrittelee sulautetun ohjelmiston luomiseen käytettävät rakenteet alemmalla tasolla kuin käyttöjärjestelmän ja laiteohjelmiston välinen rajapinta.
Erityisesti työkalupakki tukee kaikkia vaiheita, jotka ovat tarpeen tietokoneen alustamiseksi sen jälkeen, kun se on käynnistetty. Näitä sisäisiä laiteohjelmiston ominaisuuksia ei ole määritelty osaksi EFI-spesifikaatiota, mutta ne sisältyvät UEFI :n kehittämään alustan alustusmääritykseen . Työkalusarja on testattu alustoilla: Intel XScale , Intel Itanium ja IA-32 .
Yhteensopivuus x86-käyttöjärjestelmien kanssa, jotka edellyttävät "vanhaa BIOS"-liitäntää, saavutetaan käyttämällä Compatibility Support Module (CSM) -moduulia. CSM sisältää 16-bittisen ohjelman (CSM16), jonka BIOS-valmistaja on toteuttanut, ja kerroksen, joka linkittää CSM16:n työkalupakkiin.
Intel on kehittänyt työkalupakkille referenssitoteutuksen, koodinimeltään "Tiano". Tiano on sulautettujen ohjelmistojen täydellinen perintövapaa toteutus, joka tarjoaa EFI-tuen. Tiano ei sisällä CSM:n 16-bittistä osaa, mutta tarjoaa BIOS-toimittajien toteuttamien lisäosien edellyttämät rajapinnat. Intel ei tarjoa Tianon täydellistä toteutusta loppukäyttäjille.
Osa Tianosta on julkaistu lähdekoodina TianoCore-projektille EFI Developer Kit (EDK) -muodossa [5] . Tämä toteutus sisältää EFI:n ja jonkin verran laitteiston alustuskoodia, mutta se ei kata täysin suoraan upotetun ohjelmiston ominaisuuksia. Tälle koodille on käytetty useita lisenssejä, mukaan lukien BSD-lisenssi ja Eclipse Public License .
EFI-, UEFI- ja instrumentointispesifikaatioihin perustuvia tuotteita on saatavana riippumattomien BIOS-valmistajien, kuten American Megatrendsin (AMI) ja Insyde Softwaren kautta . Jotkut toimittajien toteutukset perustuvat kokonaan Tianoon, kun taas toiset ovat määritelmien mukaisia, mutta eivät perustu Intelin referenssitoteutukseen [6] .
Intelin vuonna 2000 julkaisemat Itanium - pohjaiset järjestelmät tukivat EFI 1.02:ta. Hewlett-Packardin vuonna 2002 julkaisemat Itanium 2 -järjestelmät tukivat EFI 1.10:tä; he voisivat käynnistää Windowsin , Linuxin , FreeBSD :n ja HP-UX:n . Kaikkien Itanium- tai Itanium 2 -järjestelmien, jotka julkaistaan EFI-yhteensopivalla laiteohjelmistolla, on oltava DIG64 -spesifikaatioiden mukaisia .
Marraskuussa 2003 Gateway esitteli Gateway 610 Media Centerin, ensimmäisen Windows-pohjaisen x86 - tietokonejärjestelmän, joka käyttää Insyde Softwaren InsydeH2O-työkalupakettiin perustuvaa sulautettua ohjelmistoa. BIOS-tuki toteutettiin Compatibility Support Module (CSM) -moduulilla Windowsin käynnistyksessä.
Tammikuussa 2006 Apple Inc. esitteli ensimmäiset Intel - alustaan perustuvat Macintosh - tietokoneet . Nämä järjestelmät käyttävät EFI:tä ja työkaluja aiemmissa PowerPC-alustajärjestelmissä käytetyn Open Firmwaren sijaan [7] .
Apple julkaisi 5. huhtikuuta 2006 Boot Camp -paketin , jonka avulla voit luoda Windows XP -ohjainlevyn ja sisältää myös tuhoamattoman levyn osiointityökalun, jonka avulla voit asentaa Windows XP:n Mac OS X:n kanssa. Laiteohjelmistopäivitys oli julkaisi myös lisätyn BIOS-tuen tälle EFI-toteutukselle. Myöhemmät Macintosh-mallit julkaistiin päivitetyllä laiteohjelmistolla. Kaikki nykyaikaiset Macintosh-tietokoneet voivat nyt käynnistää BIOS -yhteensopivia käyttöjärjestelmiä, kuten Windows XP, Vista ja Windows 7.
Useissa Intel-emolevyissä on työkalupakkeihin perustuva laiteohjelmisto[ määritä ] . Joten vuonna 2005 julkaistiin yli miljoona Intel-järjestelmää [8] . Työkalusarjaa käyttäviä uusia matkapuhelimia, pöytätietokoneita ja palvelimia alettiin valmistaa vuonna 2006. Esimerkiksi kaikki emolevyt, jotka on rakennettu Intel 945 -piirisarjaan, käyttävät työkalupakkia. Valmistettu laiteohjelmisto ei kuitenkaan yleensä sisällä EFI-tukea, ja se on rajoitettu BIOS-tukeen [9] .
Vuodesta 2005 lähtien EFI:tä on käytetty ei-PC-arkkitehtuureissa, kuten sulautetuissa järjestelmissä, jotka perustuvat XScale -ytimeen [10] .
EDK sisältää NT32-kohteen, jonka avulla EFI-laiteohjelmisto ja EFI-sovellukset voivat toimia Windows-sovelluksissa.
Vuonna 2007 Hewlett-Packard julkaisi 8000-sarjan monitoimitulostimen, jossa on EFI-yhteensopiva laiteohjelmisto [11] .
GPT - levyasettelussa EFI ( ESP ) -järjestelmäosio, jonka tunniste on EF00, ja FAT32 - tiedostojärjestelmä sisältää tiedoston \efi\boot\boot[arkkitehtuurin nimi].efi , esimerkiksi: \efi\boot\bootx64. efi. EFI BIOS -käynnistyslataaja lataa ja suorittaa tällaisen tiedoston tietokonejärjestelmän arkkitehtuurin mukaan.
Jos esimerkiksi haluat luoda käynnistettävän USB-muistitikun Windowsissa , sinun tarvitsee vain merkitä USB-muistitikku GPT:ssä, luoda siihen aktiivinen osio FAT32-tiedostojärjestelmällä ja osion tunnuksella EF00 ja kopioida sitten kaikki tiedostot CD-levyltä käyttöjärjestelmän jakelu.
Esimerkki GPT-levyn luomisesta GNU/Linux-käyttöjärjestelmässä:
Useimmissa UEFI -toteutuksissa on myös mahdollista käynnistää yhteensopivuustilassa MBR-levyltä.
Apple ei käytä ESP:tä käynnistykseen, bootstrap siirtää ohjauksen NVRAM - muistiin (BootRom) kirjoitettuun osoitteeseen: /System/Library/CoreServices/boot.efi bless-apuohjelmalla [käyttäjä voi muuttaa tätä arvoa samalla apuohjelmalla], sen kanssa voit myös nähdä nykyisen käynnistyslaitteen ja käynnistysasetukset:
bless --info --getBoot --verbose
Windows 2000 :n Itanium -versiot (Advanced Server Limited Edition ja Datacenter Server Limited Edition) saivat EFI 1.1 -tuen vuonna 2002.
Windows Server 2003 for IA-64 , Windows XP 64-bit ja Windows 2000 Advanced Server Limited Edition Intel Itanium -suoritinperheelle tukevat EFI:tä sellaisena kuin se on määritelty tälle alustalle DIG64- spesifikaatiossa [15] .
Microsoft esitteli UEFI-tuen 64-bittisissä Windows-käyttöjärjestelmissä Windows Server 2008 :sta ja Windows Vista Service Pack 1 :stä alkaen [16] [17] . Microsoft väittää, että virallisen EFI-tuen puute 32-bittisissä prosessoreissa johtuu PC-valmistajien ja -toimittajien riittämättömästä tuesta. Microsoftin siirtyminen 64-bittisiin käyttöjärjestelmiin ei salli EFI 1.10:n käyttöä, koska prosessoriympäristö ei tue tämän käyttöjärjestelmän edellyttämiä 64-bittisiä prosessorilaajennuksia. x86-64-tuki sisällytettiin UEFI 2.0:aan.
Microsoft julkaisi Andrew Ritzin ja Jamie Schwarzin kanssa videon, jossa selitetään UEFI-tuen käyttöönottoa Windows Vistassa ja Windows Server 2008:ssa [ 18] .
EFI tukee graafisia valikkoja ja joitakin ominaisuuksia, kuten Aption tai Great Wall UEFI:n toteuttamia [19] .
EFI:tä on kritisoitu järjestelmän monimutkaisuuden lisäämisestä ilman merkittäviä etuja [20] ja täysin avoimen lähdekoodin vaihtoehtoisten käynnistyslatainten, kuten OpenBIOSin ja corebootin , luopumisesta [21] .
Vuonna 2011 Linux-pohjaisten käyttöjärjestelmien käyttäjät ja kehittäjät varoittivat , että Secure Boot -tekniikan käyttöönotto Microsoftin vaatimalla tavalla Windows 8 -laitteille rajoittaisi merkittävästi näiden laitteiden käyttäjien vapautta valita tai käyttää käyttöjärjestelmää [22] [23 ] ] .
Syyskuussa 2018 virustorjuntayritys julkaisi raportin LoJaxista, ensimmäisestä tunnetusta UEFI-järjestelmän rootkitistä, joka nähtiin todellisessa käytössä. Yrityksen insinöörit löysivät tapauksen, jossa SPI-alijärjestelmä kukistettiin ja rootkit tallennettiin tämän alijärjestelmän flash-asemaan. Tämän ansiosta haittaohjelmat saattoivat jäädä tietokoneeseen paitsi kiintolevyn alustamisen yhteydessä myös itse kiintolevyn vaihdon yhteydessä. Ainoa mahdollisuus päästä eroon tällaisesta rootkitistä on korvata UEFI-järjestelmän laiteohjelmiston flash-muisti.
Käyttöjärjestelmien näkökohdat | |||||
---|---|---|---|---|---|
| |||||
Tyypit |
| ||||
Nucleus |
| ||||
Prosessien hallinta |
| ||||
Muistinhallinta ja osoitus |
| ||||
Lataus- ja alustustyökalut | |||||
kuori | |||||
Muut | |||||
Luokka Wikimedia Commons Wikikirjat Wikisanakirja |