En mikrokärna ( eng. microkernel ) eller μ-kärna ( eng. μ-kärna ) är en operativsystemkärna som implementerar en minimal uppsättning funktioner.
Arbetet med mikrokärnan utförs på samma sätt som med de monolitiska kärnan- genom systemanropen .
Mikrokärnor tillhandahåller endast en liten uppsättning lågnivåprimitiver/mekanismer/tjänster för:
Andra primitiver/funktioner/komponenter/tjänster/moduler, till exempel:
körs i användarutrymmet som separata processer , interagerar med kärnan med hjälp av systemanrop , kommunicerar med varandra med hjälp av IPC . I ett monolitiskt kärnoperativsystem körs dessa komponenter i kärnutrymmet som kärntrådar .
På x86 - arkitekturprocessorer används så kallat ringskydd . Användarutrymmesprocesser fungerar på den tredje ringen ( ring 3 ) och kan inte utföra vissa åtgärder som är tillgängliga på nollringen ( ring 0 ) . Ett fel i en process för användarutrymme kommer i värsta fall att göra att processen avslutas.
Fördelar med ett OS byggt på en mikrokärna jämfört med ett OS byggt på en monolitisk kärna :
Nackdelar med ett operativsystem byggt på en mikrokärna jämfört med ett operativsystem byggt på en monolitisk kärna :
För att ett mikrokärnoperativsystem ska vara lika snabbt som ett operativsystem byggt på en monolitisk kärna är det nödvändigt att noggrant utforma uppdelningen av systemet i komponenter och försöka minimera interaktionen mellan dem. Således är den största svårigheten med att skapa mikrokärnoperativsystem behovet av mycket noggrann design.
Mikrokärnor är konventionellt indelade i generationer. Mikrokärnor av olika generationer skiljer sig åt i design och tekniska lösningar.
Mikrokärnor som Minix OS-kärnan och GNU Hurd är mycket långsammare att utveckla än Linux och BSD -familjens kärna . Enligt skaparen av Minix 3 , Andrew Tanenbaum , försöker han "bygga ett ultratillförlitligt system som även kan användas på servrar som kräver år av drifttid" [2] .
Det klassiska exemplet på ett mikrokärnoperativsystem är Symbian OS . Detta är ett exempel på ett vanligt och väletablerat mikrokärna (ett sedan Symbian OS v8.1 och nanokernel ) operativsystem.
Skaparna av Symbian OS lyckades kombinera effektivitet och konceptuell harmoni, trots att moderna versioner av detta system erbjuder omfattande funktioner, inklusive verktyg för att arbeta med strömmande data, protokollstackar som är avgörande för kärnans latens, grafik och högupplöst video. Symbian-utvecklarna flyttade nästan alla tillämpade (dvs. utanför kärnans kompetens) uppgifter till servermoduler som fungerar i användarens adressutrymme.
I Windows NT version 3.x användes en mikrokärnarkitektur med en tjänsteprocess för grafik- och användargränssnittsundersystemet. I synnerhet laddades grafikhårdvarudrivrutinen in i tjänsteprocessens sammanhang, inte kärnan. Från och med version 4 övergavs detta, serviceprocessen bevarades endast för hantering av kommandoradskonsolfönster, och själva grafikundersystemet, tillsammans med hårdvarudrivrutinen (inklusive tredimensionell grafik), flyttades till en speciellt isolerad region av OS kärna .
Windows CE OS (och bygger på det, som Windows Mobile ), samtidigt som det är nästan helt kompatibelt (som en delmängd) med Windows NT när det gäller anrop och applikationsprogrammeringsmetoder, skiljer sig ändå helt från Windows NT i intern arkitektur och är en microkernel OS med borttagning av alla enhetsdrivrutiner, nätverksstackar och det grafiska undersystemet i serviceprocesser.
Nackdelen är kostnaden för att tvinga fram en "switch" av processer i kärnan ( kontextbyte ); detta faktum förklarar faktiskt svårigheterna med att designa och skriva kärnor för en sådan design. Dessa brister kan kringgå operativsystem som använder exokernel- arkitekturen , vilket är en vidareutveckling av mikrokärnarkitekturen.
av operativsystem | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Kärna |
| ||||
Processledning _ |
| ||||
Minneshantering och adressering | |||||
Ladda och initieringsverktyg | |||||
skal | |||||
Övrig | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |