Wat is een kernel in computers?
In de meeste computerbesturingssystemen is de kernel het centrale onderdeel. Het is de brug tussen de gebruiker en applicaties en de computerhardware. Het is ook het mechanisme waarmee de computer meerdere gebruikers en meerdere taken tegelijkertijd kan verwerken. De soorten kernels zijn de monolithische kernel, de microkernel, de hybride kernel, de nanokernel en de exokernel.
De kernel beheert alle systeembronnen van de computer. Dit omvat langdurige opslag, de centrale verwerkingseenheid (CPU), kortetermijngeheugen en de invoer- en uitvoerapparaten. Wanneer een toepassing een van deze bronnen nodig heeft, stelt de kernel de bron beschikbaar en voltooit het de aanvraag.
Door deze omgang met middelen kunnen de besturingssystemen zowel multi-user als multitasking zijn. Het besturingssysteem voert eigenlijk niet meer dan één taak tegelijk uit. In plaats daarvan schakelt de kernel taken zo snel uit dat de computer meerdere taken lijkt uit te voeren. De kernel is ook verantwoordelijk om ervoor te zorgen dat bronnen die door een gebruiker of proces worden gebruikt, het verzoek van een andere gebruiker of proces niet schenden.
Er zijn twee hoofdtypen kernels: de monolithische kernel en de microkernel. Monolithische kernels maken gebruik van een supervisiemethode voor bronbeheer waarbij alle besturingssysteemservices worden uitgevoerd in dezelfde adresruimte, de kernelruimte genoemd. Sommige monolithische kernels kunnen uitvoerbare modules laden en ontladen. Dit breidt de mogelijkheden van het besturingssysteem uit en behoudt tegelijkertijd een minimale hoeveelheid code die in de kernelruimte wordt uitgevoerd.
Microkernels voeren alleen de minimale hoeveelheid besturingssysteemservices uit, zoals geheugenbeheer, threadbeheer en communicatie tussen processen in de kernelruimte. Alle andere services, zoals stuurprogramma's, gebruikersinterfaces en bestandsbeheer, worden uitgevoerd in de gebruikersruimte. De microkernel minimaliseert de hoeveelheid code die wordt uitgevoerd in de kernelmodus aanzienlijk.
Een hybride kernel is een combinatie van monolithische en microkernels. De meeste systeemservices van het besturingssysteem worden uitgevoerd in de kernelruimte, zoals een monolithische kernel. Er zijn andere services, zoals het bestandssysteem en het venstersysteem, die in de gebruikersruimte worden uitgevoerd.
De andere kernelsoorten zijn de nanokernel en de exokernel. De nanokernel gebruikt stuurprogramma's voor bijna alle services. De exokernel gebruikt programma's om fysieke middelen toe te wijzen.