Mikrokärna
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2022-12) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
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 separata 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 eller MacOS 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 till exempel filsystem) skall kunna "haka på" vissa andra processer.
Exempel
[redigera | redigera wikitext]Exempel på operativsystem som bygger på användandet av en mikrokärna.