Kernel
Hvad er en kernel?
En kernel (også kaldet en kerne) er den centrale del af et operativsystem, som ligger mellem computerens hardware og de programmer, man bruger til daglig. Kernel har direkte adgang til processor, hukommelse og øvrige komponenter, og den sørger for, at alle programmer kan bruge disse ressourcer uden selv at skulle kende hardwarens tekniske detaljer. Man kan sammenligne kernel med en slags trafikstyring, der fordeler adgangen til computerens ressourcer mellem de mange processer, der kører samtidig.
Et konkret eksempel: Når man åbner et dokument i Word, sender programmet en anmodning videre til kernel om at hente filen fra harddisken. Kernel styrer selve læsningen fra disken, afsætter den nødvendige plads i hukommelsen og giver derefter kontrollen tilbage til Word, så teksten kan vises på skærmen. Programmet selv rører aldrig ved hardwaren direkte — det er altid kernel, der formidler kontakten.
Hvad bruges kernel til?
Kernel har en række centrale funktioner, som tilsammen holder et system kørende stabilt og sikkert:
- Procesplanlægning: Kernel bestemmer, hvilket program der får adgang til processoren, og hvor længe, så flere programmer kan opleves som kørende samtidig.
- Hukommelseshåndtering: Kernel tildeler og frigiver hukommelse til de enkelte programmer og sørger for, at ét program ikke kan læse eller overskrive et andet programs data.
- Enheds- og driverhåndtering: Kernel kommunikerer med drivere til fx grafikkort, netværkskort og lagerenheder som en SSD harddisk, så programmer kan bruge hardwaren via et ensartet interface.
- Filsystem og input/output: Kernel styrer, hvordan filer læses og skrives, og formidler data mellem programmer og fx netværket eller lagerenheder.
- Sikkerhed og adgangskontrol: Kernel adskiller almindelige programmer (brugertilstand) fra selve operativsystemets kerne (kerneltilstand), så en fejl i ét program i mange tilfælde ikke får hele systemet til at gå ned.
Denne opdeling mellem brugertilstand og kerneltilstand er central. Når et program vil gemme en fil eller sende data over netværket, foretager det et såkaldt systemkald — en kontrolleret anmodning, der sendes videre til kernel. Kernel tjekker rettigheder, udfører den ønskede handling og returnerer derefter resultatet til programmet.
Kernel er ikke det samme som operativsystemet
I daglig tale bruges “kernel” og “operativsystem” ofte i flæng, men de dækker strengt taget ikke det samme. Kernel er den privilegerede kerne, som alt andet bygger på, mens et operativsystem også omfatter brugerflade, systemværktøjer, biblioteker og baggrundstjenester ovenpå kernel. Både computere, servere og mindre enheder som en Raspberry Pi har hver deres kernel, uanset om operativsystemet ovenpå er meget forskelligt.
Forskellige typer af kernel
Der findes flere overordnede designs af kernel, som løser den samme opgave på forskellig vis:
- Monolitisk kernel: Kerneservices og de fleste drivere samles i én stor enhed, hvilket typisk giver god ydeevne. Linux-kernen er et kendt eksempel.
- Mikrokernel: Selve kernen holdes så lille som muligt, mens flere tjenester flyttes uden for kernen for at isolere fejl bedre.
- Hybrid kernel: En blanding, hvor nogle funktioner ligger inde i kernen af hensyn til hastighed, mens andre holdes uden for af hensyn til stabilitet. Windows og macOS bruger begge en hybrid tilgang.
Uanset design har alle kerner samme overordnede formål: at styre hardwaren pålideligt og hurtigt, samtidig med at programmer holdes adskilt fra hinanden.
Hvad sker der ved opstart, og hvad er en kernel panic?
Ved opstart af en computer indlæser bootloaderen kernel i hukommelsen, hvorefter kernel initialiserer hardware og drivere, monterer lagerplads og starter den første proces, som resten af systemet bygger videre på. Herefter kører kernel i baggrunden resten af tiden, mens systemet er tændt.
Hvis der opstår en alvorlig fejl inde i selve kernel — fx en kritisk driverfejl — stopper operativsystemet ofte helt i stedet for at risikere at ødelægge data. På Unix-lignende systemer kaldes dette en kernel panic, mens Windows viser en stopfejl, populært kendt som “det blå skærmbillede”. Det opleves dramatisk, men er reelt en sidste sikkerhedsforanstaltning, der skal beskytte filer og data.
Kernel i mobiltelefoner og andre enheder
Kernel findes ikke kun i computere og servere. Smartphones, spilkonsoller, routere og smart-tv kører typisk også et operativsystem med en kernel under overfladen. Android bygger for eksempel på en tilpasset udgave af Linux-kernen, mens iOS bruger en hybrid kernel kaldet XNU. Princippet er det samme som på en almindelig computer: kernel styrer adgangen til processor, hukommelse og de fysiske komponenter i enheden.