Qu'est-ce que le mode utilisateur par rapport au mode noyau dans Windows

Vous avez peut-être entendu parler d'applications fonctionnant en mode « noyau » ou « utilisateur ». Tout dépend de la façon dont les systèmes d'exploitation fonctionnent lorsqu'ils font leur travail. Une fois que vous avez compris cela, il est facile de saisir la différence entre le mode utilisateur et le mode noyau.

Comprendre ce que fait un système d'(Does) exploitation

Un ordinateur se compose de matériel, les composants électroniques et de logiciels, le code informatique exécuté par ce matériel. Mais ce qui est peut-être moins clair, c'est comment ils travaillent ensemble.

L'élément le plus essentiel d'un ordinateur est le bit ou «chiffre binaire». « Tout ce(” Everything) que fait un ordinateur est représenté par des uns et des zéros. Différents(Different) composants informatiques représentent les bits de différentes manières. Dans un processeur(CPU) , les transistors microscopiques représentent les uns et les zéros en étant allumés ou éteints. Ces transistors sont organisés en structures logiques, appelées portes logiques.

Dans la mémoire informatique électronique, les bits sont représentés par des cellules de mémoire ayant une charge supérieure ou inférieure à un certain seuil. Sur un disque dur mécanique, les bits sont représentés par des fluctuations magnétiques mesurées sur un plateau tournant. Sur les disques optiques, les puits et les méplats qui réfléchissent ou non la lumière laser font le même travail. 

Quelle que soit la manière dont la représentation physique du code binaire est obtenue, vous pouvez éventuellement réduire tous les composants informatiques grand public à ce code machine brut.

Alors, comment passer de l'interface conviviale d'un ordinateur aux processus bruts de bas niveau de l'ordinateur lui-même ? C'est là qu'intervient le système d'exploitation. Il contrôle directement le matériel de l'ordinateur. 

