Qu'est-ce que le mode utilisateur vs le mode du noyau dans Windows

Qu'est-ce que le mode utilisateur vs le mode du noyau dans Windows

Vous avez peut-être entendu parler des applications exécutées en mode «noyau» ou «utilisateur». Tout dépend du fonctionnement des systèmes d'exploitation lorsqu'ils font leur travail. Une fois que vous comprenez cela, il est facile de saisir la différence entre le mode utilisateur et le mode du noyau.

Dans la mémoire de l'ordinateur électronique, les bits sont représentés par des cellules de mémoire ayant une charge au-dessus ou en dessous d'un certain seuil. Sur un disque dur mécanique, les bits sont représentés comme des fluctuations magnétiques mesurées sur un plateau de filage. Sur les disques optiques, les fosses et les terres qui font ou ne reflètent pas la lumière laser faire le même travail.

Peu importe comment la représentation physique du code binaire est obtenue, vous pouvez éventuellement réduire tous les composants de l'ordinateur grand public à ce code machine brut.

Alors, comment passez-vous de l'interface adaptée à l'homme d'un ordinateur aux processus bruts de bas niveau de l'ordinateur lui-même? C'est là que le système d'exploitation entre. Il contrôle directement le matériel de l'ordinateur.

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

Quel est 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 RAM et dirige tout ce que fait l'ordinateur. Quand quelque chose est écrit dans la mémoire, c'est le noyau qui dirige l'exécution.

Le noyau sait comment s'interfacer avec du matériel tel que des GPU et des cartes réseau, mais il peut ne pas savoir comment les faire fonctionner à leur plein potentiel, en s'appuyant sur des normes génériques dans l'industrie informatique.

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

Équipé des bons pilotes, le noyau est l'autorité ultime de l'ordinateur, y compris faire des choses qui peuvent détruire catastrophiquement les données.

Le rôle des interfaces de programmation d'applications (API)

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

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

L'écran de sélection de la carte son de Wolf3d

Microsoft DirectX est un excellent exemple. Si vous voulez une explication approfondie, consultez ce qui est DirectX et pourquoi est-ce important? Cependant, la chose la plus importante à savoir est que l'API offre un moyen standard pour les développeurs de logiciels de demander des ressources matérielles à des composants comme le GPU. De plus, les fabricants de matériel doivent seulement s'assurer que leurs produits sont conformes à DirectX pour assurer une compatibilité complète avec tout logiciel conforme également.

Les API offrent une couche de traduction entre les applications logicielles et le noyau de bas niveau avec ses pilotes matériels. Oui, cela est livré avec une légère pénalité de performance. Pourtant, sur les ordinateurs modernes, cela est négligeable, et il est livré avec une variété d'avantages, c'est là que nous venons enfin en mode utilisateur et en mode noyau.

Mode utilisateur vs. Mode de noyau

Les systèmes d'exploitation modernes exécutent des centaines ou des milliers de «processus» simultanément, leur donnant dynamiquement le temps de processe.

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

Un processus Windows en mode utilisateur n'a accès qu'à son propre espace d'adresse mémoire virtuelle privée et à la table de manche. Le logiciel utilise ces tableaux pour stocker des données dans RAM et demander des ressources. Il n'y a pas d'accès direct à la mémoire ou à tout autre matériel, et il appartient au système d'exploitation pour cartographier ces espaces virtuels au 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 les données en dehors de son espace d'adresse mémoire virtuelle. De plus, certaines fonctions sont interdites aux processus en mode utilisateur, principalement ceux qui pourraient écraser le système ou détruire les 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. Ainsi, en théorie, il pourrait écraser les données cruciales que le système d'exploitation doit exécuter correctement.

Pièges et exceptions

Il est important de comprendre que ces deux modes sont appliqués au niveau matériel par le CPU lui-même. Si une application exécutée en mode utilisateur essaie de faire quelque chose qui nécessite un accès en mode noyau, il génère un «piège» ou «exception."Le système d'exploitation s'occupe ensuite de l'application, généralement en le fermant et en générant un journal de collision afin que les développeurs puissent voir ce qui s'est passé en mémoire lorsque les choses ont quitté les rails.

Les dangers du mode du noyau: l'écran bleu de la mort

Si vous avez déjà vécu un écran bleu de la mort (qui ne l'a pas?) Cela a forcé votre ordinateur à é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é, le système d'exploitation ne peut pas s'en remettre, et l'ensemble de l'ordinateur s'arrête. Lorsqu'un processus en mode utilisateur devient un détrager, 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 jouent un rôle essentiel car c'est l'API qui demande des privilèges en mode noyau. Les applications en mode utilisateur déléguent essentiellement les demandes qui auraient nécessité des privilèges en mode noyau à l'API.

C'est pourquoi le mode du 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 le mode utilisateur ne peut fournir. Certaines instructions du CPU ne fonctionnent que en mode noyau, donc si un processus doit utiliser ces fonctions, elle doit être élevée.

Si vous rencontrez des problèmes avec l'écran bleu de la mort, assurez-vous de lire notre Guide de dépannage de l'écran bleu de la mort pour Windows 10!