GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment le noyau Linux se compare-t-il aux architectures de micro-noyau ?

J'ai lu une fois que l'un des avantages d'une architecture micro-noyau est que vous pouvez arrêter/démarrer des services essentiels comme le réseau et les systèmes de fichiers, sans avoir à redémarrer l'ensemble du système. Mais étant donné que le noyau Linux de nos jours (a-t-il toujours été le cas ?) Offre la possibilité d'utiliser des modules pour obtenir le même effet, quels sont les avantages (restants) d'un micro-noyau ?

Réponse acceptée :

Les micro-noyaux nécessitent moins de code pour être exécutés dans le mode le plus interne et le plus fiable que les noyaux monolithiques. Cela a de nombreux aspects, tels que :

  • Les micro-noyaux permettent de charger et de décharger à volonté des fonctionnalités non fondamentales (telles que des pilotes pour du matériel non connecté ou non utilisé). Ceci est principalement réalisable sous Linux, via des modules.
  • Les micro-noyaux sont plus robustes :si un composant non-noyau tombe en panne, il n'emportera pas tout le système avec lui. Un système de fichiers ou un pilote de périphérique bogué peut planter un système Linux. Linux n'a aucun moyen d'atténuer ces problèmes autres que les pratiques de codage et les tests.
  • Les micro-noyaux ont une base informatique fiable plus petite. Ainsi, même un pilote de périphérique ou un système de fichiers malveillant ne peut pas prendre le contrôle de l'ensemble du système (par exemple, un pilote d'origine douteuse pour votre dernier gadget USB ne pourrait pas lire votre disque dur).
  • Une conséquence du point précédent est que les utilisateurs ordinaires peuvent charger leurs propres composants qui seraient des composants du noyau dans un noyau monolithique.

Les interfaces graphiques Unix sont fournies via X window, qui est du code utilisateur (à l'exception de (une partie) du pilote de périphérique vidéo). De nombreux unices modernes permettent aux utilisateurs ordinaires de charger des pilotes de système de fichiers via FUSE. Une partie du filtrage de paquets du réseau Linux peut être effectuée en mode utilisateur. Cependant, les pilotes de périphériques, les planificateurs, les gestionnaires de mémoire et la plupart des protocoles réseau sont toujours réservés au noyau.

Une lecture classique (si datée) sur Linux et les micro-noyaux est le débat Tanenbaum-Torvalds. Vingt ans plus tard, on peut dire que Linux évolue très très lentement vers une structure de micro-noyau (les modules chargeables sont apparus très tôt, FUSE est plus récent), mais le chemin est encore long.

Une autre chose qui a changé est la pertinence accrue de la virtualisation sur les ordinateurs de bureau et les ordinateurs embarqués haut de gamme :pour certaines applications, la distinction pertinente n'est pas entre le noyau et l'espace utilisateur, mais entre l'hyperviseur et les systèmes d'exploitation invités.

Connexe :Comment personnaliser la saisie semi-automatique bash pour répertorier les fichiers dans un autre répertoire ?
Linux
  1. Comment mettre à niveau le noyau sur Linux Desktop

  2. Comment vérifier la version du noyau sous Linux

  3. Linux - Comment recharger correctement un module du noyau ?

  4. Comment fonctionne copy_from_user du noyau Linux en interne ?

  5. Comment coder un module du noyau Linux ?

Comment comparer des répertoires avec Meld sous Linux

Comment comparer deux fichiers dans un terminal Linux

Comment construire le noyau Linux à partir de zéro

Comment fonctionne la mémoire d'échange sous Linux ?

Comment Docker exécute-t-il un noyau Linux sous un hôte macOS ?

Comment Linux charge-t-il l'image 'initrd' ?