logo

Wat is Kernel?

In de informatica is Kernel is een computerprogramma dat de kern of het hart van een besturingssysteem vormt. Voordat we de kernel in detail bespreken, moeten we eerst de basis ervan begrijpen, dat wil zeggen het besturingssysteem op een computer.

Besturingssysteem

Een besturingssysteem of besturingssysteem is systeemsoftware die werkt als interface tussen hardwarecomponenten en de eindgebruiker. Het zorgt ervoor dat andere programma's kunnen worden uitgevoerd. Elk computersysteem, of het nu een desktop, laptop, tablet of smartphone is, moet allemaal een besturingssysteem hebben dat basisfunctionaliteiten voor het apparaat biedt. Sommige veelgebruikte besturingssystemen zijn dat wel ramen , Linux , MacOS, Android, iOS, enz.

Wat is Kernel in besturingssysteem?

Wat is Kernel
  • Zoals hierboven besproken, is Kernel het kernonderdeel van een besturingssysteem (besturingssysteem); daarom heeft het volledige controle over alles in het systeem. Elke bewerking van hardware en software wordt beheerd en beheerd door de kernel.
  • Het fungeert als een brug tussen applicaties en gegevensverwerking op hardwareniveau. Het is het centrale onderdeel van een besturingssysteem.
  • Het is het deel van het besturingssysteem dat zich altijd in het computergeheugen bevindt en de communicatie tussen software- en hardwarecomponenten mogelijk maakt.
  • Het is het computerprogramma dat als eerste werd geladen bij het opstarten van het systeem (na de bootloader). Zodra het is geladen, beheert het de resterende startups. Het beheert ook geheugen-, randapparatuur- en I/O-verzoeken van software. Bovendien vertaalt het alle I/O-verzoeken in gegevensverwerkingsinstructies voor de CPU. Het beheert ook andere taken zoals geheugenbeheer, taakbeheer en schijfbeheer .
  • Een kernel wordt bewaard en meestal in een aparte geheugenruimte geladen, ook wel bekend als beschermde kernelruimte. Het is beschermd tegen toegang door toepassingsprogramma's of minder belangrijke delen van het besturingssysteem.
  • Andere applicatieprogramma's zoals browser, tekstverwerker, audio- en videospeler gebruiken aparte geheugenruimte, ook wel bekend als gebruikersruimte.
  • Vanwege deze twee afzonderlijke ruimtes interfereren gebruikersgegevens en kernelgegevens niet met elkaar en veroorzaken ze geen enkele instabiliteit en traagheid.

Functies van een kernel

Een kernel van een besturingssysteem is verantwoordelijk voor het uitvoeren van verschillende functies en heeft controle over het systeem. Hieronder vindt u enkele belangrijke verantwoordelijkheden van Kernel:

    Apparaatbeheer
    Om verschillende acties uit te voeren, hebben processen toegang nodig tot randapparatuur zoals een muis, toetsenbord, enz., die op de computer zijn aangesloten. Een kernel is verantwoordelijk voor het besturen van deze apparaten met behulp van apparaatstuurprogramma's. Hier een stuurprogramma is een computerprogramma dat het besturingssysteem helpt of in staat stelt te communiceren met elk hardwareapparaat.
    Een kernel houdt een lijst bij van alle beschikbare apparaten, en deze lijst is mogelijk al bekend, geconfigureerd door de gebruiker of gedetecteerd door het besturingssysteem tijdens runtime.Geheugen management
    De kernel heeft volledige controle over de toegang tot het computergeheugen. Elk proces heeft wat geheugen nodig om te kunnen werken, en de kernel zorgt ervoor dat de processen veilig toegang kunnen krijgen tot het geheugen. Om het geheugen toe te wijzen, staat de eerste stap bekend als virtuele adressering, Dit gebeurt door paging of segmentatie. Virtuele adressering is een proces waarbij virtuele adresruimten aan de processen worden geleverd. Dit voorkomt dat de applicaties in elkaar botsen.Beheer van hulpbronnen
    Een van de belangrijke functionaliteiten van Kernel is het delen van de bronnen tussen verschillende processen. Het moet de bronnen zodanig delen dat elk proces op uniforme wijze toegang heeft tot de bron.
    De kernel biedt ook een manier voor synchronisatie en communicatie tussen processen (IPC). Het is verantwoordelijk voor het wisselen van context tussen processen.Toegang tot computerbronnen
    Een kernel is verantwoordelijk voor de toegang tot computerbronnen zoals RAM en I/O-apparaten. RAM of willekeurig toegankelijk geheugen wordt gebruikt om zowel gegevens als instructies te bevatten. Elk programma heeft toegang tot het geheugen nodig om uit te voeren en heeft meestal meer geheugen nodig dan beschikbaar is. In een dergelijk geval speelt Kernel zijn rol en beslist welk geheugen elk proces zal gebruiken en wat er moet gebeuren als het vereiste geheugen niet beschikbaar is.
    De kernel wijst ook het verzoek van applicaties toe om I/O-apparaten te gebruiken, zoals toetsenborden, microfoons, printers, enz.

