Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Besturingssysteem >> Linux >> Content
Welke verschillende soorten kernels.c zijn beschikbaar voor besturingssystemen?
Het bestand `kernel.c` is over het algemeen een startpunt of een centraal onderdeel van de kernel van het besturingssysteem. De exacte rol en inhoud ervan variëren sterk, afhankelijk van het besturingssysteem en het ontwerp ervan. Het is geen gestandaardiseerd bestand voor alle besturingssystemen. We kunnen de soorten kernels echter conceptueel categoriseren en hoe `kernel.c` in die categorieën zou kunnen passen.

Hier zijn verschillende soorten kernels, met hoe `kernel.c` zich daarmee zou kunnen verhouden:

1. Monolithische kernels:

* Beschrijving: De volledige functionaliteit van het besturingssysteem (apparaatstuurprogramma's, geheugenbeheer, bestandssysteem, enz.) draait in de kernelruimte. Dit leidt tot één groot, complex programma.

* `kernel.c` rol: In een monolithische kernel kan `kernel.c` *de kerninitialisatieroutines, de hoofdlus (of plannerlus), interruptafhandeling en mogelijk zelfs initiële implementaties van belangrijke subsystemen bevatten. Het is een gemeenschappelijk uitgangspunt. Het kan ook een relatief kleiner bestand zijn dat initialisatie en verzending bevat, terwijl andere bronbestanden specifieke subsystemen afhandelen. Een monolithische kernel heeft echter doorgaans veel bronbestanden, en `kernel.c` is slechts één onderdeel. Het kan het laden en initialiseren van stuurprogramma's en andere kerncomponenten orkestreren.

Voorbeelden:

* Vroege Linux: Vroege versies van Linux waren dichter bij monolithisch, hoewel het aanzienlijk is geëvolueerd.

* BSD-familie (FreeBSD, OpenBSD, NetBSD): Hoewel modulair, hebben deze nog steeds een grote kernelcodebasis.

* MS-DOS: Een eenvoudig voorbeeld.

2. Microkernels:

* Beschrijving: Een microkernel biedt een minimale set kernservices:Inter-Process Communication (IPC), basisgeheugenbeheer en CPU-planning. Apparaatstuurprogramma's, bestandssystemen en andere besturingssysteemservices worden in de gebruikersruimte uitgevoerd.

* `kernel.c` rol: In een microkernel is `kernel.c` meestal kleiner en richt zich uitsluitend op de kernfuncties van de microkernel. Het zou code bevatten voor:

* Afhandeling IPC (berichten doorgeven)

* Het beheren van taken (threads/processen) en het plannen ervan

* Implementatie van een basisinterface voor geheugenbeheereenheid (MMU).

* Systeemoproepen afhandelen en doorverwijzen naar de juiste dienst.

* Onderbreek de afhandeling en verwijs ze naar relevante diensten.

Voorbeelden:

* MINIX 3: Expliciet ontworpen als een microkernel.

* QNX: Een real-time microkernel-besturingssysteem.

* L4/Fiasco: Een familie van krachtige microkernels.

3. Hybride kernels:

* Beschrijving: Een hybride kernel probeert de voordelen van monolithische en microkernels te combineren. Ze hebben meestal meer services die in de kernelruimte draaien dan een microkernel, maar minder dan een monolithische kernel. Dit omvat vaak apparaatstuurprogramma's.

* `kernel.c` rol: In een hybride kernel zou de `kernel.c` groter zijn dan in een microkernel, maar kleiner dan in een puur monolithische kernel. Het kan het volgende bevatten:

* Kernsysteem oproepafhandeling en -verzending

* Initieel laden en beheren van apparaatstuurprogramma's (hoewel sommige stuurprogramma's modules kunnen zijn)

* Geheugenbeheer en virtuele geheugenimplementaties

* CPU-planning

* Communicatie tussen processen (potentieel geoptimaliseerd vergeleken met microkernels)

* Initialisatie van de kernel en zijn subsystemen.

Voorbeelden:

* Windows NT-kernel (gebruikt in Windows 2000, XP, Vista, 7, 8, 10, 11): Hoewel het vaak wordt beschreven als een hybride, neigt het meer naar een monolithische benadering in termen van de hoeveelheid code die in de kernelruimte wordt uitgevoerd.

* macOS (XNU): Maakt gebruik van een hybride aanpak, waarbij delen van de Mach-microkernel worden gecombineerd met BSD Unix-componenten.

4. Exokernels:

* Beschrijving: Exokernels voeren het microkernelconcept tot het uiterste. Ze bieden minimale abstractie ten opzichte van hardware, waardoor applicaties bronnen rechtstreeks kunnen beheren. Applicaties vragen om bronnen, en de exokernel zorgt eenvoudigweg voor isolatie en bescherming.

* `kernel.c` rol: In een exokernel zou `kernel.c` *extreem* klein zijn. Het zou zich vooral richten op:

* Het volgen en isoleren van hulpbronnen

* Autorisatie en toegangscontrole

