Vad är affären med UEFI?

Det verkar som om det finns två läger, den lilla gruppen människor som bryr sig om UEFI och alla andra som inte märker eller bryr sig så länge som datorn fungerar. Så låt oss prata om vad UEFI är, hur det kom att vara, vad det är lämpligt för, och varför du borde (eller inte) bryr dig.

Vad är uefi?

UEFI betyder Unified Extensible firmware-gränssnitt, en konventionell som innehas av en organisation som kallas United EFI-forumet. Intel kom ut med EFI (Extensible firmware-gränssnitt) och gjorde senare specialpersonalen som UEFI. Som en spec ändras applikationsdetaljer mellan leverantörer och tillverkare, men målet är att presentera en OS Bootloader konventionella och begripliga struktur. Detta gör det mycket enklare att skriva ett operativsystem, eftersom du inte längre behöver oroa dig för allt det orubbliga företaget att faktiskt starta chipset.

Flera IBVs (oberoende BIOS-leverantörer) erbjuder sina implementeringar av UEFI som OEM som producerar moderkort kan licensiera och använda i sina produkter. Några exempel skulle vara AMI, Phoenix och Insyde. Du har sannolikt sett sin logotyp eller bara texten i deras namn blinkar kort på skärmen innan du väljer ditt operativsystem.

Låt oss prata om hur UEFI stövlar. I allmänhet finns det några olika faser. Vi säger vanligtvis att det finns många implementeringar och många av dem gör saker ur spec. Det finns tre allmänna faser: säkerhet och säkerhet (SEC), Pre-EFI Initialization (PEI) och Drive Execution Miljö (DXE). Var och en är ett MINI-operativsystem. Eftersom Intel är den som startade EFI och senare vände den till UEFI, utvecklas mycket av designen runt hur Intel-processorer startar upp. Andra plattformar som armen kan avstå från att göra mycket i sek eller pei-fasen.

Boot-processen för X86-processorer är lite konstigt. De börjar i realt läge (även om de flesta processorer dessa dagar är tekniskt orealistiska), med ett 20-bitars adressutrymme (1 MB adresserbart minne) på bakåtkompatibilitetsskäl. När processorn fortsätter att starta, byter den till säkrat läge och äntligen till långt läge. I ett multikärnsystem, kan alla processorer som kan få en semafor eller läs EAX, och en är betecknad BSP (Bootstrap-processorn). Förlorarna stannar alla tills BSP startar dem genom en IPI (interprocessoravbrott). Vanligtvis finns det ett inbyggt spi-flashchip med firmware mappad i slutet av den fysiska 32-bitars regionen av minnet. Intel-hanteringsmotorn (ME) eller AMD-plattformsäkerhets- och säkerhetsprocessorn (PSP) gör det mesta av SEC-fasen, såsom spolning av cacheminnet och startar processorerna.

När processorerna är igång, har PEI officiellt börjat. På Intelsystem finns det inget system RAM i det mesta av PEI. Detta beror på att minnet måste utbildas och länkar initialiseras innan processorn kan använda dem. Det någonsin hänsynslösa push för mycket mer och mycket mer hastighet från RAM innebär att RAM måste testas, kalibreras och konfigureras på varje boot, eftersom olika RAM-pinnar har andra parametrar. Många system cache dessa parametrar för snabbare starttider, men de behöver vanligtvis ogiltigförklaras och omskolas när RAM-pinnar ålder. PSP hanterar minnesutbildning och förpackning UEFI på några AMD-system innan huvudprocessorn är utdragen. För Intel-system använder de ett knep som heter XIP (exekvera på plats) som vänder de olika cacharna till kortvarig RAM. Det finns bara en liten stapel, en liten mängd heaputrymme, och inga statiska variabler för PEI. Många Intel Server-plattformar är beroende av styrelsens styrkontroll (BMC) för att träna minne, eftersom träning av stora mängder minne tar mycket lång tid.

