La conception du noyau Linux est-elle obsolète?

La conception du noyau Linux est-elle obsolète?

Linux a fait de grands progrès au fil des ans, allant bien au-delà de ce qu'il était quand il a commencé. Mais un rédacteur s'est récemment demandé si Linux souffrait d'une conception de noyau obsolète. Il a posé sa question dans le subreddit Linux et a obtenu des réponses intéressantes.

Ronis_BR a démarré le fil avec ces commentaires:

J'utilise Linux depuis 2004. Je sais beaucoup comment utiliser le système, mais je ne comprends pas trop ce qui se trouve sous le capot du noyau. En fait, mes connaissances s'arrêtent à la manière de compiler mon propre noyau.

Cependant, je voudrais demander aux informaticiens ici à quel point le noyau Linux est-il obsolète par rapport à sa conception? Je veux dire, cela a été lancé en 1992 et certaines caractéristiques n'ont pas changé. D'un autre côté, je suppose que l'état de l'art de la conception du noyau du système d'exploitation (si cela existe ...) aurait dû beaucoup évoluer.

Est-il possible d'indiquer en quels points la conception du noyau Linux est plus avancée par rapport à la conception des noyaux Windows, macOS, FreeBSD? (Remarquez que je veux dire la conception, pas celle qui est la meilleure. Par exemple, HURD a une excellente conception, mais il est assez simple de dire que Linux est beaucoup plus avancé aujourd'hui).

Plus sur Reddit

Ses collègues rédacteurs Linux ont répondu avec leurs réflexions sur la conception du noyau:

ExoticMandibles : «« Obsolète »? Non. La conception du noyau Linux est bien informée sur la conception du noyau moderne. C'est juste qu'il y a des choix à faire, et Linux est allé avec le traditionnel.

La tension dans la conception du noyau se situe entre «sécurité / stabilité» et «performance». Les micro-noyaux favorisent la sécurité au détriment des performances. Si vous avez un micro-noyau minimal minuscule, où le noyau facilite la communication avec le matériel, la gestion de la mémoire, l'IPC et rien d'autre, il aura une surface d'API relativement petite, ce qui le rend difficile à attaquer. Et si vous avez un pilote de système de fichiers / pilote graphique / etc bogué, le pilote peut planter sans démonter le noyau et peut probablement être redémarré sans danger. Stabilité supérieure! Sécurité supérieure! Toutes les bonnes choses.

L'inconvénient de cette approche est la surcharge éternelle et inéluctable de tout cet IPC. Si votre programme veut charger des données à partir d'un fichier, il doit demander au pilote du système de fichiers, ce qui signifie IPC pour ce processus un changement de contexte de processus et deux transitions en anneau. Ensuite, le pilote du système de fichiers demande au noyau de parler au matériel, ce qui signifie deux transitions en anneau. Ensuite, le pilote du système de fichiers envoie sa réponse, ce qui signifie plus de deux transitions en anneau IPC et un autre changement de contexte. Surcharge totale: deux commutateurs de contexte, deux appels IPC et six transitions de sonnerie. Très cher!

Un noyau monolithique replie tous les pilotes de périphériques dans le noyau. Ainsi, un pilote graphique bogué peut détruire le noyau, ou s'il a une faille de sécurité, il pourrait éventuellement être exploité pour compromettre le système. Mais! Si votre programme a besoin de charger quelque chose à partir du disque, il appelle le noyau, qui effectue une transition en anneau, communique avec le matériel, calcule le résultat et renvoie le résultat en effectuant une autre transition en anneau. Surcharge totale: deux transitions en anneau. Beaucoup moins cher! Plus vite!

En un mot, l'approche du micro-noyau dit «abandonnons les performances pour une sécurité et une stabilité supérieures»; l'approche du noyau monolithique dit "conservons les performances et résolvons simplement les problèmes de sécurité et de stabilité au fur et à mesure qu'ils surgissent". Le monde semble accepter sinon préférer cette approche.

