Användarläge och kernelläge
En processor på en dator som kör Windows fungerar i två olika lägen: användarläge och kernelläge. Processorn växlar mellan dessa lägen beroende på vilken typ av kod den kör. Program fungerar i användarläge, medan kärnoperativsystemkomponenter fungerar i kernelläge. Även om många drivrutiner fungerar i kernelläge kan vissa fungera i användarläge.
Användarläge
När du startar ett program i användarläge skapar Windows en process för det. Den här processen ger programmet ett privat virtuellt adressutrymme och en privat referenstabell. Eftersom varje programs virtuella adressutrymme är privat kan ett program inte ändra ett annat programs data. Varje program körs isolerat, vilket säkerställer att om ett kraschar påverkar det inte andra program eller operativsystemet.
Det virtuella adressutrymmet för ett program i användarläge är också begränsat. En process som körs i användarläge kan inte komma åt virtuella adresser som är reserverade för operativsystemet. Om du begränsar det virtuella adressutrymmet för ett program i användarläge hindrar det programmet från att ändra eller skada kritiska operativsystemdata.
Kärnläge
All kod som körs i kernelläge delar ett enda virtuellt adressutrymme. Därför är en drivrutin i kernelläge inte isolerad från andra drivrutiner eller operativsystemet. Om en drivrutin i kernelläge av misstag skriver till fel virtuell adress kan den kompromettera data som tillhör operativsystemet eller någon annan drivrutin. Om en drivrutin i kernelläge kraschar kraschar hela operativsystemet.
Följande diagram illustrerar kommunikationen mellan komponenter i användarläge och kernelläge.