logo

Hvad er Kernel?

I datalogi, Kernel er et computerprogram, der er en kerne eller hjertet i et operativsystem. Før vi diskuterer kerne i detaljer, lad os først forstå dens grundlæggende, dvs. operativsystemet i en computer.

Operativ system

Et operativsystem eller OS er systemsoftware, der fungerer som en grænseflade mellem hardwarekomponenter og slutbruger. Det gør det muligt for andre programmer at køre. Hvert computersystem, uanset om det er stationær, bærbar, tablet eller smartphone, skal alle have et OS for at give enhedens grundlæggende funktionaliteter. Nogle udbredte operativsystemer er Windows , Linux , MacOS, Android , iOS osv.

Hvad er Kernel i operativsystemet?

Hvad er Kernel
  • Som diskuteret ovenfor er Kernel kernedelen af ​​et OS (operativsystem); derfor har den fuld kontrol over alt i systemet. Hver operation af hardware og software administreres og administreres af kernen.
  • Det fungerer som en bro mellem applikationer og databehandling udført på hardwareniveau. Det er den centrale komponent i et OS.
  • Det er den del af operativsystemet, der altid ligger i computerens hukommelse og muliggør kommunikationen mellem software- og hardwarekomponenter.
  • Det er det computerprogram, der først blev indlæst ved opstart af systemet (Efter bootloaderen). Når den først er indlæst, administrerer den de resterende opstarter. Den administrerer også hukommelse, periferiudstyr og I/O-anmodninger fra software. Desuden oversætter den alle I/O-anmodninger til databehandlingsinstruktioner til CPU'en. Den klarer også andre opgaver som hukommelsesstyring, opgavestyring og diskstyring .
  • En kerne opbevares og indlæses normalt i separat hukommelsesplads, kendt som beskyttet kernerum. Det er beskyttet mod at blive tilgået af applikationsprogrammer eller mindre vigtige dele af OS.
  • Andre applikationsprogrammer såsom browser, tekstbehandling, lyd- og videoafspiller bruger separat hukommelsesplads kendt som brugerplads.
  • På grund af disse to separate mellemrum forstyrrer brugerdata og kernedata ikke hinanden og forårsager ikke ustabilitet og langsomhed.

Funktioner af en kerne

En kerne i et OS er ansvarlig for at udføre forskellige funktioner og har kontrol over systemet. Nogle af kernens hovedansvar er angivet nedenfor:

    Enhedshåndtering
    For at udføre forskellige handlinger kræver processer adgang til perifere enheder såsom en mus, tastatur osv., der er forbundet til computeren. En kerne er ansvarlig for at kontrollere disse enheder ved hjælp af enhedsdrivere. Her, en enhedsdriver er et computerprogram, der hjælper eller sætter operativsystemet i stand til at kommunikere med enhver hardwareenhed.
    En kerne vedligeholder en liste over alle tilgængelige enheder, og denne liste er muligvis allerede kendt, konfigureret af brugeren eller opdaget af OS under kørsel.Hukommelseshåndtering
    Kernen har fuld kontrol over adgang til computerens hukommelse. Hver proces kræver noget hukommelse for at fungere, og kernen gør det muligt for processerne at få sikker adgang til hukommelsen. For at allokere hukommelsen er det første trin kendt som virtuel adressering, hvilket gøres ved paging eller segmentering. Virtuel adressering er en proces med at give virtuelle adresserum til processerne. Dette forhindrer applikationen i at støde ind i hinanden.Ressourcestyring
    En af de vigtige funktioner i Kernel er at dele ressourcerne mellem forskellige processer. Den skal dele ressourcerne på en måde, så hver proces ensartet får adgang til ressourcen.
    Kernen giver også en måde til synkronisering og inter-proces kommunikation (IPC). Den er ansvarlig for kontekstskifte mellem processer.Adgang til computerressourcer
    En kerne er ansvarlig for at få adgang til computerressourcer såsom RAM og I/O-enheder. RAM eller Random Access Memory bruges til at indeholde både data og instruktioner. Hvert program skal have adgang til hukommelsen for at udføre og vil for det meste have mere hukommelse end den tilgængelige. I et sådant tilfælde spiller Kernel sin rolle og bestemmer, hvilken hukommelse hver proces vil bruge, og hvad der skal gøres, hvis den nødvendige hukommelse ikke er tilgængelig.
    Kernen tildeler også anmodningen fra applikationer om at bruge I/O-enheder såsom tastaturer, mikrofoner, printere osv.

Kerneltyper

Der er hovedsageligt fem typer kerne, som er angivet nedenfor:

java prioritetskø
Hvad er Kernel

1. Monolitiske kerner

I en monolitisk kerne er den samme hukommelsesplads bruges til at implementere brugertjenester og kernetjenester.

Hvad er Kernel

Det betyder, at der i denne type kerne ikke er nogen anden hukommelse, der bruges til brugertjenester og kernetjenester.

Da det bruger den samme hukommelsesplads, øges størrelsen af ​​kernen, hvilket øger den samlede størrelse af OS.

Udførelsen af ​​processer er også hurtigere end andre kernetyper, da den ikke bruger separat bruger- og kerneplads.

Eksempler af monolitiske kerner er Unix, Linux, Open VMS, XTS-400 osv.

Fordele:

  • Udførelsen af ​​processer er også hurtigere, da der ikke er noget separat brugerrum og kernerum og mindre software involveret.
  • Da det er et enkelt stykke software, er det derfor både kilder og kompilerede formularer mindre.