ps Windows NT n'a jamais été un pur micro-noyau, mais il a été micro-noyau pendant longtemps. NT 3.x avait des pilotes graphiques comme processus utilisateur, et honnêtement NT 3.x était super stable. NT 4.0 a déplacé les pilotes graphiques dans le noyau; c'était moins stable mais beaucoup plus performant. C'était une décision généralement populaire. »

F22Rapture : «Un avantage pratique de l'approche du noyau monolithique appliquée à Linux est qu'elle pousse les fournisseurs de matériel à intégrer leurs pilotes dans le noyau, car peu de fournisseurs de matériel veulent suivre les changements d'interface du noyau par eux-mêmes. Étant donné que la majorité des pilotes sont dans l'arborescence, les interfaces peuvent être continuellement refactorisées sans qu'il soit nécessaire de prendre en charge les API héritées. Le noyau garantit seulement qu'ils ne briseront pas l'espace utilisateur, pas l'espace noyau (pilotes), et il y a beaucoup de désabonnement en ce qui concerne ces interfaces de pilotes, ce qui pousse les fournisseurs à intégrer leurs pilotes. Nvidia est l'un des rares fournisseurs auxquels je puisse penser qui dispose des ressources nécessaires pour maintenir son propre pilote hors de l'arborescence basé entièrement sur des composants propriétaires.

Je soupçonne que si les pilotes étaient leurs propres petites îles séparées par des interfaces stables, nous pourrions ne pas avoir autant d'entreprises disposées à ouvrir leur code.

Mallardtheduck : «Dans ce contexte,« monolithique »ne signifie pas avoir (presque) tout le code du noyau et du pilote dans une seule arborescence source, il fait référence au fait que l'ensemble du noyau et des pilotes s'exécutent comme une seule« tâche »dans un espace d'adressage unique.

Ceci est différent d'un «micro-noyau» où les divers éléments et pilotes du noyau s'exécutent comme des tâches séparées avec des espaces d'adressage séparés.

Comme mentionné, le noyau Windows est fondamentalement monolithique, mais les pilotes sont toujours développés séparément. macOS utilise une sorte de noyau hybride qui utilise un micro-noyau en son cœur, mais qui a toujours presque tout dans une seule "tâche", bien que presque tous les pilotes aient été développés / fournis par Apple. "

Slabity : «Les gens se disputent cela depuis avant 2004. Le débat Tanenbaum-Torvalds en 1999 1992 est un grand exemple des arguments entre les conceptions de micro-noyau et de noyau monolithique.

Je fais personnellement partie du camp du micro-noyau. Ils sont plus propres, plus sûrs et plus portables. À cet égard, la conception du noyau était obsolète au moment de sa création.

… Linux a surmonté de nombreux problèmes liés aux conceptions de noyau monolithiques. Il est devenu modulaire, sa politique de code stricte l'a maintenu relativement sûr, et je ne pense pas que quiconque contesterait sa portabilité. »

TEchnicolourSocks : «Il n'y a qu'une seule manière correcte de concevoir le noyau et c'est la manière de TempleOS.

Écrit en HolyC, sans réseau, ring-0 uniquement. Comme Dieu l'a voulu.

Scandalousmambo : «La nature du développement d'un système aussi complexe que le noyau Linux signifie qu'il sera toujours" obsolète "selon les personnes qui étaient en chaise haute lors de sa conception.

Ce système d'exploitation représente probablement des dizaines de millions d'heures de travail.

Peut-il être remplacé? Sûr. Est-ce que cela va? Non."

