Kennisbank › Linux Kernel › Wat de kernel doet
linux kernel starter 30 August 2026

Wat de kernel doet

`uname -r` toont op dit systeem `6.8.0-45-generic`. Dit artikel legt uit wat de Linux-kernel precies doet, hoe de versienummering werkt, en waarom deze ene

De kernel is de eerste software die draait wanneer uw server opstart, direct na de firmware. Alles wat daarna gebeurt — elke netwerkverbinding, elk bestand op schijf, elk draaiend proces — loopt door die ene laag. Zonder kernel is uw machine een verzameling losse componenten die niet met elkaar praten.

Dit artikel legt uit wat de kernel op Linux-systemen doet en waarom die keuzes ertoe doen. U hebt geen speciale toegang nodig, alleen een Linux-systeem en nieuwsgierigheid naar wat er onder uw commando's zit.

Interrupts: de kernel als receptionist

Wanneer u een toets op uw toetsenbord indrukt, stuurt de toetsenbordcontroller een signaal naar de CPU. Dat signaal is een interrupt — een onderbreking die aandacht vraagt van de processor. De kernel vangt dit signaal op en zorgt dat het juiste onderdeel van het systeem wordt geïnformeerd.

Zonder goed werkende interruptafhandeling reageert uw systeem niet op gebruikersinvoer, netwerkverkeer of schijfactiviteit. De kernel verwerkt deze signalen efficiënt, zonder dat processen op een manier worden onderbroken die het systeem vertraagt of instabiel maakt.

Op Linux kunt u interrupts live zien:


watch -n1 cat /proc/interrupts

Elke regel toont een interruptlijn, het aantal keren dat die is geactiveerd per CPU-kern, en welk apparaat erachter zit. U ziet netwerkkaarten, schijfcontrollers en timers — allemaal via dezelfde kernel-afhandeling.

Geheugenbeheer: wie krijgt wat

Werkgeheugen is beperkt en moet zorgvuldig worden toegewezen. De kernel beslist welk proces hoeveel geheugen krijgt en wanneer. Dat is geen administratieve formaliteit: als processen willekeurig toegang hadden tot elkaars geheugen, kon elk programma elk ander programma lezen of overschrijven.

Wanneer u een applicatie start, vraagt die geheugen aan het besturingssysteem. De kernel voldoet aan die vraag, maar houdt nauwkeurig bij wat er wordt gebruikt. Raakt het geheugen vol, dan bepaalt de kernel welk geheugen tijdelijk kan worden vrijgemaakt of naar de schijf wordt uitgezet.

De kernel beheert ook het virtuele geheugen. Dat systeem werkt alleen als de processor een Memory Management Unit (MMU) heeft — en die hebben alle moderne x86- en ARM-processors. Virtueel geheugen geeft elk proces een eigen, geïsoleerde geheugenruimte, alsof het de enige toepassing is die draait.

Een proces denkt dat het over een groot blok geheugen beschikt, terwijl dat in werkelijkheid is opgesplitst over fysiek RAM en uitgebreid naar de schijf via swap. De kernel vertaalt virtuele adressen naar fysieke, zodat processen nooit direct met fysieke locaties hoeven te werken. Dat verhoogt niet alleen de efficiëntie, maar ook de beveiliging.

Een direct gevolg van virtueel geheugen: als een programma crasht of wordt gehackt, kan het normaal gesproken geen andere programma's beschadigen. Het is beperkt tot zijn eigen virtuele geheugenruimte, en de kernel scheidt die ruimtes strikt. Dit principe ligt aan de basis van moderne multitasking: meerdere programma's draaien gelijktijdig zonder elkaar te storen.

Processen en scheduling

Een proces is een actieve instantie van een programma. De kernel start processen, stopt ze en zorgt dat ze op een georganiseerde manier toegang krijgen tot de processor. Dat heet scheduling.

Er zijn bijna altijd meer processen actief dan er kernen in de processor zitten. De kernel moet dus beslissen welk proces op welk moment de processor mag gebruiken. De scheduler in de Linux-kernel kent prioriteiten toe op basis van urgentie, gebruikersrechten en het type taak. Een webbrowser waar u actief in werkt krijgt voorrang op een achtergrondtaak zoals een systeemupdate.

U kunt de scheduler aan het werk zien:


ps aux --sort=-%cpu | head -10

Dit toont de tien processen die op dit moment de meeste CPU-tijd verbruiken. Achter die volgorde zit de scheduler van uw kernel.

Systeemaanroepen: de brug

Software communiceert met de kernel via systeemaanroepen, zoals read() en write(). Wanneer een programma een bestand wil lezen of schrijven, roept het deze functies aan. De kernel vangt de aanroep op, controleert of het programma de juiste rechten heeft, en voert de daadwerkelijke lees- of schrijfactie uit op de schijf.

Deze laag vormt de brug tussen userspace en kernelspace — een strikte scheiding die zorgt voor stabiliteit en beveiliging. Een programma kan geen enkele hardwareactie uitvoeren zonder dat de kernel die controleert.

U kunt systeemaanroepen live volgen met strace:


strace -c ls /tmp

Dit draait ls en toont daarna een samenvatting van alle systeemaanroepen die de kernel heeft afgehandeld. U ziet read, write, open, close, mmap en tientallen andere — allemaal gecontroleerd door de kernel.

De kernel in cijfers

De ontwikkeling gebeurt door een wereldwijd netwerk van ontwikkelaars, maar Torvalds blijft de leidende figuur in het proces. Dat is geen historische voetnoot: het bepaalt hoe de kernel wordt beheerd en hoe beslissingen worden genomen.

De kernel bevat drivers voor hardware, netwerkprotocollen, bestandssystemen en ondersteuning voor talloze processors en apparaten. De modulariteit maakt het mogelijk om functies toe te voegen of te verwijderen zonder het hele systeem te herstarten. Daardoor draait Linux op smartphones, routers, supercomputers en cloudservers.

Wat de kernel u kost

De kernel lost veel op, maar niet gratis. Elke systeemaanroep betekent een context switch: de processor schakelt van userspace naar kernelspace en weer terug. Dat kost CPU-cycli. De scheduler en het geheugenbeheer verbruiken ook processorcapaciteit. Op een moderne server is dat verwaarloosbaar — meestal minder dan één procent van de CPU-tijd. Maar op embedded systemen met een trage processor telt dat.

De kernel is ook een stuk software dat u moet onderhouden. Beveiligingsupdates komen regelmatig uit en moeten worden geïnstalleerd. Een kernel-update vereist een reboot, tenzij u met live patching werkt zoals kpatch of kexec. Dat is extra complexiteit die u alleen wilt als een reboot onacceptabel is.

De grootste kostenpost is echter niet technisch. De kernel is flexibel, maar die flexibiliteit betekent dat u keuzes moet maken. Een kernel die voor alles is gecompileerd is groot en traag. Een kernel die is toegesneden op uw hardware is sneller en veiliger, maar vereist dat u weet wat uw systeem nodig heeft. Distributiekernels zoals die van Debian of Ubuntu zijn een goed midden: ze draaien op bijna alles, maar bevatten veel modules die u niet gebruikt.

Zelf hosten klinkt prachtig, tot er iets omvalt op zondagavond half twaalf. Dan bent u geen klant die op de helpdesk wacht. Dan bént u de helpdesk.

Verificatie

Controleer welke kernel u draait:


uname -r

Dat toont uw kernelversie, bijvoorbeeld 6.1.0-18-amd64 op Debian 12. Vergelijk die met de versie die uw distributie ondersteunt. Een kernel die te oud is, mist beveiligingspatches en ondersteuning voor nieuwe hardware.

Bekijk welke kernelmodules zijn geladen:


lsmod

Dit toont geladen modules, hun grootte en welke andere modules ze gebruiken. Als uw netwerkkaart niet werkt, is de kans groot dat de juiste module ontbreekt.

Veelgemaakte fouten

Kernel-updates uitstellen. Een kernel bevat beveiligingspatches die direct relevant zijn voor een server die op het internet staat. Stel updates niet uit omdat een reboot onhandig is. Plan een reboot in, of gebruik live patching als dat echt niet kan.

Te veel modules laden. Elke geladen module is een potentieel aanvalsoppervlak. Distributiekernels laden veel modules die u niet nodig heeft. Voor een server die alleen webverkeer serveert, zijn modules voor bluetooth en consumenten-audio overbodig. Verwijder ze via modprobe -r of zet ze op de blacklist.

De kernel verwarren met de distributie. De kernel is één onderdeel van uw besturingssysteem. De tools die u gebruikt — systemd, bash, de pakketbeheerder — draaien in userspace en zijn geen kernel. Als u die verwart, lost u problemen op de verkeerde laag.

De kernel is de onzichtbare regisseur van uw systeem. Hij coördineert alle onderdelen, beschermt de integriteit van de hardware en zorgt voor geïsoleerde en veilige uitvoering van programma's. Zonder de kernel blijft uw server een verzameling onverbonden componenten. Met de kernel wordt het een geïntegreerd, werkend geheel — en dat geheel is precies zo goed als de keuzes die u maakt in de laag erboven.

← Terug naar kennisbank