Tryb użytkownika i tryb jądra
Procesor na komputerze z systemem Windows działa w dwóch różnych trybach: tryb użytkownika i trybu jądra. Procesor przełącza się między tymi trybami w zależności od typu wykonywanego kodu. Aplikacje działają w trybie użytkownika, podczas gdy podstawowe składniki systemu operacyjnego działają w trybie jądra. Chociaż wiele sterowników działa w trybie jądra, niektóre mogą działać w trybie użytkownika.
Tryb użytkownika
Po uruchomieniu aplikacji w trybie użytkownika system Windows tworzy proces. Proces ten zapewnia aplikacji prywatną wirtualną przestrzeń adresową oraz prywatną tabelę uchwytów. Ponieważ wirtualna przestrzeń adresowa każdej aplikacji jest prywatna, jedna aplikacja nie może modyfikować danych innej aplikacji. Każda aplikacja działa w izolacji, upewniając się, że w przypadku awarii nie ma to wpływu na inne aplikacje ani system operacyjny.
Wirtualna przestrzeń adresowa aplikacji trybu użytkownika jest również ograniczona. Proces uruchomiony w trybie użytkownika nie może uzyskać dostępu do adresów wirtualnych zarezerwowanych dla systemu operacyjnego. Ograniczenie wirtualnej przestrzeni adresowej aplikacji w trybie użytkownika uniemożliwia aplikacji modyfikowanie lub uszkadzanie krytycznych danych systemu operacyjnego.
Tryb jądra
Cały kod działający w trybie jądra korzysta z jednej wspólnej wirtualnej przestrzeni adresowej. W związku z tym sterownik trybu jądra nie jest odizolowany od innych sterowników ani systemu operacyjnego. Jeśli sterownik trybu jądra błędnie zapisuje w niewłaściwym adresie wirtualnym, może naruszyć bezpieczeństwo danych należących do systemu operacyjnego lub innego sterownika. Jeśli sterownik trybu jądra ulegnie awarii, powoduje awarię całego systemu operacyjnego.
Na poniższym diagramie przedstawiono komunikację między składnikami trybu użytkownika i trybu jądra.