Soorten kernel

Er zijn hoofdzakelijk vijf soorten kernel, die hieronder worden weergegeven:

Wat is Kernel

1. Monolithische kernels

In een monolithische kernel is de dezelfde geheugenruimte wordt gebruikt om gebruikersservices en kernelservices te implementeren.

Wat is Kernel

Het betekent dat er in dit type kernel geen ander geheugen wordt gebruikt voor gebruikersservices en kernelservices.

Omdat het dezelfde geheugenruimte gebruikt, neemt de grootte van de kernel toe, waardoor de totale omvang van het besturingssysteem toeneemt.

De uitvoering van processen is ook sneller dan bij andere kerneltypen, omdat er geen afzonderlijke gebruikers- en kernelruimte wordt gebruikt.

Voorbeelden van monolithische kernels zijn Unix, Linux, Open VMS, XTS-400, enz.

Voordelen:

  • De uitvoering van processen gaat ook sneller omdat er geen aparte gebruikersruimte en kernelruimte is en er minder software bij betrokken is.
  • Omdat het een enkel stuk software is, zijn zowel de bronnen als de gecompileerde formulieren kleiner.

Nadelen:

  • Als een service een fout genereert, kan het hele systeem crashen.
  • Deze kernels zijn niet overdraagbaar, wat betekent dat ze voor elke nieuwe architectuur herschreven moeten worden.
  • Groot van formaat en daarom moeilijk te beheren.
  • Om een ​​nieuwe dienst toe te voegen, moet het volledige besturingssysteem aangepast worden.

2. Microkernel

Wat is Kernel

Een microkernel wordt ook wel MK , en het verschilt van een traditionele kernel of monolithische kernel. In deze, gebruikersservices en kernelservices worden geïmplementeerd in twee verschillende adresruimten: gebruikersruimte en kernelruimte . Omdat het voor beide services verschillende ruimtes gebruikt, wordt de grootte van de microkernel verkleind, waardoor ook de grootte van het besturingssysteem kleiner wordt.

Microkernels zijn gemakkelijker te beheren en te onderhouden in vergelijking met monolithische kernels. Maar als er een groter aantal systeemaanroepen en contextwisselingen plaatsvindt, kan dit de prestaties van het systeem verminderen doordat het traag wordt.

Deze kernels gebruiken een berichtendoorgeefsysteem voor het afhandelen van verzoeken van de ene server naar de andere server.

Slechts enkele essentiële diensten worden geleverd door microkernels, zoals het definiëren van geheugenadresruimten, IPC (Interprocess Communication) en procesbeheer. Andere diensten, zoals netwerken, worden niet door Kernel geleverd en afgehandeld door een gebruikersruimteprogramma dat bekend staat als servers .

Een van de belangrijkste nadelen van monolithische kernels, namelijk dat een fout in de kernel het hele systeem kan laten crashen, kan in de microkernel worden verwijderd. Net als bij een microkernel kan, als een kernelproces crasht, het crashen van het hele systeem nog steeds worden voorkomen door de door fouten veroorzaakte services opnieuw te starten.

