Unified Extensible Firmware Interface

Unified Extensible Firmware Interface (UEFI) är en implementation i BIOS (Basic Input/Output System) och finns idag i de flesta moderna datorer. BIOS med UEFI har många fler funktioner och möjligheter än de utan och gör system betydligt säkrare och mycket mer avancerade samt mångsidiga.

Många har uppfattningen av att UEFI och BIOS är två separata saker och kallar därefter felaktigt BIOS för UEFI, men det är egentligen så att det fortfarande är ett BIOS med dess legacyfunktioner fast med UEFI implementerat, så det korrekta namnet är fortfarande BIOS.

Alternativ uppfattning

När ett moderkort eller annan hårdvara startar körs dess fasta programvara "firmware". Det finns tre vanliga firmwares för PC-baserade moderkort: BIOS, UEFI och CoreBoot och var och en av dessa är fristående. Ingen av dem ligger ovanpå något annat.

Troligt är att denna missuppfattning delvis har sitt ursprung i artiklar som är uppenbart felaktiga. I många sammanhang står det "UEFI/BIOS" vilket kan tolkas som att det är samma sak när det i själva verket är två separata saker som beskrivs för att nå samma mål.

En annan källa till missuppfattning är att många UEFI-implementeringar levereras med en kompatibilitetsmodul (CMS) som efterliknar samma funktionalitet som BIOS. Men det är fortfarande en annan produkt.[1]

Denna artikel borde börja liknande som den på engelska wikipedia, ungefär "Unified Extensible Firmware Interface (Förenad expanderbart programvarugränssnitt) är en specifikation som definierar arkitekturen för plattformens fasta programvara "firmware" som används för att starta upp datorns hårdvara och dess gränssnitt för interaktion med operativsystemet. UEFI ersätter BIOS som fanns i alla persondatorer som är IBM PC-kompatibla."[2]


UEFI-baserade BIOS är uppbyggda av moduler som är allt från drivrutiner till program, dessa moduler är ofta uppbyggda av flera delar som exempelvis DEPEX, PE32 och UI och modulerna är även komprimerade för att begränsa storleken så att chippet där koden finns inte behöver ha så mycket utrymme då det blir dyrare för tillverkarna. Detta modulsystem möjliggör att man enkelt kan lägga till funktioner eller byta ut och uppgradera modulerna.

De är vanligtvis uppdelade i flera volymer och kallas Firmware Volumes (FV) och dessa innehåller själva modulerna som ofta är uppdelade efter typ. Exempelvis ligger DXE och SMM i en volym och PEI i en annan medan RAW-moduler kan finnas i alla volymer, antalet volymer skiljer sig från BIOS till BIOS.

Numera är dessa volymer ofta inkapslade i en så kallad Capsule (.CAP) som sedan signeras (krypteras) med ett nyckelpar som består av en privat samt en publik nyckel som systemtillverkaren innehar. Detta är en säkerhetsfunktion som gör det mycket svårare att flasha (programmera) ett BIOS där koden har ändrats av obehöriga för att förhindra att skadlig kod läggs till. Vid BIOS-programmeringen märker flashprogrammet genom en rad funktioner att koden har blivit ändrad bland annat genom att kolla att Checksum stämmer och avbryter processen. Det finns dock ofta sätt att kringgå detta exempelvis genom att använda en så kallad SPI-programmerare och programmera chippet externt.

Tekniken från Intel används bland annat av Apple sedan januari 2006. EFI har varit möjlig att använda tillsammans med Linux sedan år 2000. EFI har kritiserats för att inte vara en öppen standard då koden är upphovsskyddad och ej allmänt tillgänglig. MSI lanserade under hösten år 2008 tre moderkort med UEFI.[1][3]

Bakgrund

Intel utvecklade föregångaren eller snarare lade grunden för UEFI med Extensible Firmware Interface (EFI) specifikationen på 90-talet då det behövdes ett BIOS med större möjligheter vid utvecklingen av ett nytt system med en datortillverkare. Intel överlät 2005 utvecklingen till UEFI forumet och det kom istället att kallas för UEFI. Själva EFI-specifikationens rättigheter ägs fortfarande av Intel medan UEFI-specifikationens rättigheter ägs av UEFI-forumet som har utvecklat flera specifikationer sen dess.

Microsoft låser moderkort

Red Hat-utvecklaren Matthew Garrett tog i sin artikel "UEFI secure booting" (UEFI säkerhetsstart) upp farhågorna att UEFI-funktionen "secure boot" (säkerhetsstart) kan påverka Linux (maskiner med Microsofts Windows 8 logo med säkerhetsstartsfunktionen påslagen och som levereras med endast OEM och Microsoftnycklar inte kommer att kunna starta en generell Linuxkopia).[2][4] Som svar fastslog Microsoft att kunder kan slå av funktionen säkerhetsstart (secure boot) i UEFI-gränssnittet.[5][6] Farhågor kvarstod emellertid att en del OEM kommer att utelämna den möjligheten i sina datorer. Senare rapporterades det att Microsoft uppenbarligen hindrade att möjligheten implementerades för att slå av säkerhetsstart på ARM-baserade datorer.[7][8]

Joshua Gay från Free Software Foundation (FSF) uttryckte farhågor för hur datortillverkare kan komma att implementera UEFI-funktionen säkerhetsstart ("secure boot") och FSF deklarerade i ett offentligt uttalande[9], öppet för underskrift, att:

Vi, som skrivit under, uppmanar alla datortillverkare som implementerar UEFI:s så kallade "Secure Boot" att göra det på ett sätt som gör det möjligt för fria operativsystem att installeras. För att respektera användarnas frihet och verkligen skydda säkerheten för användarna, måste tillverkare antingen tillåta datorägare att deaktivera startrestriktioner eller tillhandahålla ett bergsäkert sätt för dem att installera och använda fria operativsystem som de väljer. Vi förbinder oss att varken köpa eller rekommendera datorer som tar bort denna avgörande frihet från användarna, och vi kommer aktivt att uppmana i våra gemenskaper att undvika sådana inlåsta system. (översatt från engelska)

I december 2011 släppte Microsoft ett dokument om certifiering av hårdvara om OEM produkter, "Windows Hardware Certification Requirements" (Windows hårdvarucertifikationskrav),[10] som bekräftar att de avser att bannlysa möjligheten att installera alternativa operativsystem på ARM-baserade enheter som kör Microsoft Windows 8. Dokumentet insisterar på krav att x86 och x86-64 enheter skall ha "Secure UEFI" (säker UEFI) påslaget. De tillåter möjligheten att anpassat säkerhetsstartsläge eller deaktivering av säker startprocedur på ARM-enheter inte kommer att vara kompatibelt med att köra Microsoft Windows.[7]

Se även

  • Unified EFI Forum – företagsgrupp med uppgift att utveckla EFI
  • coreboot (f.d. LinuxBIOS) – fritt alternativ till UEFI och BIOS

Referenser

  1. ^ [a b] sweclockers.com - Första moderkortet med EFI, 2008-07-16
  2. ^ [a b] Garrett, Matthew. ”UEFI secure booting”. http://mjg59.dreamwidth.org/5552.html. Läst 20 september 2011. 
  3. ^ Review bit-tech.net - MSI Click BIOS - Evaluating UEFI, 2009-01-11
  4. ^ Garrett, Matthew. ”UEFI secure booting”. http://mjg59.dreamwidth.org/5850.html. Läst 23 september 2011. 
  5. ^ . The Register. 23 september 2011. http://www.theregister.co.uk/2011/09/23/ms_denies_uefi_lock_in/. Läst 24 september 2011. 
  6. ^ ”Protecting the pre-OS Environment with UEFI”. Microsoft. 22 september 2011. http://blogs.msdn.com/b/b8/archive/2011/09/22/protecting-the-pre-os-environment-with-uefi.aspx. Läst 24 september 2011. 
  7. ^ [a b] ”Microsoft confirms UEFI fears, locks down ARM devices - SFLC Blog - Software Freedom Law Center”. Softwarefreedom.org. 12 januari 2012. http://www.softwarefreedom.org/blog/2012/jan/12/microsoft-confirms-UEFI-fears-locks-down-ARM/. Läst 6 mars 2012. 
  8. ^ ”Is Microsoft Blocking Linux Booting on ARM Hardware? - Open Enterprise”. Blogs.computerworlduk.com. Arkiverad från originalet den 9 mars 2012. https://web.archive.org/web/20120309162902/http://blogs.computerworlduk.com/open-enterprise/2012/01/is-microsoft-blocking-linux-booting-on-arm-based-hardware/index.htm. Läst 6 mars 2012. 
  9. ^ ”Will your computer's "Secure Boot" turn out to be "Restricted Boot"?”. Free Software Foundation. https://www.fsf.org/campaigns/secure-boot-vs-restricted-boot. Läst 1 juni 2015. 
  10. ^ ”Arkiverade kopian”. Arkiverad från originalet den 11 juni 2014. https://web.archive.org/web/20140611164700/http://download.microsoft.com/download/A/D/F/ADF5BEDE-C0FB-4CC0-A3E1-B38093F50BA1/windows8-hardware-cert-requirements-system.pdf. Läst 24 april 2014.