Mikrokärna i Operatingssystem: Architecture, Fördelar
⚡ Smart sammanfattning
Mikrokärna är en minimal operativsystemkärna som endast lagrar viktiga funktioner – minneshantering, processschemaläggning och kommunikation mellan processer – i kärnutrymmet, medan enhetsdrivrutiner, filservrar och andra tjänster körs separat i användarutrymmet.

Innan vi lär oss om mikrokärna, låt oss förstå:
Vad är Kernel?
En kärna är en viktig del av ett operativsystem som hanterar systemresurser. Den fungerar också som en brygga mellan datorns programvara och hårdvara. Det är ett av de första programmen som laddas vid uppstart efter bootloadern. Kärnan ansvarar också för att erbjuda säker åtkomst till maskinens hårdvara för olika program. Den bestämmer också när och hur länge en viss applikation använder specifik hårdvara.
Vad är Microkernel?
En mikrokärna är en programvara eller kod som innehåller den minsta mängd funktioner, data och egenskaper som krävs för att implementera ett operativsystem. Den tillhandahåller ett minimalt antal mekanismer, vilket är tillräckligt bra för att köra de mest grundläggande funktionerna i ett operativsystem. Den gör det möjligt att implementera andra delar av operativsystemet eftersom den inte inför många policyer.
Mikrokärnor och deras användarmiljöer är vanligtvis implementerade i C++ or C programmeringsspråk med lite montering. Men andra implementeringsspråk är möjliga med viss högnivåkodning.
Vad är en monolitisk kärna?
En monolitisk kärna kör alla grundläggande systemtjänster som processhantering, minneshantering, I/O-kommunikation och avbrottshantering, filsystem etc. i kärnutrymme.
I den här typen av kärnmetoden körs hela operativsystemet som ett enda program i kernelläge. Operativsystemet skrivs som en samling procedurer som är länkade samman till ett stort körbart binärt program.
Mikrokärna Architecture
En mikrokärna är den viktigaste delen för korrekt implementering av ett operativsystem. Som du kan se i diagrammet nedan utför mikrokärnan grundläggande funktioner som minne, processschemaläggningsmekanismer och kommunikation mellan processer.
Mikrokärnbaserad Operating System
Mikrokärnan är den enda programvaran som körs på privilegierad nivå. De andra viktiga funktionerna i operativsystemet tas bort från kärnläge och körs i användarläge. Dessa funktioner kan vara drivrutiner, applikationer, filservrar, kommunikation mellan processer etc.
Komponenter i Microkernel
En mikrokärna omfattar endast systemets kärnfunktioner. En komponent inkluderas i mikrokärnan endast om det skulle störa systemets funktionalitet om den placerades utanför. Alla andra icke-väsentliga komponenter bör försättas i användarläge.
De lägsta funktioner som krävs i mikrokärnan är:
- Minneshantering Mekanismer som adressutrymmen bör inkluderas i mikrokärnan. Den innehåller också funktioner för minnesskydd.
- Processorns schemaläggningsmekanismer bör innehålla process- och trådschemaläggare.
- Kommunikation mellan processer hanterar servrarna som kör sina egna adressutrymmen.
Skillnaden mellan mikrokärna och monolitisk kärna
| Driftparametrar | Monolitisk kärna | Mikrokärna |
|---|---|---|
| Grundläggande | Det är en stor process som körs i ett enda adressutrymme. | Det kan delas upp i separata processer som kallas servrar. |
| Code | För att skriva en monolitisk kärna krävs mindre kod. | För att skriva en mikrokärna krävs mer kod. |
| Säkerhet | Om en tjänst kraschar kollapsar hela systemet i en monolitisk kärna. | Om en tjänst kraschar påverkar det aldrig hur en mikrokärna fungerar. |
| Kommunikation | Det är en enda statisk binärfil. | Servrar kommunicerar via IPC. |
| Exempelvis | Linux, BSD, Microsoft Windows (95, 98, Jag), Solaris, OS-9, AIX, DOS, XTS-400, etc. | L4Linux, QNX, Symbian, K42, Mac OS X, IntegrityEtc. |
Fördelar med Microkernel
Här är fördelarna/nyttorna med att använda en mikrokärna:
- Mikrokärnarkitekturen är liten och isolerad, därför kan den fungera bättre.
- Mikrokärnor är säkra eftersom endast de komponenter ingår som annars skulle störa systemets funktionalitet.
- Systemutbyggnaden är mer tillgänglig, så den kan läggas till i systemapplikationen utan att störa kärnan.
- Mikrokärnor är modulära, och de olika modulerna kan bytas ut, laddas om eller modifieras utan att ens vidröra kärnan.
- Färre systemkrascher jämfört med monolitiska system.
- Mikrokärngränssnittet hjälper dig att genomdriva en mer modulär systemstruktur.
- Nya funktioner kan läggas till utan att kompilera om.
- Serverfel är också isolerat, precis som fel i alla andra användarprogram.
- Mikrokärnesystemet är flexibelt, så olika strategier och API:er som implementeras av olika servrar kan samexistera i systemet.
- Ökad säkerhet och stabilitet är ett resultat av en minskad mängd kod som körs i kernelläge.
Nackdelar med mikrokärna
Här är nackdelarna/nackdelarna med att använda en mikrokärna:
- Att tillhandahålla tjänster i ett mikrokärnsystem är dyrt jämfört med ett normalt monolitiskt system.
- En kontextväxel eller ett funktionsanrop behövs när drivrutinerna implementeras som procedurer respektive processer.
- Prestandan hos ett mikrokärnsystem kan vara likgiltig och kan leda till vissa problem.