Ulemper:

  • Hvis en tjeneste genererer en fejl, kan den styrte ned i hele systemet.
  • Disse kerner er ikke bærbare, hvilket betyder, at for hver ny arkitektur skal de omskrives.
  • Stor i størrelse og bliver derfor svær at håndtere.
  • For at tilføje en ny tjeneste skal hele operativsystemet ændres.

2. Mikrokerne

Hvad er Kernel

En mikrokerne kaldes også MK , og det er forskelligt fra en traditionel kerne eller monolitisk kerne. Heri, brugertjenester og kernetjenester implementeres i to forskellige adresserum: brugerrum og kernerum . Da det bruger forskellige pladser til begge tjenester, reduceres størrelsen af ​​mikrokernen, og det reducerer også størrelsen af ​​OS.

Mikrokerner er nemmere at administrere og vedligeholde sammenlignet med monolitiske kerner. Alligevel, hvis der vil være et større antal systemopkald og kontekstskift, kan det muligvis reducere systemets ydeevne ved at gøre det langsomt.

Disse kerner bruger et meddelelsesoverførselssystem til at håndtere anmodningen fra en server til en anden server.

Kun nogle væsentlige tjenester leveres af mikrokerner, såsom at definere hukommelsesadresserum, IPC (Interprocess Communication) og processtyring. Andre tjenester såsom netværk leveres ikke af Kernel og håndteres af et brugerrumsprogram kendt som servere .

En af de største ulemper ved monolitiske kerner, at en fejl i kernen kan crashe hele systemet, kan fjernes i mikrokernen. Som i en mikrokerne, hvis en kerneproces går ned, kan nedbrud af hele systemet stadig forhindres ved at genstarte de fejlforårsagede tjenester.

Eksempler af Microkernel er L4, AmigaOS, Minix, K42 , etc.

spærrede numre

Fordele

  • Mikrokerner kan nemt administreres.
  • En ny tjeneste kan nemt tilføjes uden at ændre hele OS.
  • I en mikrokerne, hvis en kerneproces går ned, er det stadig muligt at forhindre hele systemet i at gå ned.

Ulemper

  • Der er mere behov for software til grænseflader, hvilket reducerer systemets ydeevne.
  • Processtyring er meget kompliceret.
  • Beskedfejlene er svære at rette.

3. Hybridkerne

Hvad er Kernel

Hybridkerner er også kendt som modulære kerner , og det er kombinationen af ​​både monolitiske og mikrokerner. Det udnytter hastigheden af ​​monolitiske kerner og modulariteten af ​​mikrokerner.

powershell kommentar multiline

En hybridkerne kan forstås som den udvidede version af en mikrokerne med yderligere egenskaber af en monolitisk kerne. Disse kerner er meget udbredt i kommercielle OS, såsom forskellige versioner af MS Windows.

Det minder meget om en mikrokerne, men det inkluderer også noget ekstra kode i kernerummet for at forbedre systemets ydeevne.

Hybridkerner tillader at køre nogle tjenester som f.eks netværksstak i kernerummet at reducere ydeevnen sammenlignet med en traditionel mikrokerne, men det giver stadig mulighed for at køre kernekode (såsom enhedsdrivere) som servere i brugerrummet.

Eksempler på Hybrid Kernel er Windows NT, Netware, BeOS osv.

Fordele:

  • Der er ingen krav om genstart for at teste.
  • Tredjepartsteknologi kan integreres hurtigt.

Ulemper:

  • Der er mulighed for flere fejl med flere grænseflader at passere igennem.
  • Det kan være en forvirrende opgave at vedligeholde modulerne for nogle administratorer, især når man håndterer problemer som symbolforskelle.

4. Nanokerne

Som navnet antyder, i Nanokernel er kernens komplette kode meget lille, hvilket betyder, at koden, der udføres i hardwarens privilegerede tilstand, er meget lille . Her definerer udtrykket nano en kerne, der understøtter en opløsning af nanosekund.

Eksempler på Nanokernel er EROS osv.

Fordele

  • Det giver hardwareabstraktioner selv med en meget lille størrelse.

Ulemper

  • Nanokernel mangler systemtjenester.

5. Exokernel

Exokernel er stadig under udvikling og er den eksperimentelle tilgang til at designe OS.

Denne type kerne er forskellig fra andre kerner som i denne; ressourcebeskyttelse holdes adskilt fra ledelsen, hvilket giver os mulighed for at udføre applikationsspecifik tilpasning.

Fordele:

  • Det exokernel-baserede system kan inkorporere flere biblioteksoperativsystemer. Hvert bibliotek eksporterer en anden API, såsom den ene kan bruges til UI-udvikling på højt niveau, og den anden kan bruges til realtidskontrol .

Ulemper:

java klasse eksempel
  • Udformningen af ​​exokernelen er meget kompleks.

Hvad er Kernel Panics?

Som vi allerede har diskuteret, kontrollerer denne kerne hele computersystemet; hvis det går ned, kan det derfor tage hele systemet ned. I MacOS og Linux er en sådan uønsket hændelse kendt som ' Kernel Panic.' For at gendanne fra kernel Panic, skal vi genstarte systemet.

Normalt er disse kernepanik forårsaget af hardwarekommunikationsproblemer. Derfor, hvis der opstår gentagne kernepanik, så prøv at frakoble de mindre nødvendige eller unødvendige enheder og kontroller, om problemet er løst eller ej.