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:
- Delar ut processorn mellan program som verkar köras samtidigt — lektion 26
- Delar ut minnet, och ger varje program en egen bild av det — lektion 26
- Avgör vem som får röra vad — lektion 25
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.
| Firmware | Kärnan | |
|---|---|---|
| Var den finns | I en krets på moderkortet | Filer på lagringen, inlästa i minnet |
| När den kör | Före operativsystemet | Så länge maskinen är på |
| Vem den tillhör | Maskinvaran | Operativsystemet |
| I kursen | Område 4, lektion 15 och 16 | Hä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äge | Vem kör där | Vad som är tillåtet |
|---|---|---|
| Användarläge Ring 3 | Webbläsaren, spelet, textredigeraren | Räkna, läsa sitt eget minne. Inte röra maskinvaran |
| Kärnläge Ring 0 | Kärnan | Allt. Styra maskinvaran direkt, läsa vilket minne som helst |
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:
- Programmet vill spara en fil, men får inte skriva till disken själv
- Det gör ett systemanrop — ber kärnan om saken
- Kärnan kontrollerar att det är tillåtet
- 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.
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.
| Lager | Vad det är | Exempel |
|---|---|---|
| Användarprogram | Vad användaren ser | Webbläsare, textredigerare, spel |
| Bibliotek & systemanrop | Operativsystemets API | printf(), malloc(), open() |
| Kärna | Den privilegierade kärnan | CPU-schemaläggare, minneshanterare, filsystem, enhetsdrivrutin |
| Hårdvara | Den fysiska maskinen | Processor, minne, disk |
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.
- Den virtuella disken är en fil på din riktiga disk
- Den startar mot en installationskälla precis som en fysisk maskin
- Gästen får sin egen kärna och sina egna två lägen — allt på den här sidan, en gång till, i ett fönster
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ägs | Vad 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
| Ord | Betyder |
|---|---|
| Kärna | Den del av operativsystemet som alltid ligger i minnet och har rätt att göra allt. Engelska: kernel |
| Firmware | Programkod som sitter fast i en krets på kortet och kör innan operativsystemet startat |
| Användarläge | Det läge vanliga program körs i. Får inte röra maskinvaran. Ring 3 |
| Kärnläge | Det läge kärnan körs i. Får allt. Ring 0 |
| Behörighetsgräns | Gränsen mellan de två lägena. Ett program måste gå genom en systemanropsport för att korsa den |
| Systemanrop | När ett program ber kärnan göra något det inte får göra självt. Engelska: system call |
| CPU-fälla | Vad som händer när ett program försöker något det aldrig får. Processorn stoppar det |
| Virtuell maskin | Ett helt operativsystem som körs som ett program inuti ett annat |
| Värd | Maskinen och systemet som kör den virtuella maskinen. Här: din elevdator |
| Gäst | Systemet som körs inuti den virtuella maskinen |