Monolitische kernel
Een monolitische kernel is het centrale onderdeel van een besturingssysteem dat in een enkel proces is geïmplementeerd, dat daarmee ook in een enkele adresruimte van een computersysteem werkt. Het voordeel van het opnemen van alle kernel functies in een enkel proces is dat het vanuit elke andere kernelfunctie mogelijk is om een afzonderlijke gedefinieerde functie aan te roepen. Dat maakt ontwikkeling en beheer van een dergelijk systeem betrekkelijk eenvoudig.
Met de komst van de multi-processor systemen (SMP: Symmetric Multi-Processing) evolueerde de kernel naar multi-thread versies die parallel op de verschillende processoren kon draaien. De eerste dergelijke kernels "lock"en de essentiele kernel data structuren (bv het complete file systeem) om conflicten met de andere threads te vermijden. Verdere kernel evoluties verfijnden die locks en plaatsten ze op een lager niveau (bv file niveau) om het parallellisme te verbeteren. Sun Solaris was een van de eerste monolitische kernels die het parallellisme verbeterde, en dusdanig de kernel minder monolitisch maakte.
Het verschil met een microkernel is dat in de microkernel alleen de absoluut essentiële kernfuncties van het besturingssysteem zijn opgenomen (dus interrupt afhandeling, scheduling en geheugenbeheer). Minder essentiële functies worden apart gebouwd en niet in de kernelmodus, maar in de gebruikersmodus uitgevoerd.
De huidige Linux versies en Sun Solaris zijn voorbeelden van operating systems met een monolitische kernel. Microsoft Windows is van origine opgebouwd als microkernel systeem, maar in de loop van de tijd zijn diverse niet essentiële functies in de kernel toegevoegd, waardoor een min of meer hybride vorm is ontstaan.
Een boeiende discussie over de voor- en nadelen van de microkernel versus de monolitische kernel vond plaats tussen Linus Thorvalds en Andrew Tanenbaum, de ontwikkelaar van Minix: [[1]]
[bewerk] Voorbeelden van monolitische kernels
- Unix-kernel, waaronder BSD en Solaris
- Linux-kernel
- MS-DOS, Microsoft Windows 9x series (Windows 95, Windows 98 en Windows 98SE) en Windows Me
- Mac OS kernel, tot en met Mac OS 8.6
- OpenVMS