Grumbel : «En termes purement pratiques, cela ne fait plus beaucoup de différence. À l'époque, HURD était plutôt cool avec ses systèmes de fichiers en espace utilisateur et autres. Mais Linux a depuis lors gagné la plupart de ces fonctionnalités. Si vous souhaitez écrire un système de fichiers, un pilote USB ou un périphérique d'entrée dans l'espace utilisateur, vous pouvez, sans avoir besoin de pirater le noyau. Vous pouvez maintenant même patcher le noyau au moment de l'exécution si vous le souhaitez vraiment.

La philosophie Linux de ne pas écrire de pilotes bogués qui plantent le noyau en premier lieu, au lieu de le rendre super robuste contre des pilotes de merde, semble également fonctionner assez bien dans le monde réel. Nous devons probablement remercier USB pour cela, car le matériel auto-descriptif a éliminé le besoin d'écrire un nouveau pilote pour chaque nouveau gadget que vous branchez sur le PC.

Ainsi, tout le débat sur la conception est maintenant encore plus académique qu'il ne l'était auparavant, car il ne reste plus beaucoup de fonctionnalités que vous gagneriez uniquement par des modifications de conception et que vous ne pourriez pas implémenter dans un noyau monolithique.

KugelKurt : «Bien qu'une grande partie de la discussion ici porte sur les micro-noyaux par rapport au noyau monolithique, des recherches plus récentes ont porté sur les langages de programmation.

Si vous démarrez un noyau complètement nouveau aujourd'hui, il y a de fortes chances qu'il ne soit pas écrit dans C. Les projets Singularity et Midori de Microsoft ont exploré la faisabilité des noyaux de code managé / C #.

Le système d'exploitation non-recherche le plus connu sans noyau C est probablement Haiku qui est écrit en C ++. »

OmniaVincitVeritas : «Il était obsolète lors de sa création et l'est toujours. Mais, comme nous le savons, le progrès technique ne fonctionne presque jamais de sorte que la solution techniquement / scientifiquement supérieure monte au sommet à court terme; tant d'autres choses influencent aussi le succès.

Si c'était le cas, nous exécuterions des micro-noyaux 100% sûrs écrits en Haskell. Les sociétés de sécurité n'existeraient pas. J'aurais un hybride licorne / poney qui fonctionne à la lumière du soleil.

Daemonpenguin : «Certains concepts peuvent, en théorie, fournir de meilleures conceptions de noyau. Il existe un noyau Rust, par exemple, qui pourrait contourner un certain nombre de vecteurs d'attaque mémoire. Les micro-noyaux ont, en théorie, de très bons choix de conception qui les rendent portables, fiables et potentiellement autocorrecteurs.

Cependant, le problème est qu'il s'agit plus de théorie que de pratique. Quelle que soit la qualité d'une théorie, les gens prendront presque toujours ce qui est pratique (c'est-à-dire travailler maintenant) plutôt qu'une meilleure conception. Le noyau Linux a tellement de support matériel et tellement d'entreprises finançant le développement qu'il est peu probable que d'autres noyaux (quels que soient leurs choix de conception sympas) rattrapent leur retard.

MINIX, par exemple, a une conception solide et des fonctionnalités impressionnantes, mais a très peu de support matériel, donc presque personne ne développe pour la plate-forme. »

Plus sur Reddit

Avis sur DistroWatch 4MLinux 21.0

Linux propose de nombreux types de distributions. Certains sont fournis avec plus de logiciels et d'autres avec moins. 4MLinux s'adresse à ceux qui préfèrent une distribution légère. Un écrivain de DistroWatch a un examen complet de 4MLinux 21.0.

Joshua Allen Holm rapporte pour DistroWatch:

4MLinux est une distribution Linux légère conçue pour fournir quatre domaines clés de fonctionnalités. Avec juste le logiciel disponible sur l'ISO, 4MLinux fournit une grande variété d'applications pour la maintenance du système; lecture de nombreux types de fichiers multimédias; offrir un miniserver pour fournir un serveur Web de base; et il a une sélection décente de jeux, que la distribution place dans une catégorie qu'elle appelle mystère. Ces quatre fonctions constituent la base du nom de la distribution. Quatre choses qui commencent par "M", donc 4MLinux.

