Kjerne (operativsystem)

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

En kjerne (eng. kernel) er den innerste og viktigste delen av et operativsystem.

Kjernens oppgave er å starte systemet, håndtere ressurstildelingen, samt å kommunisere med maskinvaren. Vanligvis fungerer kjernen som et beskyttende bindeledd mellom maskinvaren og de programmene som kjøres på systemet. Programmene har i alminnelighet ikke direkte tilgang til maskinvaren, men må først gå via kjernen. Kjernen holder til og med programmene adskilte fra hverandre slik at et program som krasjer ikke nødvendighvis drar med seg andre programmer i fallet. For at programmer skal kunne samarbeide med hverandre sørger kjernen også for at disse kan kommunisere med hverandre, enten lokalt på en avskilt datamaskin, eller over et nettverk.

De to vanligste typene operativsystemskjerner er de monolittiske kjernene og mikrokjernene. Monolittiske kjerner bygger på at hele kjernen fungerer som ett sammenvevd program der alle systemets funksjoner finnes inkludert. Linux og FreeBSD er eksempler på operativsystemer som bygger på monolittiske kjerner. Mikrokjerner er bygget opp av et stort antall mindre komponenter som kommuniserer mellom hverandre og tillater at komponenter legges til og tas bort mens systemet eksekveres. Operativsystemene QNX og Mac OS X bygger på mikrokjerner.

En mindre vanlig type kjerne er exokjernen. Tanken bak exokjernene er at operativsystemet ikke skal sørge for noen som helst abstraksjoner – abstraksjonene skal i stedet implementeres som programbiblioteker. Ulike typer programmer krever nemlig ulike typer abstraksjoner. Exokjerner tillater derfor, til forskjell fra de andre kjernene, at vanlige programmer kommuniserer direkte med systemets maskinvare. Exokjernens oppgave blir da redusert til å passe på at programmene bare får tilgang til den delen av maskinvaren de har rett til. Eksempler på operativsystemer som bygger på en exokjerne er Exokernel og Nemesis.