Mikrokärna
Från Rilpedia
En mikrokärna är en kärna i ett operativsystem som försöker vara så liten som möjligt. Den koncentrerar sig på att stödja processer, i form av grundläggande resurshantering för minne, schemaläggning av processortid och kommunikation mellan processer. All annan funktionalitet, exempelvis filsystem, drivrutiner för hårdvara och fönsterhantering förväntas ligga som separatar användarprocesser. Tanken är då att en process kan krascha eller fungera onormalt utan att systemet som helhet upphör att fungera.
Akademiskt är Minix i olika versioner ett känt exempel på mikrokärnor. Mer praktiskt populärt är QNX. Det finns även system som logiskt är uppdelade i flera moduler, med en snävt definierad central kärna, men där fler moduler än denna kärna körs i samma adressutrymme. Detta kallas ibland hybridkärna, med Windows NT som exempel.
Ett problem som ofta framhålls med rena mikrokärnor är att mycket tid ägnas åt att kopiera innehåll i minnet mellan olika adressutrymmen, alternativt en virtuell växling av minne genom processorns minneshantering. Detta åtföljs av en växling av exekveringsmiljö, en s.k. context switch, vilket kan göra populära naiva sätt att lösa vissa problem (som att läsa en rad i taget från en fil) synnerligen långsamma, om man inte lägger till en databuffert i klientprocessen. Vissa system med drivrutiner utanför kärnan löser detta genom att drivrutinen ligger i alla processers adressutrymmen och själv kan avgöra när och hur ett anrop skall skickas vidare. Det finns också mer tekniska lösningar för hur serverprocesser (för t.ex. filsystem) skall kunna "haka på" vissa andra processer.
Exempel
Exempel på operativsystem som bygger på användandet av en mikrokärna.
- AmigaOS
- Amoeba
- Brainix
- K42
- Minix
- MorphOS
- Symbian OS
- MacOS X kör en monolitisk kärna ovanpå en mikrokärna (Mach).