User mode vs Kernel mode

Un processeur sur un ordinateur exécutant Windows a deux modes différents : le mode utilisateur et le mode noyau.

Le processeur bascule entre les deux modes en fonction du type de code en cours d’exécution sur le processeur. Les applications s’exécutent en mode utilisateur et les composants principaux du système d’exploitation s’exécutent en mode noyau. Bien que de nombreux pilotes s’exécutent en mode noyau, certains pilotes peuvent s’exécuter en mode utilisateur.

User mode

Lorsqu'une application informatique est en cours d'exécution, elle est en mode utilisateur. Quelques exemples sont les applications type PowerPoint, lecture d'un fichier PDF ou la navigation sur Internet. Ce sont des programmes d'application pour que l'ordinateur soit en mode utilisateur. Lorsque le processus est en mode utilisateur et nécessite une ressource matérielle, cette demande est envoyée au noyau. Comme il y a un accès limité au matériel dans ce mode, il est connu comme mode moins privilégié, mode esclave ou mode restreint.
En mode utilisateur, les processus ont leur propre espace d'adressage et ne peuvent pas accéder à l'espace d'adressage qui appartient au noyau. Ainsi, l'échec d'un processus n'affectera pas le système d'exploitation. S'il y a une interruption, cela n'affecte que ce processus particulier.

Kernel mode

Un noyau est un logiciel utilisé pour accéder aux composants matériels d'un système informatique. Le noyau fonctionne comme un logiciel intermédiaire pour le matériel et les logiciels d'application / programmes utilisateur. Le mode noyau est généralement réservé aux fonctions de confiance de bas niveau du système d'exploitation.
Lorsque le processus s'exécute en mode utilisateur et si ce processus nécessite des ressources matérielles telles que la RAM, l'imprimante, etc., ce processus doit envoyer une requête au noyau. Ces demandes sont envoyées via des appels système. Ensuite, l'ordinateur entre en mode noyau à partir du mode utilisateur. Lorsque la tâche est terminée, le mode repasse en mode utilisateur à partir du mode noyau. Cette transition est connue sous le nom de "changement de contexte». Le mode noyau est également appelé mode système ou mode privilégié. Il n'est pas possible d'exécuter tous les processus en mode noyau car si un processus échoue, tout le système d'exploitation peut échouer.

Communication entre les composants en mode utilisateur et en mode noyau