Kjerne er sentral komponent i et operativsystem som styrer operasjoner av datamaskin og maskinvare. Den administrerer i utgangspunktet operasjoner av minne og CPU-tid. Det er kjernekomponenten i et operativsystem. Kjernen fungerer som en bro mellom applikasjoner og databehandling utført på maskinvarenivå ved hjelp av kommunikasjon mellom prosesser og systemanrop.
Kjernen lastes først inn i minnet når et operativsystem lastes og forblir i minnet til operativsystemet slås av igjen. Den er ansvarlig for ulike oppgaver som diskadministrasjon, oppgavebehandling og minneadministrasjon.
Kernel har en prosesstabell som holder styr på alle aktive prosesser
• Prosesstabell inneholder en per prosessregiontabell hvis oppføring peker på oppføringer i regiontabell.
Kjernen laster en kjørbar fil inn i minnet under 'exec'-systemanrop.
Den bestemmer hvilken prosess som skal allokeres til prosessoren som skal utføres, og hvilken prosess som skal holdes i hovedminnet for å utføres. Det fungerer i utgangspunktet som et grensesnitt mellom brukerapplikasjoner og maskinvare. Hovedmålet med kjernen er å administrere kommunikasjon mellom programvare, dvs. applikasjoner på brukernivå, og maskinvare, dvs. CPU og diskminne.
Mål for kjernen:
- For å etablere kommunikasjon mellom brukernivå applikasjon og maskinvare.
- For å bestemme tilstanden til innkommende prosesser.
- For å kontrollere diskhåndtering.
- For å kontrollere minnehåndtering.
- For å kontrollere oppgavehåndtering.
Typer kjerne:
1. Monolittisk kjerne –
Det er en av typene kjerne der alle operativsystemtjenester opererer i kjernerom. Den har avhengigheter mellom systemkomponenter. Den har enorme linjer med kode som er kompleks.
Eksempel:
Unix, Linux, Open VMS, XTS-400 etc.>
Fordel:
1. Effektivitet: Monolittiske kjerner er generelt raskere enn andre typer kjerner fordi de ikke trenger å bytte mellom bruker- og kjernemodus for hvert systemanrop, noe som kan forårsake overhead.
2. Tett integrasjon: Siden alle operativsystemtjenestene kjører i kjerneplass, kan de kommunisere mer effektivt med hverandre, noe som gjør det enklere å implementere komplekse funksjoner og optimaliseringer.
3. Enkelhet: Monolittiske kjerner er enklere å designe, implementere og feilsøke enn andre typer kjerner fordi de har en enhetlig struktur som gjør det enklere å administrere koden.
4. Lavere ventetid: Monolittiske kjerner har lavere ventetid enn andre typer kjerner fordi systemanrop og avbrudd kan håndteres direkte av kjernen.
Ulempe:
1. Stabilitetsproblemer: Monolittiske kjerner kan være mindre stabile enn andre typer kjerner fordi enhver feil eller sikkerhetssårbarhet i en kjernetjeneste kan påvirke hele systemet.
2. Sikkerhetsproblemer: Siden alle operativsystemtjenestene kjører i kjerneplass, kan enhver sikkerhetssårbarhet i en av tjenestene kompromittere hele systemet.
3. Vedlikeholdsproblemer: Monolittiske kjerner kan være vanskeligere å vedlikeholde enn andre typer kjerner fordi enhver endring i en av tjenestene kan påvirke hele systemet.
4. Begrenset modularitet: Monolittiske kjerner er mindre modulære enn andre typer kjerner fordi alle operativsystemtjenestene er tett integrert i kjernerommet. Dette gjør det vanskeligere å legge til eller fjerne funksjonalitet uten å påvirke hele systemet.
2. Mikrokjerne –
Det er kjernetyper som har minimalistisk tilnærming. Den har virtuelt minne og trådplanlegging. Det er mer stabilt med færre tjenester i kjerneplass. Det setter hvile i brukerrommet.
Den brukes i små operativsystemer.
Eksempel:
arp - en kommando
Mach, L4, AmigaOS, Minix, K42 etc.>
Fordeler:
1. Pålitelighet: Mikrokjernearkitektur er designet for å være mer pålitelig enn monolittiske kjerner. Siden de fleste operativsystemtjenestene kjører utenfor kjerneområdet, vil ikke enhver feil eller sikkerhetssårbarhet i en tjeneste påvirke hele systemet.
2. Fleksibilitet : Mikrokjernearkitektur er mer fleksibel enn monolittiske kjerner fordi den lar forskjellige operativsystemtjenester legges til eller fjernes uten å påvirke hele systemet.
3. Modularitet: Mikrokjernearkitektur er mer modulær enn monolittiske kjerner fordi hver operativsystemtjeneste kjører uavhengig av de andre. Dette gjør det enklere å vedlikeholde og feilsøke systemet.
4. Portabilitet: Mikrokjernearkitektur er mer bærbar enn monolittiske kjerner fordi de fleste operativsystemtjenestene kjører utenfor kjerneområdet. Dette gjør det lettere å portere operativsystemet til forskjellige maskinvarearkitekturer.
Ulemper:
1. Ytelse: Mikrokjernearkitektur kan være tregere enn monolittiske kjerner fordi den krever flere kontekstvekslinger mellom brukerplass og kjerneplass.
2. Kompleksitet: Mikrokjernearkitektur kan være mer kompleks enn monolittiske kjerner fordi den krever mer kommunikasjons- og synkroniseringsmekanismer mellom de forskjellige operativsystemtjenestene.
3. Utviklingsvansker: Å utvikle operativsystemer basert på mikrokjernearkitektur kan være vanskeligere enn å utvikle monolitiske kjerner fordi det krever mer oppmerksomhet på detaljer i utformingen av kommunikasjons- og synkroniseringsmekanismene mellom de forskjellige tjenestene.
4. Høyere ressursbruk: Mikrokjernearkitektur kan bruke flere systemressurser, som minne og CPU, enn monolittiske kjerner fordi den krever mer kommunikasjons- og synkroniseringsmekanismer mellom de forskjellige operativsystemtjenestene.
3. Hybrid kjerne –
Det er kombinasjonen av både monolitisk kjerne og mikrokjerne. Den har hastighet og design av monolitisk kjerne og modularitet og stabilitet til mikrokjernen.
Eksempel:
Windows NT, Netware, BeOS etc.>
Fordeler:
1. Ytelse: Hybridkjerner kan tilby bedre ytelse enn mikrokjerner fordi de reduserer antallet kontekstsvitsjer som kreves mellom brukerplass og kjerneplass.
2. Pålitelighet: Hybridkjerner kan tilby bedre pålitelighet enn monolittiske kjerner fordi de isolerer drivere og andre kjernekomponenter i separate beskyttelsesdomener.
3. Fleksibilitet: Hybridkjerner kan tilby bedre fleksibilitet enn monolittiske kjerner fordi de lar forskjellige operativsystemtjenester legges til eller fjernes uten å påvirke hele systemet.
4. Kompatibilitet: Hybridkjerner kan være mer kompatible enn mikrokjerner fordi de kan støtte et bredere spekter av enhetsdrivere.
byer i australia
Ulemper:
1. Kompleksitet: Hybridkjerner kan være mer komplekse enn monolittiske kjerner fordi de inkluderer både monolittiske og mikrokjernekomponenter, noe som kan gjøre design og implementering vanskeligere.
2. Sikkerhet: Hybridkjerner kan være mindre sikre enn mikrokjerner fordi de har en større angrepsoverflate på grunn av inkludering av monolittiske komponenter.
3. Vedlikehold: Hybridkjerner kan være vanskeligere å vedlikeholde enn mikrokjerner fordi de har en mer kompleks design og implementering.
4. Ressursbruk: Hybridkjerner kan bruke flere systemressurser enn mikrokjerner fordi de inkluderer både monolittiske og mikrokjernekomponenter.
4. Exo Kernel –
Det er typen kjerne som følger ende-til-ende-prinsippet. Den har færrest mulig maskinvareabstraksjoner. Den tildeler fysiske ressurser til applikasjoner.
Eksempel:
Nemesis, ExOS etc.>
Fordeler:
1. Fleksibilitet: Exokerneler tilbyr det høyeste nivået av fleksibilitet, slik at utviklere kan tilpasse og optimere operativsystemet for deres spesifikke applikasjonsbehov.
2. Ytelse: Exokerneler er designet for å gi bedre ytelse enn tradisjonelle kjerner fordi de eliminerer unødvendige abstraksjoner og lar applikasjoner få direkte tilgang til maskinvareressurser.
3. Sikkerhet: Exokerneler gir bedre sikkerhet enn tradisjonelle kjerner fordi de gir mulighet for finmasket kontroll over allokeringen av systemressurser, som minne og CPU-tid.
4. Modularitet: Exokerneler er svært modulære, noe som gjør det enkelt å legge til eller fjerne operativsystemtjenester.
Ulemper:
1. Kompleksitet: Eksokerneler kan være mer komplekse å utvikle enn tradisjonelle kjerner fordi de krever større oppmerksomhet på detaljer og nøye vurdering av systemressursallokering.
2. Utviklingsvanskeligheter: Å utvikle applikasjoner for eksokerneler kan være vanskeligere enn for tradisjonelle kjerner fordi applikasjoner må skrives for å få direkte tilgang til maskinvareressurser.
3. Begrenset støtte: Eksokerneler er fortsatt en ny teknologi og har kanskje ikke samme nivå av støtte og ressurser som tradisjonelle kjerner.
4. Feilsøkingsproblemer: Feilsøking av applikasjoner og operativsystemtjenester på eksokerneler kan være vanskeligere enn på tradisjonelle kjerner på grunn av direkte tilgang til maskinvareressurser.
5. Nano-kjerne –
Det er typen kjerne som tilbyr maskinvareabstraksjon, men uten systemtjenester. Micro Kernel har heller ikke systemtjenester, derfor har Micro Kernel og Nano Kernel blitt analoge.
Eksempel:
EROS etc.>
Fordeler:
1. Liten størrelse: Nanokjerner er designet for å være ekstremt små, og gir kun de mest essensielle funksjonene som trengs for å kjøre systemet. Dette kan gjøre dem mer effektive og raskere enn andre kjernetyper.
2. Høy modularitet: Nanokjerner er svært modulære, noe som gjør det enkelt å legge til eller fjerne operativsystemtjenester, noe som gjør dem mer fleksible og tilpassbare enn tradisjonelle monolittiske kjerner.
3. Sikkerhet: Nanokjerner gir bedre sikkerhet enn tradisjonelle kjerner fordi de har en mindre angrepsflate og redusert risiko for feil eller bugs i koden.
groovy dataspråk
4. Portabilitet: Nanokjerner er designet for å være svært bærbare, slik at de kan kjøre på et bredt spekter av maskinvarearkitekturer.
Ulemper:
1. Begrenset funksjonalitet: Nanokjerner gir bare de mest essensielle funksjonene, noe som gjør dem uegnet for mer komplekse applikasjoner som krever et bredere spekter av tjenester.
2. Kompleksitet: Fordi nanokjerner bare gir essensiell funksjonalitet, kan de være mer komplekse å utvikle og vedlikeholde enn andre kjernetyper.
3. Ytelse: Mens nanokjerner er designet for effektivitet, kan det hende at deres minimalistiske tilnærming ikke kan gi samme ytelsesnivå som andre kjernetyper i visse situasjoner.
4. Kompatibilitet: På grunn av deres minimalistiske design, kan det hende at nanokjerner ikke er kompatible med alle maskinvare- og programvarekonfigurasjoner, noe som begrenser deres praktiske bruk i visse sammenhenger.