Kärna är central komponent i ett operativsystem som hanterar driften av dator och hårdvara. Den hanterar i princip driften av minne och CPU-tid. Det är kärnkomponenten i ett operativsystem. Kernel fungerar som en brygga mellan applikationer och databehandling som utförs på hårdvarunivå med hjälp av kommunikation mellan processer och systemanrop.
om annat om annat om java
Kärnan läses först in i minnet när ett operativsystem laddas och finns kvar i minnet tills operativsystemet stängs av igen. Den ansvarar för olika uppgifter som diskhantering, uppgiftshantering och minneshantering.
Kernel har en processtabell som håller reda på alla aktiva processer
• Processtabell innehåller en regiontabell per process vars ingång pekar på poster i regiontabell.
Kärnan laddar en körbar fil i minnet under 'exec'-systemanrop.
Den bestämmer vilken process som ska allokeras till processorn som ska exekveras och vilken process som ska hållas i huvudminnet för att exekvera. Det fungerar i princip som ett gränssnitt mellan användarapplikationer och hårdvara. Huvudsyftet med kärnan är att hantera kommunikation mellan mjukvara, dvs applikationer på användarnivå, och hårdvara, dvs CPU och diskminne.
Kärnans mål:
- Att upprätta kommunikation mellan applikation på användarnivå och hårdvara.
- För att bestämma tillståndet för inkommande processer.
- För att kontrollera diskhantering.
- För att kontrollera minneshantering.
- För att kontrollera uppgiftshantering.
Typer av kärnor:
1. Monolitisk kärna –
Det är en av typerna av kärnor där alla operativsystemstjänster fungerar i kärnutrymmet. Den har beroenden mellan systemkomponenter. Den har enorma rader kod som är komplex.
Exempel:
Unix, Linux, Open VMS, XTS-400 etc.>
Fördel:
1. Effektivitet: Monolitiska kärnor är i allmänhet snabbare än andra typer av kärnor eftersom de inte behöver växla mellan användar- och kärnlägen för varje systemanrop, vilket kan orsaka overhead.
2. Tät integration: Eftersom alla operativsystemstjänster körs i kärnutrymme, kan de kommunicera mer effektivt med varandra, vilket gör det lättare att implementera komplexa funktioner och optimeringar.
3. Enkelhet: Monolitiska kärnor är enklare att designa, implementera och felsöka än andra typer av kärnor eftersom de har en enhetlig struktur som gör det lättare att hantera koden.
4. Lägre latens: Monolitiska kärnor har lägre latens än andra typer av kärnor eftersom systemanrop och avbrott kan hanteras direkt av kärnan.
Nackdel:
1. Stabilitetsproblem: Monolitiska kärnor kan vara mindre stabila än andra typer av kärnor eftersom alla buggar eller säkerhetsbrister i en kärntjänst kan påverka hela systemet.
2. Säkerhetssårbarheter: Eftersom alla operativsystemstjänster körs i kärnutrymme, kan alla säkerhetsproblem i en av tjänsterna äventyra hela systemet.
3. Underhållssvårigheter: Monolitiska kärnor kan vara svårare att underhålla än andra typer av kärnor eftersom alla ändringar i en av tjänsterna kan påverka hela systemet.
4. Begränsad modularitet: Monolitiska kärnor är mindre modulära än andra typer av kärnor eftersom alla operativsystemtjänster är tätt integrerade i kärnutrymmet. Detta gör det svårare att lägga till eller ta bort funktionalitet utan att påverka hela systemet.
2. Mikrokärna –
Det är kärntyper som har minimalistiskt tillvägagångssätt. Den har virtuellt minne och trådschemaläggning. Det är mer stabilt med färre tjänster i kärnutrymmet. Det ger vila i användarutrymmet.
Det används i små operativsystem.
Exempel:
Mach, L4, AmigaOS, Minix, K42 etc.>
Fördelar:
1. Tillförlitlighet: Mikrokärnarkitekturen är designad för att vara mer tillförlitlig än monolitiska kärnor. Eftersom de flesta operativsystemtjänsterna körs utanför kärnutrymmet, kommer alla buggar eller säkerhetssårbarheter i en tjänst inte att påverka hela systemet.
java sträng ansluta
2. Flexibilitet : Mikrokärnarkitekturen är mer flexibel än monolitiska kärnor eftersom den tillåter att olika operativsystemtjänster kan läggas till eller tas bort utan att hela systemet påverkas.
3. Modularitet: Mikrokärnarkitektur är mer modulär än monolitiska kärnor eftersom varje operativsystemstjänst körs oberoende av de andra. Detta gör det lättare att underhålla och felsöka systemet.
4. Bärbarhet: Mikrokärnarkitektur är mer portabel än monolitiska kärnor eftersom de flesta operativsystemtjänsterna körs utanför kärnutrymmet. Detta gör det lättare att porta operativsystemet till olika hårdvaruarkitekturer.
Nackdelar:
1. Prestanda: Mikrokärnarkitektur kan vara långsammare än monolitiska kärnor eftersom den kräver fler kontextväxlingar mellan användarutrymme och kärnutrymme.
2. Komplexitet: Mikrokärnarkitektur kan vara mer komplex än monolitiska kärnor eftersom den kräver mer kommunikations- och synkroniseringsmekanismer mellan de olika operativsystemtjänsterna.
3. Utvecklingssvårigheter: Att utveckla operativsystem baserade på mikrokärnarkitektur kan vara svårare än att utveckla monolitiska kärnor eftersom det kräver mer uppmärksamhet på detaljer i utformningen av kommunikations- och synkroniseringsmekanismerna mellan de olika tjänsterna.
4. Högre resursanvändning: Mikrokärnarkitektur kan använda mer systemresurser, såsom minne och CPU, än monolitiska kärnor eftersom det kräver mer kommunikations- och synkroniseringsmekanismer mellan de olika operativsystemtjänsterna.
3. Hybridkärna –
Det är kombinationen av både monolitisk kärna och mikrokärna. Den har hastighet och design av monolitisk kärna och modularitet och stabilitet hos mikrokärnan.
Exempel:
Windows NT, Netware, BeOS etc.>
Fördelar:
1 miljon i siffror
1. Prestanda: Hybridkärnor kan erbjuda bättre prestanda än mikrokärnor eftersom de minskar antalet kontextväxlingar som krävs mellan användarutrymme och kärnutrymme.
2. Tillförlitlighet: Hybridkärnor kan erbjuda bättre tillförlitlighet än monolitiska kärnor eftersom de isolerar drivrutiner och andra kärnkomponenter i separata skyddsdomäner.
3. Flexibilitet: Hybridkärnor kan erbjuda bättre flexibilitet än monolitiska kärnor eftersom de tillåter att olika operativsystemtjänster läggs till eller tas bort utan att hela systemet påverkas.
4. Kompatibilitet: Hybridkärnor kan vara mer kompatibla än mikrokärnor eftersom de kan stödja ett bredare utbud av drivrutiner.
Nackdelar:
1. Komplexitet: Hybridkärnor kan vara mer komplexa än monolitiska kärnor eftersom de innehåller både monolitiska och mikrokärnkomponenter, vilket kan försvåra design och implementering.
2. Säkerhet: Hybridkärnor kan vara mindre säkra än mikrokärnor eftersom de har en större attackyta på grund av införandet av monolitiska komponenter.
3. Underhåll: Hybridkärnor kan vara svårare att underhålla än mikrokärnor eftersom de har en mer komplex design och implementering.
4. Resursanvändning: Hybridkärnor kan använda mer systemresurser än mikrokärnor eftersom de inkluderar både monolitiska och mikrokärnkomponenter.
4. Exo Kernel –
Det är den typ av kärna som följer end-to-end-principen. Den har så få hårdvaruabstraktioner som möjligt. Den allokerar fysiska resurser till applikationer.
Exempel:
Nemesis, ExOS etc.>
Fördelar:
1. Flexibilitet: Exokernels erbjuder den högsta nivån av flexibilitet, vilket gör att utvecklare kan anpassa och optimera operativsystemet för deras specifika applikationsbehov.
2. Prestanda: Exokernels är designade för att ge bättre prestanda än traditionella kärnor eftersom de eliminerar onödiga abstraktioner och tillåter applikationer att direkt komma åt hårdvaruresurser.
3. Säkerhet: Exokernels ger bättre säkerhet än traditionella kärnor eftersom de tillåter finkornig kontroll över allokeringen av systemresurser, såsom minne och CPU-tid.
motstridig sökning
4. Modularitet: Exokernelar är mycket modulära, vilket gör det enkelt att lägga till eller ta bort operativsystemtjänster.
Nackdelar:
1. Komplexitet: Exokernelar kan vara mer komplexa att utveckla än traditionella kärnor eftersom de kräver större uppmärksamhet på detaljer och noggrant övervägande av systemresursallokering.
2. Utvecklingssvårigheter: Att utveckla applikationer för exokernelar kan vara svårare än för traditionella kärnor eftersom applikationer måste skrivas för att direkt komma åt hårdvaruresurser.
3. Begränsad support: Exokernelar är fortfarande en framväxande teknologi och kanske inte har samma nivå av stöd och resurser som traditionella kärnor.
4. Felsökningssvårigheter: Att felsöka applikationer och operativsystemtjänster på exokernelar kan vara svårare än på traditionella kärnor på grund av direkt tillgång till hårdvaruresurser.
5. Nanokärna –
Det är den typ av kärna som erbjuder hårdvaruabstraktion men utan systemtjänster. Micro Kernel har inte heller systemtjänster, därför har Micro Kernel och Nano Kernel blivit analoga.
Exempel:
EROS etc.>
Fördelar:
1. Liten storlek: Nanokärnor är designade för att vara extremt små och tillhandahåller endast de mest väsentliga funktionerna som behövs för att köra systemet. Detta kan göra dem mer effektiva och snabbare än andra kärntyper.
2. Hög modularitet: Nanokärnor är mycket modulära, vilket gör det enkelt att lägga till eller ta bort operativsystemtjänster, vilket gör dem mer flexibla och anpassningsbara än traditionella monolitiska kärnor.
3. Säkerhet: Nanokärnor ger bättre säkerhet än traditionella kärnor eftersom de har en mindre attackyta och minskad risk för fel eller buggar i koden.
4. Bärbarhet: Nanokärnor är designade för att vara mycket bärbara, vilket gör att de kan köras på ett brett utbud av hårdvaruarkitekturer.
Nackdelar:
program i java
1. Begränsad funktionalitet: Nanokärnor tillhandahåller bara de mest väsentliga funktionerna, vilket gör dem olämpliga för mer komplexa applikationer som kräver ett bredare utbud av tjänster.
2. Komplexitet: Eftersom nanokärnor endast tillhandahåller väsentlig funktionalitet, kan de vara mer komplexa att utveckla och underhålla än andra kärntyper.
3. Prestanda: Även om nanokärnor är designade för effektivitet, kanske deras minimalistiska tillvägagångssätt inte kan ge samma prestandanivå som andra kärntyper i vissa situationer.
4. Kompatibilitet: På grund av deras minimalistiska design är nanokärnorna kanske inte kompatibla med alla hårdvaru- och mjukvarukonfigurationer, vilket begränsar deras praktiska användning i vissa sammanhang.