Inom datavetenskap, Kernel är ett datorprogram som är kärnan eller hjärtat i ett operativsystem. Innan vi diskuterar kärnan i detalj, låt oss först förstå dess grundläggande, det vill säga operativsystemet i en dator.
Operativ system
Ett operativsystem eller OS är systemprogramvara som fungerar som ett gränssnitt mellan hårdvarukomponenter och slutanvändare. Det gör att andra program kan köras. Varje datorsystem, oavsett om det är stationär, bärbar dator, surfplatta eller smartphone, måste alla ha ett OS för att tillhandahålla grundläggande funktioner för enheten. Vissa mycket använda operativsystem är Windows , Linux , MacOS, Android , iOS, etc.
Vad är Kernel i operativsystemet?
- Som diskuterats ovan är kärnan kärndelen av ett OS (operativsystem); därför har den full kontroll över allt i systemet. Varje operation av hårdvara och mjukvara hanteras och administreras av kärnan.
- Det fungerar som en brygga mellan applikationer och databehandling som görs på hårdvarunivå. Det är den centrala komponenten i ett OS.
- Det är den del av operativsystemet som alltid finns i datorns minne och möjliggör kommunikation mellan mjukvara och hårdvarukomponenter.
- Det är datorprogrammet som först laddades vid uppstart av systemet (efter starthanteraren). När den väl har laddats hanterar den de återstående uppstarterna. Den hanterar också minne, kringutrustning och I/O-förfrågningar från programvara. Dessutom översätter den alla I/O-förfrågningar till databearbetningsinstruktioner för CPU:n. Den hanterar andra uppgifter också sådana som minneshantering, uppgiftshantering och diskhantering .
- En kärna hålls och läses vanligtvis in i ett separat minnesutrymme, känt som skyddat kärnutrymme. Det är skyddat från att nås av applikationsprogram eller mindre viktiga delar av OS.
- Andra applikationsprogram som webbläsare, ordbehandlare, ljud- och videospelare använder separat minnesutrymme som kallas användarutrymme.
- På grund av dessa två separata utrymmen stör inte användardata och kärndata varandra och orsakar ingen instabilitet och långsamhet.
Funktioner av en kärna
En kärna i ett OS är ansvarig för att utföra olika funktioner och har kontroll över systemet. Några huvudansvar för Kernel ges nedan:
För att utföra olika åtgärder kräver processer åtkomst till kringutrustning som mus, tangentbord etc. som är anslutna till datorn. En kärna är ansvarig för att kontrollera dessa enheter med hjälp av enhetsdrivrutiner. Här en drivrutin är ett datorprogram som hjälper eller gör det möjligt för operativsystemet att kommunicera med vilken hårdvaruenhet som helst.
En kärna upprätthåller en lista över alla tillgängliga enheter, och den här listan kan vara redan känd, konfigurerad av användaren eller detekterad av OS vid körning.
Kärnan har full kontroll för åtkomst till datorns minne. Varje process kräver lite minne för att fungera, och kärnan gör det möjligt för processerna att säkert komma åt minnet. För att allokera minnet kallas det första steget virtuell adressering, vilket görs genom personsökning eller segmentering. Virtuell adressering är en process för att tillhandahålla virtuella adressutrymmen till processerna. Detta förhindrar att applikationen kraschar in i varandra.
En av de viktiga funktionerna i Kernel är att dela resurserna mellan olika processer. Den måste dela resurserna på ett sätt så att varje process enhetligt får tillgång till resursen.
Kärnan ger också ett sätt för synkronisering och kommunikation mellan processer (IPC). Det är ansvarigt för kontextväxling mellan processer.
En kärna är ansvarig för åtkomst till datorresurser som RAM- och I/O-enheter. RAM eller Random Access Memory används för att innehålla både data och instruktioner. Varje program behöver komma åt minnet för att köra och vill oftast ha mer minne än det tillgängliga. I ett sådant fall spelar Kernel sin roll och bestämmer vilket minne varje process ska använda och vad man ska göra om det minne som krävs inte är tillgängligt.
Kärnan allokerar också begäran från applikationer att använda I/O-enheter som tangentbord, mikrofoner, skrivare etc.
Typer av kärnor
Det finns huvudsakligen fem typer av kärnor, som anges nedan:
1. Monolitiska kärnor
I en monolitisk kärna, den samma minnesutrymme används för att implementera användartjänster och kärntjänster.
Det betyder att i denna typ av kärna finns det inget annat minne som används för användartjänster och kärntjänster.
Eftersom den använder samma minnesutrymme ökar storleken på kärnan, vilket ökar den totala storleken på operativsystemet.
Exekveringen av processer är också snabbare än andra kärntyper eftersom den inte använder separat användar- och kärnutrymme.
Exempel av monolitiska kärnor är Unix, Linux, Open VMS, XTS-400, etc.
Fördelar:
- Exekveringen av processer är också snabbare eftersom det inte finns något separat användarutrymme och kärnutrymme och mindre mjukvara inblandad.
- Eftersom det är en enda mjukvara är både källorna och kompilerade formulär mindre.
Nackdelar:
- Om någon tjänst genererar något fel kan den krascha ner hela systemet.
- Dessa kärnor är inte bärbara, vilket innebär att för varje ny arkitektur måste de skrivas om.
- Stor i storlek och blir därför svår att hantera.
- För att lägga till en ny tjänst måste hela operativsystemet modifieras.
2. Mikrokärna
En mikrokärna kallas också MK , och det skiljer sig från en traditionell kärna eller monolitisk kärna. I denna, användartjänster och kärntjänster implementeras i två olika adressutrymmen: användarutrymme och kärnutrymme . Eftersom den använder olika utrymmen för båda tjänsterna, så minskar storleken på mikrokärnan, vilket också minskar storleken på operativsystemet.
Mikrokärnor är lättare att hantera och underhålla jämfört med monolitiska kärnor. Ändå, om det blir ett större antal systemsamtal och kontextväxling, kan det minska systemets prestanda genom att göra det långsamt.
Dessa kärnor använder ett meddelandeöverföringssystem för att hantera begäran från en server till en annan.
Endast vissa viktiga tjänster tillhandahålls av mikrokärnor, som att definiera minnesadressutrymmen, IPC (Interprocess Communication) och processhantering. Andra tjänster som nätverk tillhandahålls inte av Kernel och hanteras av ett användarutrymmesprogram som kallas servrar .
En av de största nackdelarna med monolitiska kärnor att ett fel i kärnan kan krascha hela systemet, kan tas bort i mikrokärnan. Liksom i en mikrokärna, om en kärnprocess kraschar, kan kraschningen av hela systemet fortfarande förhindras genom att starta om de felorsakade tjänsterna.
sträng java ersätt
Exempel av Microkernel är L4, AmigaOS, Minix, K42 , etc.
Fördelar
- Mikrokärnor kan hanteras enkelt.
- En ny tjänst kan enkelt läggas till utan att ändra hela operativsystemet.
- I en mikrokärna, om en kärnprocess kraschar, är det fortfarande möjligt att förhindra att hela systemet kraschar.
Nackdelar
- Det finns mer krav på programvara för gränssnitt, vilket minskar systemets prestanda.
- Processhantering är mycket komplicerat.
- Meddelandebuggarna är svåra att fixa.
3. Hybridkärna
Hybridkärnor är också kända som modulära kärnor , och det är kombinationen av både monolitiska och mikrokärnor. Det drar fördel av hastigheten hos monolitiska kärnor och modulariteten hos mikrokärnor.
En hybridkärna kan förstås som den utökade versionen av en mikrokärna med ytterligare egenskaper hos en monolitisk kärna. Dessa kärnor används ofta i kommersiella operativsystem, såsom olika versioner av MS Windows.
Den är mycket lik en mikrokärna, men den innehåller också lite extra kod i kärnutrymmet för att förbättra systemets prestanda.
Hybridkärnor tillåter att köra vissa tjänster som t.ex nätverksstack i kärnutrymmet för att minska prestandan jämfört med en traditionell mikrokärna, men det tillåter fortfarande att köra kärnkod (som enhetsdrivrutiner) som servrar i användarutrymmet.
Exempel på hybridkärna är Windows NT, Netware, BeOS, etc.
Fördelar:
- Det finns inget krav på omstart för testning.
- Teknik från tredje part kan integreras snabbt.
Nackdelar:
- Det finns en möjlighet att fler buggar med fler gränssnitt kan passera.
- Det kan vara en förvirrande uppgift att underhålla modulerna för vissa administratörer, särskilt när man hanterar problem som symbolskillnader.
4. Nanokärna
Som namnet antyder, i Nanokernel är kärnans fullständiga kod mycket liten, vilket betyder att koden som körs i det privilegierade läget för hårdvaran är mycket liten . Här definierar termen nano en kärna som stöder en nanosekunders klockupplösning.
Exempel på Nanokernel är EROS osv.
Fördelar
- Det ger hårdvaruabstraktioner även med en mycket liten storlek.
Nackdelar
- Nanokernel saknar systemtjänster.
5. Exokernel
Exokernel utvecklas fortfarande och är den experimentella metoden för att designa OS.
Denna typ av kärna skiljer sig från andra kärnor som i denna; resursskydd hålls åtskilt från hanteringen, vilket gör att vi kan utföra applikationsspecifik anpassning.
Fördelar:
- Det exokernelbaserade systemet kan inkludera flera biblioteksoperativsystem. Varje bibliotek exporterar ett annat API, till exempel ett kan användas för utveckling av gränssnitt på hög nivå och det andra kan användas för kontroll i realtid .
Nackdelar:
- Utformningen av exokerneln är mycket komplex.
Vad är Kernel Panics?
Som vi redan har diskuterat styr den kärnan över hela datorsystemet; Om det kraschar kan det därför ta ner hela systemet. I MacOS och Linux är en sådan oönskad händelse känd som ' Kärnpanik.' För att återställa från kernel Panic måste vi starta om systemet.
Vanligtvis orsakas dessa kärnpaniker av kommunikationsproblem med hårdvara. Därför, om upprepade kärnpaniker inträffar, försök sedan koppla bort de mindre erforderliga eller onödiga enheterna och kontrollera om problemet har lösts eller inte.