Ce logiciel traduit tout ce que les applications (et donc l'utilisateur) veulent en instructions de code machine que le CPU et les autres composants comprennent. Le logiciel le plus critique dans ce processus est le noyau.

Qu'est-ce que le noyau ?

Le noyau est, comme son nom l'indique, le cœur du système d'exploitation. Le noyau est un logiciel qui réside dans la RAM(RAM) et dirige tout ce que fait l'ordinateur. Quand quelque chose est écrit en mémoire, c'est le noyau qui dirige l'exécution.

Le noyau sait comment s'interfacer avec du matériel tel que les GPU(GPUs) et les cartes réseau, mais il ne sait peut-être pas comment les exploiter à leur plein potentiel, en s'appuyant sur les normes génériques de l'industrie informatique.

Les pilotes matériels entrent en jeu ici. Les pilotes indiquent à votre système d'exploitation comment travailler avec des composants spécifiques, c'est pourquoi vous avez besoin de pilotes différents pour les GPU Nvidia et AMD(AMD GPUs) , par exemple.

Équipé des bons pilotes, le noyau est l'autorité ultime au sein de l'ordinateur, y compris faire des choses qui peuvent détruire des données de manière catastrophique.

Le rôle(Role) des interfaces de programmation d'applications(Application Programming Interfaces) ( API(APIs) )

À l'époque de MS-DOS , les développeurs de logiciels devaient écrire leur logiciel spécifiquement pour le matériel de l'utilisateur. L'exemple le plus notoire de cela sur les systèmes MS-DOS était les pilotes de carte son.

Un jeu vidéo donné devrait supporter les cartes les plus populaires ( Sound Blaster , Ad-lib , Gravis Ultrasound , etc.) et espérer que la plupart des joueurs soient couverts. Aujourd'hui, les choses fonctionnent très différemment, grâce aux API(APIs) .

Microsoft DirectX est un excellent exemple. Si vous souhaitez une explication détaillée, consultez Qu'est-ce que DirectX et pourquoi est-ce important ? (What Is DirectX and Why Is It Important?)Cependant, la chose la plus importante à savoir est que l' API offre aux développeurs de logiciels un moyen standard de demander des ressources matérielles à des composants tels que le GPU . De plus, les fabricants de matériel doivent uniquement s'assurer que leurs produits sont conformes à DirectX pour garantir une compatibilité totale avec tout logiciel également conforme.

Les API(APIs) offrent une couche de traduction entre les applications logicielles et le noyau de bas niveau avec ses pilotes matériels. Oui, cela s'accompagne d'une légère pénalité de performance. Pourtant, sur les ordinateurs modernes, cela est négligeable et présente de nombreux avantages, c'est là que nous arrivons enfin au mode utilisateur et au mode noyau.

Mode utilisateur vs mode noyau

Les systèmes d'exploitation modernes exécutent des centaines ou des milliers de "processus" simultanément, leur donnant dynamiquement le temps CPU nécessaire en fonction de leurs priorités et de leurs besoins en puissance de calcul.

Lorsque vous lancez une application, elle génère des processus et le processeur(CPU) peut les exécuter en mode utilisateur ou en mode noyau.

Un processus Windows s'exécutant en mode utilisateur n'a accès qu'à son propre espace d'adressage de mémoire virtuelle privée et à sa table de descripteurs. Le logiciel utilise ces tables pour stocker des données dans la RAM et demander des ressources. Il n'y a pas d'accès direct à la mémoire ou à d'autres matériels, et c'est au système d'exploitation de mapper ces espaces virtuels sur le matériel réel de l'ordinateur.

C'est bon pour de nombreuses raisons, mais l'avantage le plus crucial est que l'application ne peut pas écraser ou modifier des données en dehors de son espace d'adressage de mémoire virtuelle. De plus, certaines fonctions sont interdites aux processus en mode utilisateur, principalement celles qui pourraient planter le système ou détruire des données.

Lorsqu'un processus se lance ou est élevé en mode noyau, il a un accès complet aux ressources système, même celles réservées au système d'exploitation. Donc, en théorie, cela pourrait écraser des données cruciales dont le système d'exploitation a besoin pour fonctionner correctement.

Pièges et exceptions

Il est important de comprendre que ces deux modes sont appliqués au niveau matériel par le processeur(CPU) lui-même. Si une application s'exécutant en mode utilisateur essaie de faire quelque chose qui nécessite un accès en mode noyau, elle génère une « interruption » ou une « exception ». Le système d'exploitation s'occupera ensuite de l'application, généralement en la fermant et en générant un journal de plantage afin que les développeurs puissent voir ce qui s'est passé en mémoire lorsque les choses ont déraillé.

Les dangers du mode noyau(Kernel Mode) : l' écran bleu(Blue Screen) de la mort(Death)

Si vous avez déjà rencontré un écran bleu(Blue Screen) de la mort(Death) (qui ne l'a pas fait ?) Qui a forcé votre ordinateur à s'éteindre ou à redémarrer, il y a de fortes chances que ce soit un processus en mode noyau à blâmer.

Lorsqu'un processus en mode noyau fait quelque chose qu'il n'est pas censé faire, le système d'exploitation ne peut pas s'en remettre et tout l'ordinateur s'arrête. Lorsqu'un processus en mode utilisateur se détraque, seule l'application se bloque, et le reste du logiciel et le système d'exploitation peuvent continuer sans aucun problème.

C'est un domaine où les API(APIs) jouent un rôle essentiel puisque c'est l' API qui demande les privilèges du mode noyau. Les applications en mode utilisateur délèguent essentiellement les requêtes qui auraient requis des privilèges en mode noyau à l' API .

C'est pourquoi le mode noyau n'est généralement accordé qu'aux processus système de bas niveau qui doivent accéder directement au matériel de l'ordinateur. Habituellement, ce privilège est étendu à un processus car il a besoin de plus de performances que ce que le mode utilisateur peut fournir. Certaines instructions CPU ne fonctionnent qu'en mode noyau, donc si un processus doit utiliser ces fonctions, il doit être élevé.

Si vous rencontrez des problèmes avec l' écran bleu(Blue Screen) de la mort(Death) , assurez-vous de lire notre guide de dépannage de l'écran bleu de la mort pour Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

Je suis un ingénieur du son professionnel avec plus de 10 ans d'expérience. J'ai travaillé sur un large éventail de projets, des petits systèmes audio domestiques aux grandes productions commerciales. Mes compétences résident dans la création d'excellentes bandes sonores et d'outils de traitement du son qui rendent la musique excellente. Je suis également extrêmement expérimenté avec Windows 10 et je peux vous aider à tirer le meilleur parti de votre système informatique.



Related posts