* Het bieden van een interface op laag niveau met de hardware (bijvoorbeeld het toewijzen van fysieke pagina's, het opzetten van paginatabellen).

* Zeer minimale planning.

Voorbeelden:

* ExOS: Een onderzoeksbesturingssysteem dat een pionier was in het exokernelconcept.

5. Nanokernels/Picokernels:

* Beschrijving: Nog kleiner dan microkernels, vaak gebruikt in embedded systemen en real-time besturingssystemen (RTOS). Ze behandelen doorgaans alleen hardware-abstractie, interrupts en basistaakplanning.

* `kernel.c` rol: In een nanokernel zou `kernel.c` uitzonderlijk minimaal zijn. Het zou vooral gaan om:

* Afhandeling onderbreken

* Taakplanning en contextwisseling

* Mogelijk basisgeheugenbescherming

* De kleinst mogelijke hardware-abstractielaag (HAL).

Voorbeelden:

* Specifieke RTOS-implementaties.

6. Eenkernels:

* Beschrijving: Een unikernel is een gespecialiseerde machine-image met één adresruimte die alleen de OS-componenten bevat die nodig zijn om een ​​specifieke applicatie uit te voeren. Het is rechtstreeks samengesteld uit applicatiecode en een gespecialiseerde kernelbibliotheek.

* `kernel.c` rol: Het concept van een `kernel.c`-bestand is minder direct toepasbaar. De kernel is vaak opgebouwd uit bibliotheken en configuraties die specifiek zijn voor de applicatie. Er zou een "glue"-bestand of toegangspunt kunnen zijn dat `kernel.c` zou kunnen heten, maar de rol ervan gaat meer over het koppelen van componenten dan het representeren van een traditionele kernelstructuur. Het kan betrokken zijn bij het opzetten van de initiële omgeving en het aanroepen van de hoofdfunctie van de applicatie.

Voorbeelden:

* OSv: Een unikernel ontworpen voor cloudomgevingen.

* IncludeOS: Nog een unikernelplatform.

Belangrijke overwegingen:

* Bestandsorganisatie: Moderne besturingssystemen, zelfs die met monolithische kernels, zijn georganiseerd in vele bronbestanden. `kernel.c` is er slechts één, en de rol die het speelt kan variëren, afhankelijk van de architectuur en ontwerpkeuzes van het besturingssysteem.

* Opstartproces: `kernel.c` raakt vaak betrokken bij het vroege opstartproces, waarbij het systeem wordt opgezet voordat het de controle overdraagt ​​aan andere delen van de kernel of de applicatie.

* Implementatiedetails: De specifieke functies en structuren in `kernel.c` zullen volledig afhankelijk zijn van het besturingssysteem.

* Modulaire kernels: Veel moderne kernels ondersteunen modules (bijvoorbeeld laadbare kernelmodules in Linux). Deze modules kunnen de functionaliteit van de kernel dynamisch uitbreiden, waardoor de grenzen tussen "kernelruimte" en "gebruikersruimte" tot op zekere hoogte vervagen, en mogelijk de initiële grootte en complexiteit van de kernkernelcode verminderen (inclusief wat gevonden zou kunnen worden in `kernel.c`).

Samenvattend:hoewel de naam `kernel.c` een kerncomponent impliceert, variëren de feitelijke rol en inhoud ervan dramatisch, afhankelijk van het kerneltype (monolithisch, microkernel, hybride, enz.) en het specifieke ontwerp van het besturingssysteem. Het is vaak een initialisatie- en toegangspuntbestand, maar niet altijd het centrale bestand dat de meeste code van het besturingssysteem bevat.

Previous: Next:
  Linux
·Hoe maak je een Systeemherstel…
·Hoe maak je een Multiboot USB …
·De voordelen van een Web-Based…
·Hoe je het wachtwoord Geschied…
·Wat zijn de distributies van h…
·Hoe te CentOS Run op Parallels…
·Hoe maak je een tekstbestand S…
·Hoe te Macbuntu Alpha Install 
·Hoe je Webmin 20080814 Install…
  Related Articles
Wat is de betekenis van een introductie …
Wat is de betekenis van logica in de inf…
Wat is de betekenis van het hebben van e…
Wat is de betekenis van I/O in computers…
Wat is de rol van de kernel bij het func…
Wat is de belangrijkste factor in comput…
Wat is het belang van de systeemklok bij…
Wat is het belang van procedure in de in…
Wat is de definitie van computation en h…
  Besturingssysteem Articles
·Hoe je HP OEM-software te verwijderen va…
·Hoe te Downgrade Windows 2003 Vanaf 64 b…
·Hoe te verwijderen Lotus tools van Micro…
·Hoe verwijderde app-pictogrammen op Andr…
·Hoe te stoppen Wrun32.exe Na Het draait …
·Hoe kan ik een Slow - Running Windows XP…
·Wat is de betekenis van PC File Extensio…
·Hoe te SHN converteren naar MP3 op een M…
·Hoe te Evo Sync Met Ubuntu 
Copyright © Computer Kennis https://www.nldit.com