Microkernel in Operasysteem: Archistructuur, voordelen
⚡ Slimme samenvatting
Een microkernel is een minimale besturingssysteemkern die alleen essentiële functies – geheugenbeheer, procesplanning en interprocescommunicatie – in de kernelruimte bewaart, terwijl apparaatstuurprogramma's, bestandsservers en andere services afzonderlijk in de gebruikersruimte draaien.
Voordat we Microkernel gaan leren, laten we eerst het volgende begrijpen:
Wat is Kernel?
Een kernel is een belangrijk onderdeel van een besturingssysteem dat de systeembronnen beheert. Het fungeert ook als een brug tussen de software en de hardware van de computer. Het is een van de eerste programma's die na de bootloader wordt geladen bij het opstarten. De kernel is tevens verantwoordelijk voor het bieden van veilige toegang tot de hardware van de machine voor diverse programma's. Daarnaast bepaalt de kernel wanneer en hoe lang een bepaalde applicatie specifieke hardware gebruikt.
Wat is microkernel?
Een microkernel is software of code die de minimaal benodigde functies, gegevens en mogelijkheden bevat om een besturingssysteem te implementeren. Het biedt een minimaal aantal mechanismen, wat voldoende is om de meest basale functies van een besturingssysteem uit te voeren. Het maakt de implementatie van andere onderdelen van het besturingssysteem mogelijk, omdat het niet veel regels oplegt.
Microkernels en hun gebruikersomgevingen worden meestal geïmplementeerd in de C++ or C-programmeertalen met een beetje assemblage. Andere implementatietalen zijn echter mogelijk met wat high-level codering.
Wat is een monolithische kernel?
Een monolithische kernel voert alle basissysteemservices uit, zoals procesmanagementgeheugenbeheer, I/O-communicatie, interruptafhandeling, bestandssysteem, enzovoort, in de kernelruimte.
Bij deze kernelbenadering draait het volledige besturingssysteem als één programma in kernelmodus. Het besturingssysteem is geschreven als een verzameling procedures die aan elkaar gekoppeld zijn tot een groot uitvoerbaar binair programma.
micro kernel Architectuur
Een microkernel is het belangrijkste onderdeel voor een correcte implementatie van een besturingssysteem. Zoals je in het onderstaande diagram kunt zien, voert de microkernel basisfuncties uit zoals geheugenbeheer, procesplanning en communicatie tussen processen.
Op basis van microkernel Operating-systeem
De microkernel is de enige software die op geprivilegieerd niveau wordt uitgevoerd. De andere belangrijke functionaliteiten van het besturingssysteem worden uit de kernelmodus gehaald en draaien in de gebruikersmodus. Deze functionaliteiten kunnen bijvoorbeeld apparaatstuurprogramma's, applicaties, bestandsservers en interprocescommunicatie omvatten.
Componenten van Microkernel
Een microkernel bevat alleen de kernfunctionaliteiten van het systeem. Een component wordt alleen in de microkernel opgenomen als het plaatsen ervan buiten de microkernel de werking van het systeem zou verstoren. Alle andere niet-essentiële componenten moeten in de gebruikersmodus worden geplaatst.
De minimale functionaliteiten die in de microkernel vereist zijn, zijn:
- Geheugen management Mechanismen zoals adresruimtes moeten in de microkernel worden opgenomen. Deze bevat ook functies voor geheugenbescherming.
- Mechanismen voor processorplanning moeten proces- en threadplanners bevatten.
- Communicatie tussen processen beheert de servers die hun eigen adresruimten beheren.
Verschil tussen microkernel en monolithische kernel
| Kenmerken | Monolithische Kernel | micro kernel |
|---|---|---|
| Basic | Het is een groot proces dat in één adresruimte draait. | Het kan worden opgesplitst in afzonderlijke processen die servers worden genoemd. |
| Code | Om een monolithische kernel te schrijven is minder code nodig. | Om een microkernel te schrijven, is meer code nodig. |
| Security | Als een dienst crasht, stort het hele systeem ineen in een monolithische kernel. | Als een service crasht, heeft dit nooit invloed op de werking van een microkernel. |
| Communicatie | Het is een enkel statisch binair bestand. | Servers communiceren via IPC. |
| Voorbeeld | Linux, BSD's, Microsoft Windows (95, 98, Ik), Solaris, OS-9, AIX, DOS, XTS-400, enz. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, Etc. |
Voordelen van Microkernel
Hieronder volgen de voordelen van het gebruik van een microkernel:
- De microkernelarchitectuur is klein en geïsoleerd, waardoor deze beter kan functioneren.
- Microkernels zijn veilig omdat ze alleen die componenten bevatten die anders de functionaliteit van het systeem zouden verstoren.
- De uitbreiding van het systeem is toegankelijker, waardoor het aan de systeemapplicatie kan worden toegevoegd zonder de kernel te verstoren.
- Microkernels zijn modulair opgebouwd, waardoor de verschillende modules vervangen, herladen of aangepast kunnen worden zonder de kernel zelf aan te raken.
- Minder systeemcrashes vergeleken met monolithische systemen.
- De microkernel-interface helpt je een meer modulaire systeemstructuur af te dwingen.
- Nieuwe functies kunnen worden toegevoegd zonder opnieuw te compileren.
- Serverstoringen worden, net als storingen in andere gebruikersprogramma's, ook als een geïsoleerd probleem beschouwd.
- Het microkernelsysteem is flexibel, waardoor verschillende strategieën en API's die door verschillende servers worden geïmplementeerd, naast elkaar in het systeem kunnen bestaan.
- De toegenomen veiligheid en stabiliteit worden bereikt doordat er minder code in kernelmodus draait.
Nadelen van microkernels
Hieronder volgen de nadelen van het gebruik van een microkernel:
- Het leveren van diensten in een microkernelsysteem is duurder dan in een normaal monolithisch systeem.
- Een contextwissel of een functieaanroep is nodig wanneer de stuurprogramma's respectievelijk als procedures of processen zijn geïmplementeerd.
- De prestaties van een microkernelsysteem kunnen onverschillig zijn en tot enkele problemen leiden.


