Det virker som om det er to leirer, den lille gruppen mennesker som bryr seg om UEFI og alle andre som ikke ser på eller bryr seg så lenge datamaskinen fungerer. Så la oss snakke om hva UEFI er, hvordan det kom til å være, hva det passer for, og hvorfor du burde (eller ikke burde) omsorg.
Hva er UEFI?
UEFI betyr Unified Extensible Firmware-grensesnitt, en konvensjonell holdt av en organisasjon kjent som United EFI-forumet. Intel kom ut med EFI (utvidbart firmwaregrensesnitt) og senere gjorde den spesifikke publikum som UEFI. Som en spesifikasjon endres applikasjonsdetaljer mellom leverandører og produsenter, men målet er å presentere en OS-bootloaders konvensjonelle og forståelige struktur. Dette gjør det mye enklere å skrive et operativsystem som du ikke lenger trenger å bekymre deg for alt det ryddige selskapet som faktisk starter brikkesettet.
Flere IBVs (uavhengige BIOS-leverandører) tilbyr sine implementeringer av UEFI som OEMer som produserer hovedkort, kan lisensiere og bruke i sine produkter. Noen eksempler ville være AMI, Phoenix og Insyde. Du har sannsynligvis sett sin logo eller bare teksten til navnet sitt kort blinker på skjermen før operativsystemet ditt er riktig støvler.
La oss snakke om hvordan UEFI støvler. Vanligvis er det noen forskjellige faser. Vi sier vanligvis fordi det er mange implementeringer og mange av dem gjør ting ut av spec. Det er tre generelle faser: Sikkerhet og sikkerhet (SEC), Pre-EFI-initialisering (PEI), og drivkjøringsmiljø (DXE). Hver er et mini-operativsystem. Fordi Intel er den som startet EFI og senere ble det til UEFI, er mye av designet utviklet rundt hvordan Intel-prosessorer starter opp. Andre plattformer som arm kan avstå fra å gjøre mye i SEC eller PEI-fasen.
Oppstartsprosessen for X86-prosessorer er litt rart. De starter i ekte modus (selv om de fleste prosessorer i disse dager er teknisk uvirkelige), med en 20-biters adresseplass (1 MB adresserbart minne) for bakoverkompatibilitetsårsaker. Når prosessoren fortsetter å starte opp, bytter den til sikret modus og deretter endelig til lang modus. I et multi-core-system, løp alle prosessorene for å få en semaphore eller lese EAX, og en er betegnet BSP (Bootstrap-prosessoren). Taperne stopper alle til BSP starter dem gjennom en IPI (inter-prosessoravbrudd). Vanligvis er det en ombord SPI-flash-chip med firmware kartlagt i slutten av den fysiske 32-biters landsmegion. Intel Management Engine (ME) eller AMD-plattformsikkerhet og sikkerhetsprosessor (PSP) gjør det meste av SEC-fasen, for eksempel å spyle hurtigbufferen og starte prosessorene.
Når prosessorene er startet, har PEI offisielt begynt. På Intel-systemer er det ingen systemramme i det meste av PEI. Dette skyldes at minne må trent og koblinger initialiseres før prosessoren kan bruke dem. Den alltid hensynsløse presset for mye mer og mye mer fart fra RAM betyr at RAM-en må testes, kalibreres, og konfigureres på hver oppstart som forskjellige RAM-pinner har andre parametere. Tallrike systemer cache disse parametrene for raskere oppstartstider, men de må vanligvis ugyldiggjøre og omskoles som RAM-pinners alder. PSP håndterer minneopplæring og pakker UEFI på noen AMD-systemer før hoved-X86-prosessoren er trukket ut av tilbakestillingen. For Intel-systemer bruker de et triks kalt XIP (utfør plassert på plass) som gjør de forskjellige cachene til kortsiktig RAM. Det er bare en liten stabel, en liten mengde bunkeplass, og ingen statiske variabler for PEI. Tallrike Intel-serverplattformer stole på styret styringskontrolleren (BMC) for å trene minnet, da trening av store mengder minne tar svært lang tid.
Etter initialisering av RAM og overfører innholdet i kortvarig hurtigbuffer, flytting til DXE. DXE-fasen tilbyr to typer tjenester: oppstart og kjøretid. Runtime Services er ment å bli konsumert av et OS, tjenester som ikke-flyktige variabler. Boot Services blir ødelagt når exitbootservices kalles (typisk av OS Loader), men de er tjenester som tastaturinngang og grafiske drivere. BDS (Boot Device Selection) kjører i DXE og er hvordan systemet bestemmer hva som kjører til oppstart (harddisk, USB, etc.).
Dette har vært en veldig tett og x86 spesiell oversikt. Tallrike arkitekturer som arm eschew UEFI for noe mye mer som Coreboot, Linuxboot eller LK, hvor den støvler en liten Linux-kjerne som deretter Kexec er i en mye større kjerne. Imidlertid kan mange armplattformer også utnytte UEFI. Bare tiden vil fortelle hvilken måte bransjen beveger seg.
Hvordan det kom til å være
I 2005 erstattet UEFI fullt ut EFI (utvidbart firmwaregrensesnitt), den konvensjonelle Intel hadde lagt fram noen år før. EFI lånte mange ting fra Windows i den perioden, PeCoff-bildeformater og UEFI, i sin tur lånte metoder fra EFI. Før EFI var det gode gamle BIOS (grunnleggende inngangssystem). Navnet stammer fra CP / M-systemer i 1975. I den perioden var BIOS en måte for systemet å starte opp og gi et noe ensartet grensesnitt for applikasjoner bY tilbyr bios avbryter samtaler. Telefonsamtalene aktiverte et program for å få tilgang til inngangene og utgangene som serielle porter, RTC og PCI-bussen. Phoenix og andre omvendt konstruert det proprietære grensesnittet som IBM produserte for å produsere IBM-kompatible maskiner, som til slutt førte til noe nær en standard.
Er det bedre enn BIOS?
Ja og nei, avhengig av ditt perspektiv. Tallrike OS-leverandører som UEFI fordi de vanligvis gjør sitt liv enklere som tjenestene som tilbys, gjør det enkelt å gi en homogen opplevelse oppstart. Linux-samfunnet, som vanligvis snakker, er agnostisk i beste fall og antagonistisk i verste fall mot UEFI. BIOS-grensesnittet skyver 45 år fra tidspunktet for skriving og anses som arv i alle forstand. Et annet poeng i UEFIs hjørne er at det letter å velge forskjellige oppstartsgadgets og oppdatere fastvaren på maskinen din. UEFI utnytter Guid Partition Table (GPT) over Master Boot Record (MBR) – vurdere et pluss som MBR er noe ufleksibel. Tallrike plattformer som sendes i dag, er basert på Open Source EDK2-prosjektet fra Tianocore, en implementering av UEFI som støtter X86, ARM og Riscv.
Den største klagen med UEFI er at den er en lukket svart boks med ufattelig tilgang til datamaskinen din og forblir lokal etter datamaskinens støvler. BIOS er attraktive fordi grensesnittet er allment kjent og typisk er ikke-bosatt. UEFI kan oppdateres enklere, men har også et mye mye viktigere behov for oppdateringer. En UEFI-oppdatering kan tette systemet helt. Det vil ikke starte opp, og på grunn av sikringene blir blåst på enheten, er det praktisk talt fysisk umulig å fikse det, selv for produsenten. Vesentlige mengder testing går inn i disse oppdateringene, men de fleste er nølende med å skyve mange oppdateringer på grunn av mengden arbeid som kreves.
Hvorfor burde du eller ikke bry deg om
På slutten av dagen bryr du deg om du kan bruke datamaskinen til de tingene som er avgjørende for deg. Enten det spiller et spill, skriver en e-post, eller lager en ny datamaskin, spiller det ingen rolle så lenge datamaskinen gjør det du vil ha. Og oppstart er bare ett ofte glemt trinn i å gjøre det som skjer. Hvis du bryr deg om å forstå hvert eneste stykke kode, kjører enheten din, må du spenne i en lang tur. Det er forretninger som Librem som går lang lengder for å sikre at vanskelige problemer som Memory Init kjører i ikke-proprietære blobs. Du kan fortsatt endre UEFI, [Hales] er et kjempefint eksempel på å tilpasse BIOS av en gammel skole laptop. Åpent kildeverktøy for inspeksjon og forståelse Hva skjer under hetten blir bedre.
Til slutt er det så mye som du om du bryr deg om oppstartsprosessen til enheten din.