• [^] # Re: Debian et L4

    Posté par . En réponse à la dépêche Interview de Richard Stallman sur KernelTrap. Évalué à 3.

    Les Loadable Kernel Modules (LKM pour les intimes) ne changent fondamentalement rien à la nature de Linux, comme pBpG le faisait remarquer. Ce qui change, c'est la façon dont on constitue le noyau, en ayant une base et en rajoutant/enlevant à volonté ce que l'on souhaite dedans. Mais le résultat est exactement le même : un gros logiciel avec les privilèges maximaux sur le matériel (mode "noyau"), plein de fonctionnalités, sans séparation claire entre les parties, sans cloisonnement.

    Les LKM ne sont rien de plus qu'une facilité de plus pour l'utilisateur. Qui plus est, comme tu y vas fort quand tu parles de noyau "minimaliste" : les parties essentielles du noyau (gestion de la mémoire, ordonnancement, VFS, fondement de la gestion des périphériques) se trouvent encore présentes. Il n'y a, grosso modo, que la partie "pilotes de périphériques" (qui est, contrairement à ce qu'on se représente souvent, une partie assez peu conséquente d'un noyau "classique") et les systèmes de fichiers qui soit "modularisée". Et les initiés se rendront compte que ce sont là deux des parties les plus simples à comprendre du noyau, de par leur modularité justement.

    Mais ça ne change rien aux problèmes de fond : celui de la sécurité, celui des effets de bord, celui de la substituabilité des composants, celui, tout à fait lié, de la stabilité des interfaces (l'instabilité des interfaces est au contraire un dogme pour Linus, de la même façon que la non-séparation des parties répond à son dogme du "No design, code"), et j'en passe.

    Pour en revenir à la question "Peut-on qualifier Linux de monolithique ?", il faut définir "noyau" au sens où on l'entend classiquement en développement d'OS. Il s'agit de l'ensemble du code qui tourne avec des privilèges particuliers sur le matériel. Il est assez difficile ensuite de définir micronoyau et noyau monolithique de façon "statique", à instant 't' : c'est le mouvement "vers le noyau" ou "vers l'espace utilisateur" qu'on considère souvent comme définissant s'il s'agit d'un noyau monolithique ou non. Dans Linux, tout (VM, ordonnancement, pilotes de périphérique, systèmes de fichiers, gestion des droits, ...) se trouve en "mode noyau". Et de plus en plus de choses se retrouvent dans le noyau, et très peu de choses sont bougées en user space. C'est définitivement un noyau monolithique. Quel que soit la façon dont on construit le monolythe. :-)