I informatikk, Kernel er et dataprogram som er en kjerne eller hjertet i et operativsystem. Før vi diskuterer kjernen i detalj, la oss først forstå dens grunnleggende, dvs. operativsystemet på en datamaskin.
Operativsystem
Et operativsystem eller OS er systemprogramvare som fungerer som et grensesnitt mellom maskinvarekomponenter og sluttbruker. Den lar andre programmer kjøre. Hvert datasystem, enten det er stasjonær datamaskin, bærbar PC, nettbrett eller smarttelefon, må alle ha et OS for å tilby grunnleggende funksjoner for enheten. Noen mye brukte operativsystemer er Windows , Linux , MacOS, Android , iOS, etc.
Hva er kjerne i operativsystemet?
- Som diskutert ovenfor, er kjernen kjernedelen av et OS (operativsystem); derfor har den full kontroll over alt i systemet. Hver operasjon av maskinvare og programvare administreres og administreres av kjernen.
- Den fungerer som en bro mellom applikasjoner og databehandling utført på maskinvarenivå. Det er den sentrale komponenten i et OS.
- Det er den delen av operativsystemet som alltid ligger i datamaskinens minne og muliggjør kommunikasjon mellom programvare- og maskinvarekomponenter.
- Det er dataprogrammet som først ble lastet ved oppstart av systemet (Etter bootloader). Når den er lastet inn, administrerer den de gjenværende oppstartene. Den administrerer også minne, periferiutstyr og I/O-forespørsler fra programvare. Dessuten oversetter den alle I/O-forespørsler til databehandlingsinstruksjoner for CPU. Den klarer også andre oppgaver som minnehåndtering, oppgavebehandling og diskhåndtering .
- En kjerne holdes og lastes vanligvis inn i separat minneplass, kjent som beskyttet kjerneplass. Det er beskyttet mot tilgang til applikasjonsprogrammer eller mindre viktige deler av OS.
- Andre applikasjonsprogrammer som nettleser, tekstbehandler, lyd- og videospiller bruker separat minneplass kjent som brukerplass.
- På grunn av disse to separate plassene, forstyrrer ikke brukerdata og kjernedata hverandre og forårsaker ikke ustabilitet og treghet.
Funksjoner til en kjerne
En kjerne i et OS er ansvarlig for å utføre ulike funksjoner og har kontroll over systemet. Noen hovedoppgaver til Kernel er gitt nedenfor:
For å utføre ulike handlinger krever prosesser tilgang til eksterne enheter som mus, tastatur osv. som er koblet til datamaskinen. En kjerne er ansvarlig for å kontrollere disse enhetene ved å bruke enhetsdrivere. Her en enhetsdriver er et dataprogram som hjelper eller gjør operativsystemet i stand til å kommunisere med hvilken som helst maskinvareenhet.
En kjerne opprettholder en liste over alle tilgjengelige enheter, og denne listen kan allerede være kjent, konfigurert av brukeren eller oppdaget av OS under kjøring.
Kjernen har full kontroll for tilgang til datamaskinens minne. Hver prosess krever noe minne for å fungere, og kjernen gjør det mulig for prosessene å trygt få tilgang til minnet. For å tildele minnet er det første trinnet kjent som virtuell adressering, som gjøres ved personsøking eller segmentering. Virtuell adressering er en prosess for å gi virtuelle adresserom til prosessene. Dette forhindrer at applikasjonen krasjer inn i hverandre.
En av de viktige funksjonene til Kernel er å dele ressursene mellom ulike prosesser. Den må dele ressursene på en måte som gjør at hver prosess får enhetlig tilgang til ressursen.
Kjernen gir også en måte for synkronisering og inter-prosess kommunikasjon (IPC). Det er ansvarlig for kontekstveksling mellom prosesser.
En kjerne er ansvarlig for tilgang til datamaskinressurser som RAM og I/O-enheter. RAM eller Random-Access Memory brukes til å inneholde både data og instruksjoner. Hvert program trenger tilgang til minnet for å kjøre og ønsker stort sett mer minne enn tilgjengelig. I et slikt tilfelle spiller Kernel sin rolle og bestemmer hvilket minne hver prosess skal bruke og hva som skal gjøres hvis det nødvendige minnet ikke er tilgjengelig.
Kjernen tildeler også forespørselen fra applikasjoner om å bruke I/O-enheter som tastaturer, mikrofoner, skrivere osv.
Typer kjerne
Det er hovedsakelig fem typer kjerne, som er gitt nedenfor:
java prioritetskø
1. Monolittiske kjerner
I en monolittisk kjerne er samme minneplass brukes til å implementere brukertjenester og kjernetjenester.
Det betyr at i denne typen kjerne er det ikke noe annet minne som brukes for brukertjenester og kjernetjenester.
Ettersom den bruker samme minneplass, øker størrelsen på kjernen, noe som øker den totale størrelsen på operativsystemet.
Utførelsen av prosesser er også raskere enn andre kjernetyper da den ikke bruker separat bruker- og kjerneplass.
Eksempler av monolittiske kjerner er Unix, Linux, Open VMS, XTS-400, etc.
Fordeler:
- Utførelsen av prosesser er også raskere ettersom det ikke er noen separat brukerplass og kjerneplass og mindre programvare involvert.
- Siden det er et enkelt stykke programvare, er både kilder og kompilerte skjemaer mindre.
Ulemper:
- Hvis en tjeneste genererer feil, kan den krasje ned hele systemet.
- Disse kjernene er ikke bærbare, noe som betyr at for hver ny arkitektur må de skrives om.
- Stor i størrelse og blir derfor vanskelig å håndtere.
- For å legge til en ny tjeneste, må hele operativsystemet endres.
2. Mikrokjerne
En mikrokjerne blir også referert til som MK , og den er forskjellig fra en tradisjonell kjerne eller monolittisk kjerne. I dette, brukertjenester og kjernetjenester implementeres i to forskjellige adresserom: brukerrom og kjernerom . Siden den bruker forskjellige mellomrom for begge tjenestene, reduseres størrelsen på mikrokjernen, noe som også reduserer størrelsen på operativsystemet.
Mikrokjerner er lettere å administrere og vedlikeholde sammenlignet med monolittiske kjerner. Likevel, hvis det vil være et større antall systemanrop og kontekstbytte, kan det redusere ytelsen til systemet ved å gjøre det tregt.
Disse kjernene bruker et meldingsoverføringssystem for å håndtere forespørselen fra en server til en annen server.
Bare noen essensielle tjenester leveres av mikrokjerner, for eksempel definering av minneadresserom, IPC (Interprocess Communication) og prosessadministrasjon. Andre tjenester som nettverk tilbys ikke av Kernel og håndteres av et brukerromsprogram kjent som servere .
En av de største ulempene med monolittiske kjerner at en feil i kjernen kan krasje hele systemet, kan fjernes i mikrokjernen. Som i en mikrokjerne, hvis en kjerneprosess krasjer, kan krasj av hele systemet fortsatt forhindres ved å starte de feil-forårsakede tjenestene på nytt.
Eksempler av Microkernel er L4, AmigaOS, Minix, K42 , etc.
programmering i c-matriser
Fordeler
- Mikrokjerner kan enkelt administreres.
- En ny tjeneste kan enkelt legges til uten å endre hele operativsystemet.
- I en mikrokjerne, hvis en kjerneprosess krasjer, er det fortsatt mulig å forhindre at hele systemet krasjer.
Ulemper
- Det er mer krav til programvare for grensesnitt, noe som reduserer systemytelsen.
- Prosessledelse er veldig komplisert.
- Meldingsfeilene er vanskelige å fikse.
3. Hybrid kjerne
Hybridkjerner er også kjent som modulære kjerner , og det er kombinasjonen av både monolittiske og mikrokjerner. Den drar fordel av hastigheten til monolitiske kjerner og modulariteten til mikrokjerner.
character.compare java
En hybridkjerne kan forstås som den utvidede versjonen av en mikrokjerne med tilleggsegenskaper til en monolitisk kjerne. Disse kjernene er mye brukt i kommersielle operativsystemer, for eksempel forskjellige versjoner av MS Windows.
Det ligner mye på en mikrokjerne, men det inkluderer også litt ekstra kode i kjerneplassen for å forbedre ytelsen til systemet.
Hybridkjerner tillater å kjøre noen tjenester som f.eks nettverksstabel i kjerneplass for å redusere ytelsen sammenlignet med en tradisjonell mikrokjerne, men den tillater fortsatt å kjøre kjernekode (som enhetsdrivere) som servere i brukerområdet.
Eksempler på hybridkjerne er Windows NT, Netware, BeOS, etc.
Fordeler:
- Det er ingen krav om omstart for testing.
- Tredjepartsteknologi kan integreres raskt.
Ulemper:
- Det er en mulighet for flere feil med flere grensesnitt å passere gjennom.
- Det kan være en forvirrende oppgave å vedlikeholde modulene for noen administratorer, spesielt når de håndterer problemer som symbolforskjeller.
4. Nanokjerne
Som navnet tilsier, i Nanokernel er hele koden til kjernen veldig liten, noe som betyr at koden som kjøres i den privilegerte modusen til maskinvaren er veldig liten . Her definerer begrepet nano en kjerne som støtter en nanosekund-klokkeoppløsning.
Eksempler på Nanokernel er EROS osv.
Fordeler
- Det gir maskinvareabstraksjoner selv med en veldig liten størrelse.
Ulemper
- Nanokernel mangler systemtjenester.
5. Exokernel
Exokernel er fortsatt under utvikling og er den eksperimentelle tilnærmingen for å designe OS.
Denne typen kjerne er forskjellig fra andre kjerner som i denne; ressursbeskyttelse holdes atskilt fra ledelsen, noe som lar oss utføre applikasjonsspesifikk tilpasning.
Fordeler:
- Det exokernelbaserte systemet kan inkorporere flere bibliotekoperativsystemer. Hvert bibliotek eksporterer en annen API, for eksempel den ene kan brukes til utvikling av brukergrensesnitt på høyt nivå, og den andre kan brukes til sanntidskontroll .
Ulemper:
eksempel i java-klassen
- Utformingen av eksokernelen er veldig kompleks.
Hva er kjernepanikk?
Som vi allerede har diskutert, kontrollerer den kjernen over hele datasystemet; derfor hvis den krasjer, kan den ta ned hele systemet. I MacOS og Linux er en slik uønsket hendelse kjent som ' Kjernepanikk.' For å gjenopprette fra kernel Panic, må vi starte systemet på nytt.
Vanligvis er disse kjernepanikkene forårsaket av kommunikasjonsproblemer med maskinvare. Derfor, hvis gjentatte kjernepanikk oppstår, prøv å koble fra de mindre nødvendige eller unødvendige enhetene og sjekk om problemet er løst eller ikke.