Dators bootprocess

Vad händer när en dator startas? Det är frågan som ska besvaras i denna sida. Att en dator sätts igång innebär att den går i en process som slutar när datoranvändare kan använda datorn.

Boot-processen

Det första som händer när du startar en dator är att maskinens komponenter identifieras och väckas till liv en efter den andra, till exempel processor, minne, hårddisk, grafikkort och andra enheter. Boot-processen kan sammanfattas i följande steg:

  1. Det är nätaggregatet som får startsignalen och ser till att distribuera rätt spänning till olika komponenter. Processorn själv behöver upp till 3 volt och det primära minnet exempelvis DDR4 kräver 1,5 volt. Så låga likspänningar kan inte levereras direkt av nätaggregatet, först ska omvandlas först till 12 volt och därefter till mindre.
  2. När processor och resterande komponenter har satts igång behöver processor ett program som innehåller alla nödvändiga instruktioner. Det programmet kan användas efter att chipset underlättar kommunikationen mellan processor och arbetsminnet samt andra minne såsom ROM (flash-minne, EEPROM) där programmet BIOS finns lagrat. När BIOS och primärminnet kan kontaktas hämtar processorn innehållet i BIOS och lagrar koderna i det primära minnet. BIOS sätts igång och startar POST så att resterande hårdvara identifieras främst grafikkortet så att det kan skickas meddelande till användare, BIOS själv presenterar sig och visar versionen och alternativ till redigering inställningar i BIOS. POST slutar med att lagra i CMOS minnet alla testresultat samt avläst information. Slutligen sätts igång koder som söker efter operativsystemet, det vill säga Bootstrap kod.
  3. Det är nu som operativsystem ska hittas men först ska hårddisken hittas och avläsas dess struktur. Om inte hårddisken hittas så försöker boot-processen hitta en annan media såsom DVD eller USB. Bootstrap koden söker lagringsmedia där ska finnas information på en plats som kallas MBR eller Master Boot Record. I MBR finns information om vart operativsystem finns lagrad, platsen heter Boot Sector. 
  4. När Bootstrap koden hittar Bootsektor kan information om operativsystemet hjälp till att identifiera om det är Windows, Linux eller annat. Ifall det är Windows sätts igång ett annat program, Bootloader som på Windows heter NTLDR. 
  5. NTLDR startar tjänster och ser till att en kopia på operativsystemet flyttas till primära minnet och därefter sätter igång Windows.
  6. NTLDR lämnar över till användare genom att visa en inloggningsruta som användaren själv ska ange inloggningsuppgifter.

I stegen ovan har jag använt i beskrivningen av boot-processen BIOS och MBR, men de är en del av ett äldre system. Dagens datorer utrustas med EUFI istället.

Första gången som termen BIOS kom på tal var i samband med att operativsystemet CP/M utvecklades på 1970-talet. CP/M var avsett för datorer baserade på Intelprocessorerna 8080 och 8085, och inkluderade en startfunktion som har till uppgift att ha direktkontakt med hårdvaran.

BIOS eller UEFI

I BIOS finns en uppsättning med enklare funktioner som tar emot kommandon från annan mjukvara och förmedlar dessa vidare både till datorns interna komponenter och externa tillbehör. Traditionellt sett hanterades all kommunikation mellan hårdvara och mjukvara på det här sättet (i till exempel MS-DOS), men numera har operativsystemen direktkontakt med mjukvaran via egna drivrutiner. BIOS betydelse har med andra ord minskat genom åren och i dagsläget får det mer eller mindre nöja sig med att genomföra vissa grundtester samt starta operativsystemet.

UEFI ansvarar för den inledande bootprocessen och finns lagrat på ett flashminne, men EUFI arbetar på ett annorlunda sätt.

Föregångaren till UEFI heter EFI och initierades av Intel i mitten av 1990-talet. Det användes till en början i itanium-baserade datorer från HP. Allt sedan juni 2005 har EFI tagits in i UEFI -specifikationen som utvecklas av Unified EFI Forum, den samarbetsorganisation som marknadsför och stödjer systemet. I organisationens ledning ingår personer från elva ledande företag inom datorindustrin.

Varför UEFI istället BIOS?

BIOS har funnits länge och har inte utvecklats lika mycket som dator själv, exempelvis är fortfarande i bruk MS-DOS kod vid boot-processen trots att koden har funnits sedan 1980-talet. Den traditionella BIOS har fortfarande begränsningar med dators hårdvara, till exempel den kan bara starta från enheter på 2,1 TB eller mindre. Detta innebär att BIOS kan inte hantera hårddiskar på 3 TB. Denna begränsning beror på hur BIOS: s Master Boot Record-system fungerar.

