Wat is de Linux-kernel?
De Linux®-kernel is het belangrijkste onderdeel van een Linux-besturingssysteem (OS) en vormt de kerninterface tussen de hardware van een computer en de processen. De kernel communiceert tussen de twee en beheert de bronnen zo efficiënt mogelijk.
De kernel wordt zo genoemd omdat deze, net als een zaadje in een harde schil, deel uitmaakt van het besturingssysteem en alle belangrijke functies van de hardware aanstuurt, of het nu gaat om een telefoon, laptop, server of een ander soort computer.
Wat de kernel doet
De kernel heeft 4 taken:
- Geheugenbeheer: Bijhouden hoeveel geheugen wordt gebruikt om wat op te slaan, en waar
- Procesbeheer: Bepalen welke processen gebruik mogen maken van de centrale verwerkingseenheid (CPU), wanneer, en hoe lang
- Apparaatstuurprogramma’s: Fungeren als mediator/interpretator tussen de hardware en processen
- Systeemaanroepen en beveiliging: Ontvangt serviceverzoeken van de processen
De kernel, mits goed geïmplementeerd, is onzichtbaar voor de gebruiker, werkend in zijn eigen kleine wereld, bekend als kernel space, waar het geheugen toewijst en bijhoudt waar alles is opgeslagen. Wat de gebruiker ziet, zoals webbrowsers en bestanden, staat bekend als de gebruikersruimte. Deze toepassingen communiceren met de kernel via een system call interface (SCI).
Denk er eens zo over. De kernel is een druk persoonlijk assistent voor een machtige uitvoerende macht (de hardware). Het is de taak van de assistent om berichten en verzoeken (processen) van medewerkers en het publiek (gebruikers) door te geven aan de uitvoerende macht, om te onthouden wat waar is opgeslagen (geheugen), en om te bepalen wie op welk moment toegang heeft tot de uitvoerende macht en hoe lang.
Waar de kernel past binnen het OS
Om de kernel in context te plaatsen, kunt u zich voorstellen dat een Linux-machine 3 lagen heeft:
- De hardware: De fysieke machine – de bodem of basis van het systeem, bestaande uit geheugen (RAM) en de processor of centrale verwerkingseenheid (CPU), evenals invoer-/uitvoerapparaten (I/O) zoals opslag, netwerken en grafische afbeeldingen. De CPU voert berekeningen uit en leest van en schrijft naar het geheugen.
- De Linux kernel: De kern van het OS. Het is software in het geheugen die de CPU vertelt wat hij moet doen.
- Gebruikersprocessen: Dit zijn de lopende programma’s die de kernel beheert. Gebruikersprocessen vormen samen de gebruikersruimte. Gebruikersprocessen worden ook wel gewoon processen genoemd. De kernel staat ook toe dat deze processen en servers met elkaar communiceren (bekend als inter-proces communicatie, of IPC).
Code uitgevoerd door het systeem draait op CPU’s in 1 van de 2 modi: kernel mode of user mode. Code die in de kernel mode draait heeft onbeperkte toegang tot de hardware, terwijl de user mode de toegang tot de CPU en het geheugen beperkt tot de SCI. Een soortgelijke scheiding bestaat voor geheugen (kernelruimte en gebruikersruimte). Deze 2 kleine details vormen de basis voor een aantal ingewikkelde operaties zoals privilege scheiding voor beveiliging, het bouwen van containers, en virtuele machines.
Dit betekent ook dat als een proces faalt in gebruikers modus, de schade beperkt is en hersteld kan worden door de kernel. Echter, vanwege zijn toegang tot het geheugen en de processor, kan een crash van een kernelproces het hele systeem laten crashen. Omdat er beveiligingen zijn en er rechten nodig zijn om grenzen te overschrijden, kunnen crashes van gebruikersprocessen meestal niet al te veel problemen veroorzaken.
Waarom kiezen voor Red Hat?
Bij Red Hat is Linux de basis van alles wat we doen. Red Hat is de op een na grootste bijdrager aan de Linux-kernel en brengt de ervaring en expertise van 25 jaar en een grote gemeenschap van partners, klanten en experts uit de hele industrie met zich mee. Dat is een lange relatie, met een geschiedenis en een ervaringsniveau dat moeilijk te bereiken is.