• [^] # Re: ben

    Posté par . En réponse au journal GNU/Hurd c'est quoi au fait ?. Évalué à 10.

    Je doute que l'interview d'un Linus ou d'un RMS soit la meilleure façon d'avoir un avis objectif, ou même seulement correct et précis sur le Hurd et son état actuel. Si RMS suit plus que Linus son développement, on ne peut pas dire que RMS soit impliqué ou comprenne vraiment ce qu'il s'y passe (et encore heureux). L'interview est ceci dit disponible sur http://kerneltrap.org/node/4484(...) ;

    Concernant la prétendue "réécriture", c'est exactement le genre d'imprécisions qui arrivent quand on écoute l'un ou l'autre. C'est simplement faux. Les développeurs du Hurd ont décidé d'utiliser un autre micro-noyau (L4) que celui utilisé originellement (GNU Mach). Les raisons en sont multiples : d'abord, GNU Mach n'est plus maintenu depuis une dizaine d'années ou presque, et il contient un nombre de bugs impressionants qui ont été découvert avec le temps (le matériel et les besoins évoluant, un logiciel parfaitement stable en 1993 peut se retrouver inutilisable dix ans plus tard, on voit ce problème avec les jeux) ; ensuite, GNU Mach est dépassé techniquement, et il ne permet pas aux yeux des développeurs de créer un Hurd qui soit une alternative crédible aux autres systèmes, notamment pour des raisons de performance ; enfin, c'est un micro-noyau de première génération, très éloigné techniquement de ce qui se fait aujourd'hui dans ce domaine, et il serait insensé de sortir une version du Hurd ne tirant pas profit des micro-noyaux dits de "seconde génération" comme L4.

    Les différences entre GNU Mach et L4 sont importantes : l'histoire de Mach remonte à 1975, et la version sur laquelle est basée GNU Mach remonte à 1989, et a évolué jusqu'en 1994 environ. Bien qu'il laisse à l'espace utilisateur un grand nombre de tâches (VFS et systèmes de fichiers, gestion des droits, des processus, une partie de la gestion de la mémoire virtuelle), il garde pas mal de tâches en son sein (la plus grosse partie de la VM, l'ordonnanceur, les pilotes de périphériques, il a un système évolué de communication entre les processus, intégrant des systèmes de sécurité, etc.). C'est ce qui en fait un micro-noyau de première génération.

    L4, lui, voit les choses différemment (et il le peut car il hérite de quelques années de recherche de plus dans le domaine). Il n'implémente en son sein que des -mécanismes- de base qui nécessitent de toutes façons des droits privilégiés sur le matériel : mapper/démapper une page, changer le thread en cours d'exécution, envoyer un message d'un thread à un autre, accès basique au matériel, ce genre de choses. Ce ne sont plus des bouts entiers du système d'exploitation qui sont dans le micro-noyau, comme avec Mach, mais des outils. Tout ce qui définit la personnalité du système d'exploitation : gestion de la mémoire virtuelle, pilotes de périphérique, ordonnancement (L4 a un mini-ordonnanceur (RR à priorités strictes), mais la partie décisions d'ordonnancement se fait en espace utilisateur (détermination des priorités)), ou tout ce que vous pouvez voir dans un noyau actuel, se trouve en espace utilisateur.

    C'est une différence fondamentale, effectivement. Mais ça ne veut certainement pas dire tout réécrire ! Imaginez le Hurd comme un ensemble de pièces de légo associées les une aux autres savamment, avec les parties "basses" elles-mêmes associées à une grosse pièce de légo, GNU Mach. On divise la hauteur de la pièce du bas par deux, et on enlève la partie supérieure. Il va vous falloir de fait recréer une partie supérieure différente, et qui fournisse tant que c'est possible les mêmes attaches avec les pièces situées plus haut. Évidemment, ça ne sera pas toujours possible et du coup, il faudra peut-être modifier quelques pièces basses de la partie supérieure (le Hurd), mais c'est mineur. Là, c'est exactement pareil. Tout ce qui était dans GNU Mach et qui n'est pas dans L4 doit être réécrit totalement différemment (en espace utilisateur, et c'est un avantage énorme). Mais le reste, ce qui existe déjà dans le Hurd, ne bouge pas ou peu.

    Pas de réécriture à l'ordre du jour, donc.