BIOS måste köras i 16-bitars processorläge och har bara åtkomst till 1 MB lagringsutrymme. Med en så pass litet lagringsutrymme har BIOS problem med att initiera flera hårdvaruenheter samtidigt, vilket leder till en långsammare startprocess. För att övervinna BIOS begränsningar började Intel att arbeta med Extensible Firmware Interface (EFI) -specifikationen redan 1998. Apple valde EFI när de bytte till Intel-arkitekturen på sina Mac-datorer år 2006, men andra PC-tillverkare forsatte att behålla BIOS.

År 2007 enades Intel, AMD, Microsoft och PC-tillverkare om en ny Unified Extensible Firmware Interface (UEFI) standard. Denna nya standard kan starta från enheter på 2,2 TB eller större upp till 9,4 zettabyte. För att hantera så stora hårddiskar använder UEFI en ny partitionsmetod med namn GPT. UEFI användes i Windows med Windows Vista Service Pack 1 och Windows 7. 

UEFI kan köras i 32-bitars eller 64-bitars läge och har mer adresserbart adressutrymme än BIOS, vilket innebär att dators startprocess är snabbare och själv gränssnittet snyggare:

Bild 1: EUFI gränssnitt

I ett sådant gränssnitt kan flera inställningar göras exempelvis grafik och stöd för in-enheter. Detta är dock inte obligatoriskt. Många datorer levereras med UEFI men i ett text-gränssnitt som den gamla BIOS. 

Fördelar med UEFI

UEFI har flera fördelar jämfört med BIOS. Det har stöd för en modulerbar design och det kan skapa en flexibel miljö för exekvering av applikationer innan operativsystemet startar. Det har också stöd för särskilt stora diskar och arkitektur samt drivrutiner är oberoende av processortyp. Det finns dessutom en bakåtkompatibilitet med BIOS.

Vad gäller diskstöd kan UEFI hantera partitioneringsschemat GPT (Guid Partition Table) utöver det vanliga MBR (master boot record). GPT klarar diskar med en storlek på hela 9,4 zettabyte, att jämföra med MBR:s gräns på blygsamma 2,2 terabyte.

Ytterligare en viktig detalj är att UEFI klarar både 32- och 64 bitars processorläge, och det sistnämnda har dessutom stöd för ”long mode”, vilket innebär att applikationer som körs innan operativsystemet startar genom att använda 64-bitars adressering har tillgång till hela datorns minnesmängd.

UEFI är också fylld med andra funktioner såsom Secure Boot, vilket innebär att operativsystemet kan kontrolleras och verifieras att ingen skadlig kod har manipulerat startprocessen. Vid felsökningar tillåter EUFI fjärradministrationen jämfört med BIOS där man måste sitta framför dator vid felsökningar. Egentlige EUFI är ett litet operativsystem som hanterar dators hårdvara. EUFI kan lagras i ett flashminne på moderkortet, i en hårddisk eller på en extern nätverksenhet.

Tveksamhet i branschen

Uefi har varit på tapeten i många år, men vissa moderkortstillverkare är fortfarande tveksamma till att använda det helt. Det beror främst på att UEFI programmeras i C++ medan det är assembler (maskinkod) som gäller för BIOS, och det finns fortfarande många programmerare anställda som är specialister på att finjustera den äldre varianten och som har svårt att gå över till att koda för UEFI. Ytterligare en detalj som fördröjer övergången är att många användare är nöjda med BIOS.

En moderkortstillverkare som verkar ha tagit UEFI till sitt hjärta är MSI. Asus, som är en direkt konkurrent till MSI på moderkortsmarknaden, har just nu inga planer på att kasta ut BIOS från moderkortet som är anpassade för vanliga persondatorer. Däremot experimenterar man en del med UEFI på serversidan, men Asus menar att utvecklingen av UEFI bromsas betydligt eftersom man inte jobbar med öppen källkod. De är dock övertygade om att BIOS förr eller senare måste bytas ut mot något annat i servrar, inte minst på grund av det enbart kan utföra 16-bitars beräkningar.

Processortillverkaren AMD har ingen officiell ståndpunkt när det gäller BIOS och UEFI men antagonisten Intel är desto tydligare. Deras vision är att alla datorer så småningom ska använda UEFI, men eftersom övergången i slutändan styrs av datortillverkarna så är det inget som Intel kan råda över.

UEFI är absolut inte det enda alternativet till bios, men det är utan tvekan det som har den ljusaste framtiden. Cooreboot (som tidigare kallades för Linuxbios), Openbios, Open Firmware är några av konkurrenterna på marknaden men ingen av dessa har fått någon större spridning.

Här nedan en video som förklarar skillnader mellan BIOS och UEFI: