Mikrokerne i Operating system: Architecture, Fordele
⚡ Smart opsummering
Mikrokernen er en minimal operativsystemkerne, der kun indeholder essentielle funktioner - hukommelsesstyring, procesplanlægning og kommunikation mellem processer - i kerneområdet, mens enhedsdrivere, filservere og andre tjenester kører separat i brugerområdet.
Før vi lærer om mikrokernel, lad os forstå:
Hvad er Kernel?
En kerne er en vigtig del af et operativsystem, der administrerer systemressourcer. Den fungerer også som en bro mellem computerens software og hardware. Det er et af de første programmer, der indlæses ved opstart efter bootloaderen. Kernen er også ansvarlig for at tilbyde sikker adgang til maskinens hardware for forskellige programmer. Den bestemmer også, hvornår og hvor længe en bestemt applikation bruger specifik hardware.
Hvad er mikrokernel?
En mikrokerne er software eller kode, der indeholder den nødvendige minimumsmængde af funktioner, data og egenskaber til at implementere et operativsystem. Den leverer et minimalt antal mekanismer, hvilket er godt nok til at køre de mest basale funktioner i et operativsystem. Den tillader implementering af andre dele af operativsystemet, da den ikke pålægger mange politikker.
Mikrokerner og deres brugermiljøer er normalt implementeret i C++ or C programmeringssprog med lidt montering. Andre implementeringssprog er dog mulige med noget højniveaukodning.
Hvad er en monolitisk kerne?
En monolitisk kerne kører alle de grundlæggende systemtjenester som f.eks. processtyring, hukommelsesstyring, I/O-kommunikation og afbrydelseshåndtering, filsystem osv. i kerneområdet.
I denne type kernetilgang kører hele operativsystemet som et enkelt program i kernetilstand. Operativsystemet er skrevet som en samling af procedurer, der er knyttet sammen til et stort eksekverbart binært program.
Mikrokerne Architecture
En mikrokerne er den vigtigste del for korrekt implementering af et operativsystem. Som du kan se i diagrammet nedenfor, udfører mikrokernen grundlæggende operationer som hukommelse, procesplanlægningsmekanismer og kommunikation mellem processer.
Mikrokerne baseret Operating System
Mikrokernen er den eneste software, der kører på privilegeret niveau. OS'ets andre vigtige funktioner fjernes fra kernetilstand og kører i brugertilstand. Disse funktioner kan være enhedsdrivere, applikationer, filservere, kommunikation mellem processer osv.
Komponenter af mikrokernel
En mikrokerne omfatter kun systemets kernefunktioner. En komponent er kun inkluderet i mikrokernen, hvis placering uden for den ville afbryde systemets funktionalitet. Alle andre ikke-essentielle komponenter bør sættes i brugertilstand.
De minimale funktioner, der kræves i mikrokernen, er:
- Hukommelsesstyring Mekanismer som adresserum bør inkluderes i mikrokernen. Den indeholder også funktioner til hukommelsesbeskyttelse.
- Processorplanlægningsmekanismer bør indeholde proces- og trådplanlægningsprogrammer.
- Inter-proces kommunikation administrerer de servere, der kører deres egne adresserum.
Forskellen mellem mikrokerne og monolitisk kerne
| Driftsparametre | Monolitisk kerne | Mikrokerne |
|---|---|---|
| Grundlæggende | Det er en stor proces, der kører i et enkelt adresseområde. | Det kan opdeles i separate processer kaldet servere. |
| Code | For at skrive en monolitisk kerne kræves der mindre kode. | For at skrive en mikrokerne kræves der mere kode. |
| Sikkerhed | Hvis en tjeneste går ned, kollapser hele systemet i en monolitisk kerne. | Hvis en tjeneste går ned, påvirker det aldrig funktionen af en mikrokerne. |
| Kommunikation | Det er en enkelt statisk binær fil. | Servere kommunikerer via IPC. |
| Eksempel | Linux, BSD'er, Microsoft Windows (95, 98, Mig), Solaris, OS-9, AIX, DOS, XTS-400 osv. | L4Linux, QNX, Symbian, K42, Mac OS X IntegrityOsv |
Fordele ved Microkernel
Her er fordelene/fordelene ved at bruge en mikrokerne:
- Mikrokernearkitekturen er lille og isoleret, derfor kan den fungere bedre.
- Mikrokerner er sikre, fordi kun de komponenter er inkluderet, som ellers ville forstyrre systemets funktionalitet.
- Systemudvidelsen er mere tilgængelig, så den kan tilføjes til systemapplikationen uden at forstyrre kernen.
- Mikrokerner er modulære, og de forskellige moduler kan udskiftes, genindlæses eller modificeres uden engang at røre kernen.
- Færre systemnedbrud sammenlignet med monolitiske systemer.
- Mikrokernegrænsefladen hjælper dig med at håndhæve en mere modulær systemstruktur.
- Nye funktioner kan tilføjes uden at skulle rekompileres.
- Serverfejl er også isoleret, ligesom fejl i ethvert andet brugerprogram.
- Mikrokernesystemet er fleksibelt, så forskellige strategier og API'er implementeret af forskellige servere kan sameksistere i systemet.
- Øget sikkerhed og stabilitet skyldes en reduceret mængde kode, der kører i kernetilstand.
Ulemper ved mikrokerne
Her er ulemperne/ulemperne ved at bruge en mikrokerne:
- Det er dyrt at levere tjenester i et mikrokernesystem sammenlignet med et normalt monolitisk system.
- En kontekstskift eller et funktionskald er nødvendigt, når driverne implementeres som henholdsvis procedurer eller processer.
- Ydeevnen af et mikrokernesystem kan være ligegyldig og kan føre til nogle problemer.


