← Område 6 Uppslag · Kärnan och de två lägena Ordlista

Dator- och nätverksteknik · område 6 · lektion 22

Kärnan och de två lägena

Operativsystemet är inte ett program bland andra. Det är det som bestämmer vad andra program får göra — och gränsen som gör det möjligt är osynlig på varje riktig maskin. Den här sidan går igenom vad kärnan är, var gränsen går, och varför den finns.

1. Vad kärnan är

På lektion 15 slutade startprocessen så här: firmware körde POST, valde en startenhet och läste in en starthanterare. Starthanteraren läste i sin tur in en kärna — på engelska kernel.

Kärnan är den del av operativsystemet som alltid ligger i minnet och som har rätt att göra allt. Den startar inte som ett program bland andra; den är det som startar de andra.

Tre saker den gör, och alla tre kommer tillbaka senare i området:

2. Firmware eller kärna?

De två blandas ihop hela tiden, och det är begripligt: båda kör "under" programmen och båda är osynliga. Skillnaden är var de bor och när de kör.

FirmwareKärnan
Var den finnsI en krets på moderkortetFiler på lagringen, inlästa i minnet
När den körFöre operativsystemetSå länge maskinen är på
Vem den tillhörMaskinvaranOperativsystemet
I kursenOmråde 4, lektion 15 och 16Härifrån och framåt

Firmware slutar när kärnan tar över. Det är hela överlämningen.

3. De två lägena

Processorn kan köra i två lägen, och skillnaden är inte hastighet utan rättigheter.

LägeVem kör därVad som är tillåtet
Användarläge
Ring 3
Webbläsaren, spelet, textredigerarenRäkna, läsa sitt eget minne. Inte röra maskinvaran
Kärnläge
Ring 0
KärnanAllt. Styra maskinvaran direkt, läsa vilket minne som helst
Kärnläge betyder inte snabbare

Det är samma processor. Skillnaden är vad den får göra. Ring 0 och Ring 3 är bara två ord för samma sak — Ring 0 är det mest privilegierade.

4. Systemanropet

Mellan lägena går en behörighetsgräns. Ett vanligt program som vill spara en fil kan inte skriva till disken själv — det får inte. I stället gör det ett systemanrop:

  1. Programmet vill spara en fil, men får inte skriva till disken själv
  2. Det gör ett systemanrop — ber kärnan om saken
  3. Kärnan kontrollerar att det är tillåtet
  4. Kärnan utför det

Varför är det byggt så? Om varje program fick röra maskinvaran direkt skulle ett enda trasigt program kunna skriva sönder en annan användares filer, låsa skärmen eller stänga av maskinen. Gränsen finns för att ett fel ska stanna i det program där det uppstod.

Steg 3 kommer tillbaka

Det är i steg 3 behörigheten prövas. På lektion 25 är det svaret på varför ett standardkonto inte kommer åt administratörens filer: kärnan nekade systemanropet — inte programmet, inte Utforskaren.

De engelska termerna är user mode, kernel mode och system call. De står så i Computer Explorer.

5. De fyra lagren

Ett operativsystem går att rita som fyra lager, uppifrån och ned. Det är den strukturen du byggde i ComputerExplorer → operating-systems → layer-builder.

LagerVad det ärExempel
AnvändarprogramVad användaren serWebbläsare, textredigerare, spel
Bibliotek & systemanropOperativsystemets APIprintf(), malloc(), open()
KärnaDen privilegierade kärnanCPU-schemaläggare, minneshanterare, filsystem, enhetsdrivrutin
HårdvaraDen fysiska maskinenProcessor, minne, disk
Det som fälls oftast

printf() och malloc() hör till Bibliotek & systemanrop, inte till kärnan. De är funktioner ditt program anropar, och de går i sin tur vidare till kärnan när de behöver.

open()-systemanropet hör också dit. Dörren är inte rummet.

6. Vad en virtuell maskin är

En virtuell maskin är ett helt operativsystem som körs som ett program inuti ett annat. Värden är din elevdator med sitt Windows. Gästen är det system du installerar.

Och skälet kursen går över till det nu: ett fel kostar en ny virtuell maskin, aldrig den fysiska disken.

7. Vanliga missuppfattningar

Det som sägsVad som faktiskt gäller
"Kärnan är samma sak som firmware"Firmware sitter i en krets och kör före. Kärnan är filer som läses in i minnet
"Kärnläge betyder snabbare"Samma processor. Skillnaden är rättigheter, inte hastighet
"Ett systemanrop och en fälla är samma sak"Ett systemanrop är att fråga. En fälla är att bli stoppad
"printf() är en del av kärnan"Den är en biblioteksfunktion som anropar kärnan
"Enhetsdrivrutinen är hårdvara"Drivrutinen är kod. Du installerade en i Windows på lektion 19
"En virtuell maskin är väl inget riktigt system?"Den är ett program — och det är hela poängen. Ett program som kör ett helt operativsystem

8. Ordlista

Ordträning

OrdBetyder
KärnaDen del av operativsystemet som alltid ligger i minnet och har rätt att göra allt. Engelska: kernel
FirmwareProgramkod som sitter fast i en krets på kortet och kör innan operativsystemet startat
AnvändarlägeDet läge vanliga program körs i. Får inte röra maskinvaran. Ring 3
KärnlägeDet läge kärnan körs i. Får allt. Ring 0
BehörighetsgränsGränsen mellan de två lägena. Ett program måste gå genom en systemanropsport för att korsa den
SystemanropNär ett program ber kärnan göra något det inte får göra självt. Engelska: system call
CPU-fällaVad som händer när ett program försöker något det aldrig får. Processorn stoppar det
Virtuell maskinEtt helt operativsystem som körs som ett program inuti ett annat
VärdMaskinen och systemet som kör den virtuella maskinen. Här: din elevdator
GästSystemet som körs inuti den virtuella maskinen