Mode utilisateur et mode noyau
Un processeur sur un ordinateur exécutant Windows fonctionne dans deux modes différents : le mode utilisateur et le mode noyau. Le processeur bascule entre ces modes en fonction du type de code qu’il exécute. Les applications fonctionnent en mode utilisateur, tandis que les composants principaux du système d’exploitation fonctionnent en mode noyau. Bien que de nombreux pilotes fonctionnent en mode noyau, certains peuvent fonctionner en mode utilisateur.
Mode utilisateur
Lorsque vous lancez une application en mode utilisateur, Windows crée un processus pour celle-ci. Ce processus fournit à l’application un espace d’adressage virtuel privé et une table de handle privée. Étant donné que l’espace d’adressage virtuel de chaque application est privé, une application ne peut pas modifier les données d’une autre application. Chaque application s’exécute de manière isolée, ce qui garantit que si l’une d’elles se bloque, elle n’affecte pas les autres applications ou le système d’exploitation.
L’espace d’adressage virtuel d’une application en mode utilisateur est également limité. Un processus exécuté en mode utilisateur ne peut pas accéder aux adresses virtuelles réservées au système d’exploitation. La limitation de l’espace d’adressage virtuel d’une application en mode utilisateur empêche l’application de modifier ou d’endommager les données critiques du système d’exploitation.
Mode noyau
Tout le code s’exécutant en mode noyau partage un seul espace d’adressage virtuel. Par conséquent, un pilote en mode noyau n’est pas isolé des autres pilotes ou du système d’exploitation. Si un pilote en mode noyau écrit par erreur dans la mauvaise adresse virtuelle, cela peut compromettre les données appartenant au système d’exploitation ou à un autre pilote. Si un pilote en mode noyau se bloque, l’ensemble du système d’exploitation se bloque.
Le diagramme suivant illustre la communication entre les composants en mode utilisateur et en mode noyau.