Kernel

Uit Wikipedia, de vrije encyclopedie

Ga naar: navigatie, zoeken

Een kernel is het meest centrale en meest onzichtbare onderdeel van een besturingssysteem, de kern die alle basisvoorzieningen verzorgt voor de andere delen van het besturingssysteem. De kernel omvat onder meer:

  • een voorziening voor de afhandeling van onderbrekingssignalen (interrupt handler), die alle aanvragen en uitvoeringen van invoer/uitvoer-bewerkingen bijhoudt;
  • een scheduler, een soort dienstregeling die bepaalt welk programma op welk moment uitgevoerd mag worden;
  • een geheugenbeheerder, die aan programma's werkgeheugen toewijst en ervoor zorgt dat zij niet elkaars geheugenruimte kunnen beschadigen.

De diensten van de kernel kunnen door andere delen van het besturingssysteem en computerprogramma's worden gebruikt door middel van een verzameling programma-interfaces die meestal system calls oftewel systeemaanroepen genoemd worden.

Inhoud

[bewerken] Microkernels, monolitische- en hybridkernels

Kernels worden onderverdeeld in drie categorieën: microkernels, monolitische kernels en hybride kernels. Ieder type kernel heeft een andere toepassing.

[bewerken] Monolitische kernel

Zie het artikel Monolitische kernel voor het hoofdartikel over dit onderwerp.

Bij een monolitische kernel wordt de complete kernel in één geheugensegment geladen en vanuit dat segment uitgevoerd. Het voordeel hiervan is dat de kernel sneller te ontwikkelen en onderhouden is. Bovendien is de performance van dit type kernel vaak hoger. Een nadeel is de stabiliteit: wanneer een deel van de kernel crasht crasht meestal de hele kernel en daarmee de hele computer. Een ander nadeel is de onmogelijkheid om (een deel van) de kernel te vervangen zonder de pc opnieuw te starten. Linux en FreeBSD zijn twee voorbeelden van monolitische kernelbesturingsystemen.

[bewerken] Microkernel

Zie het artikel Microkernel voor het hoofdartikel over dit onderwerp.

Een microkernel gooit het helemaal over een andere boeg: de diensten die de kernel biedt worden zoveel mogelijk uitgesplitst in verschillende losstaande processen. Elk proces draait in zijn eigen beschermde geheugengebied. De uitsplitsing van diensten bevordert de stabiliteit enorm: wanneer een deel van de kernel crasht draait de rest door. Het gecrashte onderdeel kan vervolgens simpelweg opnieuw worden gestart. Ook is het mogelijk een deel van de kernel te vervangen zonder de computer opnieuw te hoeven starten. Er kleeft echter ook een nadeel aan dit type kernel: complexiteit. Omdat alle kernel-diensten helemaal opzichzelf staan gaat er veel ontwikkeltijd zitten in de onderlinge communicatie. De performance ligt ook meestal lager dan bij een monolitische kernel, omdat er continu moet worden geschakeld tussen de diensten. Voorbeelden van microkernels zijn: QNX, Symbian OS en Machkernel.

[bewerken] Hybride kernel

Zie het artikel Hybride kernel voor het hoofdartikel over dit onderwerp.

Een hybride kernel is een combinatie van bovengenoemde twee kernels die bepaalde eigenschappen van de twee werelden combineert. Hybride kernels zijn doorgaans "gegroeide" microkernels, waarbij er meer functionaliteit in een microkernel is geplaatst. Windows NT, BeOS, Darwin (de kernel van Mac OS X) en DragonFly BSD zijn een paar voorbeelden van hybride kernel besturingsystemen.

Anderzijds werden door de komst van multi-processoren, hyper-thread en multi-core de klassieke (vooral Unix-achtige) kernels verplicht te evolueren naar een hybride kernel teneinde SMP (Symmetric Multi Processing) te ondersteunen. Dit was een van de grote veranderingen toen SUN van SUNOS overstapte naar Solaris rond 1993. De Linux kernels zijn slechts sinds een paar jaar in staat om op een efficiënte manier SMP systemen te draaien.

[bewerken] Zie ook

  • Mach, een in veel systemen gebruikte microkernel.
  • Linux, een populaire monolitische kernel.
  • Windows, een populaire hybride kernel.

 
Persoonlijke instellingen
Boek maken