Wat is Kernel in een besturingssysteem en wat zijn de verschillende soorten Kernels?

Wat is Kernel in Operating System en wat zijn de verschillende soorten Kernel?

Een Kernel is een computerprogramma dat het hart en de kern vormt van een Operating System. Aangezien het Besturingssysteem dus controle heeft over het systeem, heeft de Kernel ook controle over alles in het systeem. Het is het belangrijkste onderdeel van een Besturingssysteem. Telkens wanneer een systeem opstart, is de Kernel het eerste programma dat geladen wordt na de bootloader omdat de Kernel de rest van het systeem moet afhandelen voor het Operating System. De Kernel blijft in het geheugen totdat het Operating System wordt afgesloten.

De Kernel is verantwoordelijk voor taken op laag niveau, zoals schijfbeheer, geheugenbeheer, taakbeheer, enz. Het vormt de interface tussen de gebruiker en de hardwarecomponenten van het systeem. Wanneer een proces een verzoek doet aan de Kernel, dan heet dat een System Call.

Een Kernel is voorzien van een beschermde Kernel Space, dat is een apart gebied van het geheugen en dit gebied is niet toegankelijk voor andere applicatie programma’s. De code van de Kernel wordt dus in deze beschermde Kernel Space geladen. Afgezien hiervan wordt het geheugen dat door andere toepassingen wordt gebruikt, de gebruikersruimte genoemd. Aangezien dit twee verschillende ruimten in het geheugen zijn, verloopt de communicatie tussen beide wat trager.

Functies van een Kernel

Volgende zijn de functies van een Kernel:

  • Toegang tot computerbronnen: Een Kernel heeft toegang tot verschillende computerbronnen zoals de CPU, I/O-apparaten en andere bronnen. Het fungeert als een brug tussen de gebruiker en de bronnen van het systeem.
  • Resource Management: Het is de taak van een Kernel om de bronnen te verdelen tussen verschillende processen op een zodanige manier dat er uniforme toegang tot de bronnen is door elk proces.
  • Geheugenbeheer: Elk proces heeft wat geheugenruimte nodig. Dus, geheugen moet worden toegewezen en gedesalloceerd voor de uitvoering ervan. Al dit geheugenbeheer wordt gedaan door een Kernel.
  • Apparaatbeheer: De perifere apparaten die in het systeem zijn aangesloten, worden door de processen gebruikt. Dus, de toewijzing van deze apparaten wordt beheerd door de Kernel.

Kernel Mode en User Mode

Er zijn bepaalde instructies die alleen door de Kernel moeten worden uitgevoerd. De CPU voert deze instructies dus alleen in de Kernel Modus uit. Geheugenbeheer moet bijvoorbeeld alleen in de Kernel-Modus worden gedaan. Terwijl in de Gebruikersmodus de CPU de processen uitvoert die door de gebruiker in de Gebruikersruimte zijn gegeven.

Typen Kernel

In het algemeen zijn er vijf typen Kernel. Deze zijn:

1. Monolithische Kernels

Monolithische Kernels zijn die Kernels waarbij de gebruikersdiensten en de kerneldiensten in dezelfde geheugenruimte zijn geïmplementeerd, d.w.z. dat er in dit geval geen verschillend geheugen voor gebruikersdiensten en kerneldiensten wordt gebruikt. Hierdoor wordt de omvang van de Kernel groter en dit vergroot op zijn beurt de omvang van het Operating System. Omdat er geen aparte User Space en Kernel Space is, zal de uitvoering van het proces sneller zijn in Monolithic Kernels.

Voordelen:

  • Het biedt CPU scheduling, memory scheduling, file management via alleen System calls.
  • Uitvoering van het proces is snel omdat er geen aparte geheugenruimte is voor user en kernel.

Voordelen:

  • Als een service faalt, leidt dat tot systeemfalen.
  • Als er nieuwe services moeten worden toegevoegd, moet het hele besturingssysteem worden aangepast.

2. Microkernel

Een Microkernel verschilt van een monolithische kernel omdat in een Microkernel de gebruikersdiensten en de kerneldiensten in verschillende ruimten zijn geïmplementeerd, d.w.z. we gebruiken User Space en Kernel Space in het geval van Microkernels. Omdat we de gebruikersruimte en de kernelruimte afzonderlijk gebruiken, wordt de kernel kleiner, waardoor het besturingssysteem kleiner wordt.

Als we verschillende ruimtes gebruiken voor gebruikersdiensten en kerneldiensten, wordt de communicatie tussen de toepassing en de diensten uitgevoerd met behulp van berichtenparsing, waardoor de snelheid van de uitvoering afneemt.

Voordelen:

  • Als er nieuwe services moeten worden toegevoegd, kunnen deze eenvoudig worden toegevoegd.

Voordelen:

  • Omdat we de gebruikersruimte en de kernelruimte afzonderlijk gebruiken, kan de communicatie tussen deze twee de totale uitvoeringstijd verkorten.

3. Hybride kernel

Een hybride kernel is een combinatie van zowel een monolithische kernel als een microkernel. Het maakt gebruik van de snelheid van de monolithische kernel en de modulariteit van de microkernel.

Hybride kernels zijn microkernels die wat “niet-essentiële” code in de kernelruimte hebben staan om de code sneller te laten werken dan in de gebruikersruimte het geval zou zijn. Dus, sommige diensten zoals de netwerk stack of het bestandssysteem draaien in Kernel-ruimte om de prestatie overhead te verminderen, maar toch draait de kernel code als servers in de gebruikers-ruimte.

4. Nanokernel

In een Nanokernel, zoals de naam al doet vermoeden, is de hele code van de kernel erg klein, d.w.z. de code die in de bevoorrechte modus van de hardware wordt uitgevoerd is erg klein. De term nanokernel wordt gebruikt om een kernel aan te duiden die een nanoseconde klokresolutie ondersteunt.

5. Exokernel

Exokernel is een Operating System kernel die is ontwikkeld door de MIT parallel en de Distributed Operating Systems groep. In dit type kernel is de bescherming van de bronnen gescheiden van het beheer, en dit leidt er weer toe dat we toepassingsspecifieke aanpassingen kunnen uitvoeren.

In de Exokernel is het niet de bedoeling om alle abstracties te implementeren. Maar het idee is om zo weinig mogelijk abstracties op te leggen en door dit te doen moet de abstractie alleen worden gebruikt wanneer dat nodig is. Er zal dus geen dwangmatige abstractie zijn in Exokernel en dit is de eigenschap die het verschillend maakt van een Monolithische Kernel en Microkernel. Maar het nadeel hiervan is het complexe ontwerp. Het ontwerp van de Exokernel is zeer complex.

Dat was het voor deze blog. Hopelijk heeft u genoten van deze blog.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *