De processor voert programma's uit in de gebruikersmodus of kernelmodus. Wanneer u uw pc gebruikt, schakelt de processor vaak tussen deze twee soorten modi, afhankelijk van wat hij doet. Maar wat zijn de gebruikersmodus en de kernelmodus? Wat is het verschil tussen deze twee modi? Waarom moet de CPU tussen deze modi schakelen?
Wat is de gebruikersmodus in Windows?

Gebruikersmodus in Windows
Wanneer u een programma op Windows start, wordt dat programma gestart in de gebruikersmodus. Wanneer een programma in de gebruikersmodus wil starten, maakt Windows er een proces voor. Een proces is slechts een programma dat door een processor wordt uitgevoerd of een programma dat Windows volgens de planning zal uitvoeren. En telkens wanneer Windows een proces maakt, creëert het ook een virtuele adresruimte voor dat proces.
Virtuele adresruimte is de reeks logische (niet-fysieke) adressen die Windows aan een proces toewijst. Processen kunnen deze adressen gebruiken om gegevens in het fysieke geheugen op te slaan.
Bovendien is de virtuele adresruimte geïsoleerd. Daarom interfereert de virtuele adresruimte van het ene proces niet met de adresruimte van een ander proces. En omdat programma's in de Gebruikersmodus afzonderlijke adresruimten hebben, zal, als een programma crasht, dat programma alleen crashen en geen gevolgen hebben voor andere programma's of het hele besturingssysteem.
Een andere manier om toepassingen in de gebruikersmodus te beschrijven is door de term ‘minder bevoorrecht’ te gebruiken. Windows beperkt de gebruikersmodus-applicaties van directe toegang tot kritieke systeembronnen, waardoor ze minder bevoorrecht worden. Als een toepassing bijvoorbeeld toegang wil krijgen tot hardware, moet deze via systeemaanroepen (een programmeerstijl waarbij een computerprogramma een dienst vraagt aan de kernel van het besturingssysteem) via de kernel van het besturingssysteem worden uitgevoerd.
Simpel gezegd: applicatieprogramma's zoals videogames draaien in de gebruikersmodus. Ze hebben weinig rechten en hebben dus geen onbeperkte toegang tot systeembronnen. Elke toepassing in de gebruikersmodus heeft zijn eigen adresruimte. Een applicatie kan de adresruimte van een andere applicatie niet wijzigen. Als een applicatie crasht, heeft dit dus geen invloed op andere programma's die op de computer draaien.
Wat is de kernelmodus in Windows?
![Verschil tussen kernelmodus en gebruikersmodus in Windows Verschil tussen kernelmodus en gebruikersmodus in Windows]()
Kernelmodus in Windows
Voordat we de Kernelmodus bespreken, moeten we eerst weten wat een "kernel" is en hoe deze werkt met Windows.
Kernel is het brein van een besturingssysteem. Het is de kernsoftwarecomponent waarop alle andere componenten binnen het besturingssysteem vertrouwen. De kernel beheert de computerhardware, plant de uitvoering op de computer en verzorgt de interacties tussen hardware en applicatiesoftware.
Kortom, de kernel is het meest bevoorrechte stukje code dat op het systeem draait, omdat het de code is die rechtstreeks met de hardware communiceert. Elk ander programma dat hardwarebronnen wil gebruiken, moet toegang via de kernel aanvragen.
Wanneer een applicatieprogramma in de gebruikersmodus draait en toegang wil krijgen tot hardware zoals een webcam, moet het de kernel opvragen met behulp van systeemaanroepen. Om aan deze verzoeken te voldoen, schakelt de CPU tijdens de uitvoering van het programma over van de gebruikersmodus naar de kernelmodus.
Zodra de uitvoering is voltooid, schakelt de CPU terug naar de gebruikersmodus en begint met het uitvoeren van het volgende geplande proces. Dit wordt ‘contextwisseling’ genoemd .
Wat is het verschil tussen de gebruikersmodus en de kernelmodus?
Het belangrijkste verschil tussen de gebruikersmodus en de kernelmodus is het privilegeniveau dat elke modus biedt. In de gebruikersmodus hebben applicaties minder rechten. Ze hebben geen directe toegang tot hardwarebronnen en kunnen niet schrijven naar de adresruimte van andere applicaties.
Code die in de kernelmodus wordt uitgevoerd, heeft verhoogde rechten. Het heeft niet alleen directe toegang tot de computerhardware, maar alle programma's die in de kernelmodus draaien, inclusief het besturingssysteem, delen ook een adresruimte. Dus als een programma in de kernelmodus crasht, kan het hele besturingssysteem crashen. Om ervoor te zorgen dat dergelijke problemen niet optreden, staat Windows alleen toe dat bepaalde processen in de kernelmodus worden uitgevoerd.
Windows hanteert een gelaagde aanpak om gebruikersprogramma's te scheiden van systeembronnen
Windows gebruikt een gelaagd model om de bevoegdheidsniveaus van processen te bepalen. De applicaties die zich in de buitenste laag bevinden, zijn de applicaties die huurrechten hebben. De kern van deze lagen is de kernel. Daarom heeft de kernel onbeperkte toegang tot de bronnen van het besturingssysteem.
De gelaagde aanpak beschermt ook de kritische functionaliteit van het besturingssysteem. Wanneer programma's in de bovenste laag willekeurig crashen, heeft dit geen invloed op het besturingssysteem. Aan de andere kant, wanneer de kernel crasht, wordt het hele besturingssysteem beïnvloed.