Efter initialisering av RAM och överföring av innehållet på kortvarigt cache flyttar vi till DXE. DXE-fasen erbjuder två typer av tjänster: boot och körtid. Runtime-tjänster är avsedda att förbrukas av ett operativsystem, tjänster som icke-flyktiga variabler. Boot-tjänster förstörs när ExitBootServices kallas (vanligtvis av OS Loader), men de är tjänster som tangentbordsinmatning och grafiska drivrutiner. BDS (Boot Device Selection) körs i DXE och är hur systemet bestämmer vilken enhet som ska startas (hårddisk, USB, etc.).

Detta har varit en mycket tät och x86 speciell översikt. Många arkitekturer som ARM Eschew UeFi för något mer som Coreboot, Linuxboot eller LK, där det stöter på en liten Linux-kärna som då Kexec är till en mycket större kärna. Men många armplattformar kan också utnyttja UEFI. Bara tiden kommer att berätta vilket sätt branschen rör sig.

Hur det kom att vara

År 2005 ersatte UEFI helt EFI (Extensible Firmware Interface), den konventionella Intel hade lagt fram några år tidigare. EFI lånade många saker från Windows av den perioden, Pecoff Image Formats och UEFI, i sin tur lånade metoder från EFI. Innan EFI fanns det bra gamla BIOS (grundläggande ingångsutgångssystem). Namnet härrörde från CP / M-system 1975. Under den perioden var BIOS ett sätt för att systemet skulle starta och erbjuda ett något jämnt gränssnitt för applikationer bY erbjuder BIOS-avbrott. Telefonsamtalen aktiverade ett program för att komma åt inmatnings- och utgångarna, t.ex. seriella portar, RTC och PCI-bussen. Phoenix och andra omvänd konstruerat det proprietära gränssnittet som IBM producerade för att tillverka IBM-kompatibla maskiner, vilket så småningom ledde till något nära en standard.

Är det bättre än BIOS?

Ja och nej, beroende på ditt perspektiv. Många OS-leverantörer som UEFI eftersom de vanligtvis gör sina liv enklare eftersom de tillhandahållna tjänsterna gör det enkelt att ge en homogen upplevelse uppstart. Linux-samhället, som typiskt talar, är agnostisk i bästa fall och antagonistiskt i värsta fall mot UEFI. BIOS-gränssnittet skjuter 45 år från början av skrivandet och anses vara arv i alla avseenden. En annan punkt i UEFIs hörn är att det underlättar att välja olika boot-gadgets och uppdatera firmware på din maskin. UEFI använder GUID-partitionsbordet (GPT) över Master Boot Record (MBR) – Be om ett plus som MBR är något oflexibelt. Många plattformar som skickas idag är baserade på Open-Source Edk2-projektet från Tianocore, ett genomförande av UEFI som stöder X86, Arm och Riscv.

Den största klagomålet med UEFI är att det är en sluten svart låda med ofattbar tillgång till din dator och stannar lokalt efter datorns stövlar. BIOS är attraktiv eftersom gränssnittet är allmänt känt och är vanligtvis inte bosatt. UEFI kan uppdateras enklare men har också ett mycket viktigare behov av uppdateringar. En UEFI-uppdatering kan helt enkelt tegel. Det kommer inte att starta, och på grund av att de säkringar som blåses på enheten är det praktiskt taget fysiskt omöjligt att fixa det, även för tillverkaren. Betydande mängder testning går in i dessa uppdateringar, men de flesta är tveksamma att driva många uppdateringar på grund av den mängd arbete som krävs.

Varför borde du eller borde inte bry dig

I slutet av dagen bryr du dig om du kan använda din dator för de saker som är nödvändiga för dig. Oavsett om det spelar ett spel, skriver ett mail, eller gör en ny dator, spelar det ingen roll så länge som datorn gör vad du vill ha. Och uppstart är bara ett ofta glömt steg för att göra det hända. Om du bryr dig om att förstå varje enskild kod kör din enhet, måste du spänna in för en lång åktur. Det finns affärer som bibliotek som går på långa längder för att se till att knepiga problem som Memory Init körs i icke-proprietära blobs. Du kan fortfarande ändra UEFI, [Hales] är ett fantastiskt exempel på att tweaking bios av en gammal skola bärbar dator. Open-source-verktyg för inspektion och förståelse Vad som händer under huven blir bättre.

I slutändan är det lika mycket som du bryr dig om startprocessen på din enhet.

Leave a Reply