Vergelijkingstabel
Basis voor vergelijking | microkernel | Monolithische kernel |
---|---|---|
basis- | In microkernel-gebruikerservices en kernel worden services in een aparte adresruimte bewaard. | In de monolithische kernel worden zowel gebruikerservices als kernel-services in dezelfde adresruimte bewaard. |
Grootte | Microkernel zijn kleiner in omvang. | Monolithische kern is groter dan microkernel. |
Uitvoering | Trage uitvoering. | Snelle uitvoering. |
rekbaar | De microkernel is eenvoudig uitbreidbaar. | De monolithische kern is moeilijk uit te breiden. |
Veiligheid | Als een service crasht, heeft dit effect op de werking van de microkernel. | Als een service crasht, crasht het hele systeem in de monolithische kernel. |
Code | Voor het schrijven van een microkernel is meer code vereist. | Voor het schrijven van een monolithische kernel is minder code vereist. |
Voorbeeld | QNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Integrity, PikeOS, HURD, Minix en Coyotos. | Linux, BSD's (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 etc. |
Definitie van Microkernel
Microkernel als een kernel beheert alle systeembronnen. Maar in een microkernel zijn de gebruikersdiensten en de kerneldiensten geïmplementeerd in verschillende adresruimten. De gebruikersdiensten worden bewaard in gebruikersadresruimte en kernelservices worden onder kerneladresruimte gehouden. Dit vermindert de grootte van de kernel en verkleint de omvang van het besturingssysteem verder.
Naast de communicatie tussen applicatie en hardware van het systeem, biedt de microkernel minimale services voor proces- en geheugenbeheer. De communicatie tussen het clientprogramma / de toepassing en de services die worden uitgevoerd in de ruimte voor gebruikersadressen, wordt vastgesteld door middel van het doorgeven van berichten. Ze hebben nooit rechtstreeks contact. Dit vermindert de snelheid van uitvoering van de microkernel.
In een microkernel zijn de gebruikersservices geïsoleerd van de kerneldiensten, dus als een gebruikersservice mislukt, heeft dit geen effect op de kernelservice en dus blijft het besturingssysteem onaangetast . Dit is een van de voordelen van de microkernel. De microkernel is eenvoudig uitbreidbaar . Als de nieuwe services moeten worden toegevoegd, worden ze toegevoegd aan de ruimte voor gebruikersadres en daarom hoeft de kernelruimte niet te worden gewijzigd. De microkernel is ook gemakkelijk draagbaar, veilig en betrouwbaar.
Definitie van Monolithic Kernel
De monolithische kernel beheert de systeembronnen tussen applicatie en hardware van het systeem. Maar in tegenstelling tot microkernel, worden de gebruikersservices en kerneldiensten geïmplementeerd onder dezelfde adresruimte. Dit vergroot de grootte van de kernel en vergroot de omvang van het besturingssysteem.
De monolithische kernel biedt CPU-planning, geheugenbeheer, bestandsbeheer en andere besturingssysteemfuncties via systeemaanroepen. Omdat gebruikerservices en kerneldiensten zich allebei in dezelfde adresruimte bevinden, resulteert dit in het snel uitvoerende besturingssysteem.
Een van de nadelen van de monolithische kernel is dat als een van de services faalt het hele systeem is gecrasht. Als een nieuwe service in de monolithische kernel moet worden toegevoegd, moet het volledige besturingssysteem worden gewijzigd.
Belangrijkste verschillen tussen Microkernel en Monolithic Kernel
- Het basispunt waarop microkernel en monolithische kernel worden onderscheiden, is dat microkernel gebruikersservices en kerneldiensten in verschillende adresruimten en monolithische kernel implementeert, zowel gebruikerservices als kerneldiensten onder dezelfde adresruimte .
- De grootte van de microkernel is klein omdat alleen de kernel-services in de kernel-adresruimte aanwezig zijn. De grootte van de monolithische kernel is echter relatief groter dan die van microkernel, omdat zowel kerneldiensten als gebruikersservices zich in dezelfde adresruimte bevinden.
- De uitvoering van de monolithische kernel is sneller omdat de communicatie tussen applicatie en hardware tot stand wordt gebracht met behulp van de systeemaanroep . Aan de andere kant is de uitvoering van de microkernel traag omdat de communicatie tussen de toepassing en de hardware van het systeem tot stand komt door het doorgeven van berichten .
- Het is eenvoudig om microkernel uit te breiden omdat nieuwe service moet worden toegevoegd in gebruikersadresruimte die geïsoleerd is van kernelruimte, dus de kernel hoeft niet te worden gewijzigd. Het tegenovergestelde is het geval met de monolithische kernel als een nieuwe service in de monolithische kernel moet worden toegevoegd, dan moet de gehele kernel worden aangepast.
- Microkernel is veiliger dan een monolithische kern, alsof een service in de microkernel faalt, het besturingssysteem blijft onaangetast. Aan de andere kant, als een service uitvalt in de monolithische kernel, mislukt het hele systeem.
- Monolithische ontwerp van kernel vereist minder code, wat verder leidt tot minder fouten. Aan de andere kant heeft microkernel ontwerpen meer code nodig die leidt tot meer bugs.
Conclusie:
Microkernel is langzamer, maar veiliger en betrouwbaarder dan een monolithische kernel. Monolithische kernel is snel maar minder veilig omdat een eventuele servicefout kan leiden tot een systeemcrash.