Voorbeelden van Microkernel zijn L4, AmigaOS, Minix, K42 , enz.

Voordelen

  • Microkernels kunnen eenvoudig worden beheerd.
  • Een nieuwe service kan eenvoudig worden toegevoegd zonder het hele besturingssysteem te wijzigen.
  • Als een kernelproces crasht in een microkernel, is het nog steeds mogelijk om te voorkomen dat het hele systeem crasht.

Nadelen

  • Er is meer software nodig voor de interface, waardoor de systeemprestaties afnemen.
  • Procesmanagement is erg ingewikkeld.
  • De berichtenbugs zijn moeilijk op te lossen.

3. Hybride kernel

Wat is Kernel

Hybride kernels zijn ook bekend als modulaire kernels , en het is de combinatie van zowel monolithische als microkernels. Het maakt gebruik van de snelheid van monolithische kernels en de modulariteit van microkernels.

Een hybride kernel kan worden opgevat als de uitgebreide versie van een microkernel met aanvullende eigenschappen van een monolithische kernel. Deze kernels worden veel gebruikt in commerciële besturingssystemen, zoals verschillende versies van MS Windows.

Het lijkt veel op een microkernel, maar bevat ook wat extra code in de kernelruimte om de prestaties van het systeem te verbeteren.

Hybride kernels maken het mogelijk om bepaalde services uit te voeren, zoals netwerkstack in kernelruimte om de prestaties te verminderen in vergelijking met een traditionele microkernel, maar het maakt het nog steeds mogelijk om kernelcode (zoals apparaatstuurprogramma's) uit te voeren als servers in gebruikersruimte.

Voorbeelden van Hybrid Kernel zijn Windows NT, Netware, BeOS, enz.

Voordelen:

  • Er is geen vereiste voor een herstart voor het testen.
  • Technologie van derden kan snel worden geïntegreerd.

Nadelen:

  • Er is een mogelijkheid dat er meer bugs met meer interfaces passeren.
  • Voor sommige beheerders kan het een verwarrende taak zijn om de modules te onderhouden, vooral als het gaat om problemen zoals symboolverschillen.

4. Nanokernel

Zoals de naam al doet vermoeden, in Nanokernel is de volledige code van de kernel erg klein, wat betekent dat de code die wordt uitgevoerd in de bevoorrechte modus van de hardware erg klein is . Hier definieert de term nano een kernel die een klokresolutie van nanoseconden ondersteunt.

Voorbeelden van nanokernel zijn EROS enz.

Voordelen

  • Het biedt hardware-abstracties, zelfs met een zeer klein formaat.

Nadelen

  • Nanokernel mist systeemdiensten.

5. Exokernel

Exokernel is nog in ontwikkeling en is de experimentele benadering voor het ontwerpen van besturingssystemen.

Dit type kernel verschilt van andere kernels, zoals deze; resourcebescherming wordt gescheiden gehouden van het beheer, waardoor we applicatiespecifiek maatwerk kunnen uitvoeren.

alfabet naar nummer

Voordelen:

  • Het op exokernel gebaseerde systeem kan meerdere bibliotheekbesturingssystemen bevatten. Elke bibliotheek exporteert een andere API, waarvan de ene kan worden gebruikt voor UI-ontwikkeling op hoog niveau, en de andere kan worden gebruikt voor realtime controle .

Nadelen:

  • Het ontwerp van de exokernel is zeer complex.

Wat is kernelpaniek?

Zoals we al hebben besproken, bestuurt die kernel het hele computersysteem; dus als het crasht, kan het het hele systeem neerhalen. In MacOS en Linux staat een dergelijke ongewenste gebeurtenis bekend als ' Kernelpaniek.' Om te herstellen van kernelpaniek moeten we het systeem opnieuw opstarten.

Meestal worden deze kernelpanics veroorzaakt door hardwarecommunicatieproblemen. Als er dus herhaalde kernelpanics optreden, probeer dan de minder benodigde of onnodige apparaten los te koppelen en controleer of het probleem is opgelost of niet.