Monolithische kernel

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Een monolithische kernel is in de informatica een kernel waarbij alle diensten, of het merendeel ervan, door de kernel worden uitgevoerd, dus in supervisormodus. De term monolithisch is afgeleid van de Oud-Griekse woorden monos ("alleen" of "eenzaam") en lithos ("steen" of "gesteente"), dit omdat de kernel het merendeel van de diensten, zoals toegang tot hardware via een bepaalde interface, geheugenbeheer, etc., zelf afhandelt, terwijl dit niet het geval is bij een microkernel, de tegenhanger van de monolithische kernel.

Verschillen met een microkernel[bewerken]

  • Microkernels kennen meer interprocescommunicatie (IPC) doordat de applicaties en drivers met elkaar communiceren, daardoor doet een microkernel meer aan taak- en geheugencontextveranderingen.[bron?]
  • Microkernels zijn stabieler doordat zij taken zoals drivers in gebruikersmodus draaien in plaats van in supervisormodus; hierdoor hebben deze taken minder privileges. Daarenboven is het gebruikelijk dat de I/O beheerd wordt door de kernel.
  • Microkernels zijn kleiner. Hierdoor wordt er minder code geschreven waardoor er minder kans bestaat op typografische fouten of eventueel denkfouten.
  • Microkernels zijn beter uitbreidbaar. Dit komt doordat microkernels standaard alleen het essentiële aanbieden qua functionaliteit, en modulair gebouwd zijn.

Puur en hybride[bewerken]

Heel veel monolithische kernels zijn echter niet geheel monolithisch. Zo laadt Linux bijvoorbeeld de drivers via modules, hoewel deze in supervisormodus gedraaid worden. Hierdoor is het onderscheid tussen puur en hybride ontstaan. Zo zullen veel kernels eerder hybride zijn en dus tussen de twee extrema (monolithisch contra micro) zitten. Pure monolithische kernels zijn vrij zeldzaam op de x86-architectuur, maar ze zijn gebruikelijk op embedded platformen zoals ARM.

Voorbeelden van monolithische kernels[bewerken]

Zie ook[bewerken]