Démarrer 4MLinux à partir d'un lecteur flash est un processus rapide. J'ai été rapidement et automatiquement connecté en tant que root et j'ai pu commencer à travailler dans l'environnement de bureau. Pour le bureau, 4MLinux utilise JVM combiné avec un lanceur Wbar en haut de l'écran qui fournit des raccourcis vers les principaux programmes. De plus, IDesk gère le bureau et Conky fournit des informations de base sur l'état du système. Wbar, IDesk et Conky peuvent tous être désactivés, mais le système est déjà très léger lorsqu'ils sont dans leur état activé par défaut.

Hors de la boîte, 4MLinux est livré avec une sélection décente de logiciels. Dans le menu de l'application JVM, il y a des raccourcis pour un terminal, les applications Internet, la maintenance, le multimédia, le miniserver et le mystère. Le sous-menu Internet contient des liens pour la navigation Web, HexChat pour IRC, Sylpheed pour e-mail, Transmission pour Bittorrent, uGet pour le téléchargement, un utilitaire pour partager des fichiers via Bluetooth, GNOME PPP pour les connexions Internet commutées et une option pour activer et désactiver Tor.

4MLinux fournit de nombreux logiciels dans un petit paquet. Pour la maintenance du système, c'est un bon choix d'avoir sous la main. Pour le multimédia, le miniserver et le mystère, il fournit une sélection utile de logiciels, mais il existe d'autres distributions qui se concentrent sur une seule de ces tâches et le font mieux en étant plus ciblées. Cela ne veut pas dire que 4MLinux est mauvais, mais il essaie de faire trop de choses différentes à la fois. Pour être tout à fait honnête, je pense que 4MLinux serait une offre plus puissante s'il s'agissait de 3MLinux et qu'il supprimait complètement l'aspect mystère. Peut-être inclure juste un solitaire ou un autre jeu léger à avoir comme diversion pendant l'exécution des tâches de maintenance et utiliser l'espace libéré en supprimant les jeux pour inclure certaines des applications d'extension optionnelles par défaut.

Plus sur DistroWatch

Avis sur LinuxInsider Ultimate Edition 5.4

Ultimate Edition, d'autre part, est à l'extrémité opposée du spectre de 4MLinux. UE est définitivement un délice pour les maximalistes car il est rempli de logiciels. Un écrivain de LinuxInsider a une critique complète de Ultimate Edition 5.4.

Jack M. Germain rapporte pour LinuxInsider:

Je n'étais pas ravi de mes premières expériences pratiques pour me familiariser avec Ultimate Edition 5.4. J'ai trouvé une liste ennuyeuse de problèmes.

Avec de nombreuses années à passer en revue les distributions Linux à mon actif, j'ai remarqué un lien solide entre les premières impressions du site Web d'une distribution et les impressions durables des performances d'une distribution. Disons simplement que l'état désorganisé du site Web, dans ce cas, se poursuit dans la dernière version de cette distribution.

Un petit exemple: je n'ai trouvé nulle part de liste des exigences d'installation minimales pour le matériel. Cela s'est avéré frustrant. J'ai perdu du temps à essayer de charger Ultimate Linux sur plusieurs ordinateurs vieillissants. Certains des problèmes étaient liés à la mémoire et à l'espace de stockage. D'autres problèmes concernaient des insuffisances de la carte graphique.

Ultimate Edition cible les nouveaux venus sous Linux, mais ceux qui l'essaient pourraient avoir besoin d'un peu plus de familiarité avec Linux pour contourner certains des problèmes liés à l'exécution de ce système d'exploitation Linux pas si ultime.

Plus sur LinuxInsider

Avez-vous manqué une rafle? Consultez la page d'accueil d'Eye On Open pour vous tenir au courant des dernières nouvelles sur l'open source et Linux .