Mikrokärna

Från Rilpedia

Version från den 30 april 2009 kl. 05.18 av SieBot (Diskussion)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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.

Se även

Personliga verktyg