Datorns 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 loggar in på datorn.

Boot-processen

Det första som händer när du startar en dator är att maskinens komponenter identifieras och startas 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 distribuerar rätt spänning till olika komponenter. Processorn kan behöva upp till 3 volt och RAM-minnet upp till 1,5 volt. Så låga likspänningar kan inte levereras direkt av nätaggregatet, först ska omvandlas till 12 volt och därefter till mindre.
  2. När processor och övriga komponenter har startat behöver processorn ett program som innehåller alla nödvändiga instruktioner. Det programmet är BIOS som finns lagrat i ett ROM minne (flash-minne, EEPROM). När BIOS och primärminnet kontaktas via chipset 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 skärmen. BIOS visar versionen och alternativ till inställningar i BIOS. POST slutar sin del i bootprocessen och lagrar alla testresultat i CMOS minnet. Därefter sätter Bootstrap igång koder som söker efter operativsystemet.
  3. Bootstrap startar att söka information på hårddisken, där troligen finns operativsystemet. Om inte hårddisken hittas söker Bootstrap efter någon annan lagringsmedia såsom DVD eller USB. Det Bootstrap letar efter är en plats som heter MBR (Master Boot Record). I MBR finns information där operativsystem finns lagrat, den platsen heter Boot Sector. 
  4. När Bootstrap koden hittar Boot Sector identifieras operativsystemet (Windows, Linux eller annat). Om det är Windows startar Bootloader som i Windows heter NTLDR. 
  5. NTLDR ser till att en kopia av operativsystemet flyttas till primära minnet och därefter startar NTLDR Windows.
  6. NTLDR lämnar bootprocessen över till användare genom att visa en inloggningsruta som användaren 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.