En icke-processkärna är en typ av operativsystemkärna som inte körs som en separat process inom systemet. Istället körs det direkt inom hårdvarans privilegierade läge. Detta i motsats till en processkärna, där kärnan finns som en process själv, om än en med speciella privilegier.
Här är en uppdelning av de viktigaste skillnaderna och konsekvenserna:
icke-processkärna (även känd som monolitisk kärna):
* Struktur: Kärnkoden är en enda, stor enhet. Alla kärntjänster (minneshantering, I/O, filsystem, etc.) bor inom detta enda adressutrymme.
* exekvering: Kör direkt i privilegierat läge och har direkt tillgång till hårdvaruresurser.
* Fördelar:
* Prestanda: Generellt snabbare och effektivare på grund av mindre kontextbyte över huvudet. Direkt tillgång till hårdvara minimerar prestationseffekten av kommunikation mellan processer.
* enkelhet (på vissa sätt): Enklare design och implementering jämfört med mikrokärna.
* Nackdelar:
* Mindre robusthet: Ett enda fel i kärnan kan krascha hela systemet. Moduler är tätt kopplade, vilket gör felsökning och förlänger mer komplexa.
* Skalbarhetsproblem: Skalning till stora system eller lägga till nya funktioner kan vara svårt och benägna att fel.
* Säkerhetsproblem: En komprometterad del av kärnan kan kompromissa med hela systemet.
Process Kernel (även känd som MicroKernel):
* Struktur: Kärnan är en liten, minimal kärna som tillhandahåller grundläggande tjänster. Andra tjänster (som filsystem och enhetsdrivrutiner) körs som separata processer i användarutrymmet.
* exekvering: Kärnkärnan körs i privilegierat läge; Andra tjänster som körs i användarläge.
* Fördelar:
* robusthet: Om en tjänst kraschar kraschar det inte nödvändigtvis hela systemet. Moduler är isolerade, vilket förbättrar modularitet och underhållbarhet.
* Extensibility: Lättare att förlänga genom att lägga till nya tjänster.
* Portabilitet: Potentiellt lättare att hamna till olika arkitekturer.
* Nackdelar:
* Performance Overhead: Interprocesskommunikation mellan kärntjänster och användarutrymme-tjänster leder till prestandaöverträdelse.
Sammanfattningsvis är en icke-processkärna en mer traditionell och ofta enklare tillvägagångssätt, prioritering av prestanda och potentiellt enkelhet framför robusthet och utdragbarhet. Moderna operativsystem tenderar att gynna en mer komplex men ofta säkrare mikrokernell design eller en hybridmetod. Även om det är sant, rent icke-processkärnor är mindre vanliga nu, använder de allra flesta operativsystem fortfarande en monolitisk design med modularitet tillagd genom tekniker som dynamisk länkning och lastbara kärnmoduler.