Hurd

Le Hurd est un ensemble de programmes servant de base au système d'exploitation GNU. C'est un logiciel libre, soumis à la licence GPL.

Le but recherché est de remplacer les fonctionnalités d'un noyau de type UNIX, tout en maintenant une large compatibilité avec ceux-ci. Il respecte autant que possible les spécifications POSIX, tout en évitant les restrictions d'action arbitrairement imposées à l'utilisateur.

Contrairement aux noyaux UNIX, de type monolithiques, le Hurd est composé d'un micro-noyau, qui fournit les fonctions de base (accès basique au matériel et à la mémoire, et gestion de tâches) et d'une série de serveurs, fournissant des fonctions plus avancées (système de fichiers, pilotes évolués, ...).

Actuellement, le micro-noyau utilisé est GNU Mach, mais les efforts sont dirigés vers le portage du Hurd sur L4.

Il existe d'autres systèmes de type UNIX utilisant le Mach, tel OSF/1, NEXTSTEP, Mac OS X, Lites et MkLinux. Ils ont en commun une architecture basée sur le modèle serveur: le noyau monolithique du système UNIX traditionnel est ainsi remplacé par deux composants distincts, le micro-noyau et les serveurs.

Le Hurd est donc un ensemble de serveurs fonctionnant en interaction. Au lieu d'un seul code source conséquent incluant absolument tout, de la gestion du synchronisme jusqu'au réseau, chacun de ces composants est géré par un serveur. Cela rend le développement du Hurd bien plus facile (du moins en théorie) dans le sens où une modification sur un de ces composants comporte moins de risques de compromettre la cohérence de l'ensemble du système. Ceci explique l'acronyme récursif, "Hurd": "Hird of Unix-Replacing Daemons", et "Hird": "Hurd of Interfaces Representing Depth".

Dans le développement initial de Mach, cette idée d'un ensemble de serveurs interagissant était considérée comme un des buts principaux concernant le design, mais le Hurd est apparu comme étant le premier système basé sur Mach, fonctionnant de cette manière (bien que QNX soit similaire dans son mode de fonctionnement, mais il est basé sur son propre micro-noyau) Quoi qu'il en soit, il est apparu que le groupe développant Mach était bien trop occupé à travailler sur Mach pour réfléchir au système d'exploitation dans sa globalité.

Un certain nombre de concepts ayant cours sur UNIX sont implémentés ou étendus dans le Hurd.

Sous Unix, chacun des programmes à un identifiant associé, user id ou ID, qui correspond normalement à celui de l'utilisateur qui l'a lancé. Cet ID dicte les actions permises par ce programme. Aucun processus externe ne peut changer l'ID d'un programme en mémoire. Sur Hurd, un processus tourne sous un ensemble d'identifiants, cet ensemble pouvant être nul (aucun ID associé) ou contenant plusieurs ID. Un processus ayant suffisament de privilèges peut ajouter ou retirer des ID à un autre processus. Par exemple, il existe un serveur password qui retourne un ID lorsque le login est validé.

Concernant le système de fichiers, le programme nécessaire est désigné comme un traducteur pour un simple fichier ou pour une arborescence complète. Chaque accés à ce(s) fichier(s) est en fait géré par ce programme. Par exemple, un traducteur de fichier peut simplement rediriger les opérations de lecture/écriture sur un autre fichier, contrairement au lien symbolique sous UNIX. Ce qui correspond au montage sous UNIX est le lancement d'un traducteur de fichier sous Hurd. Les traducteurs peuvent être aussi utilisés pour fournir un service à l'utilisateur. Exemple : le traducteur ftpfs permet à l'utilisateur de naviguer sur un site FTP distant comme dans une arborescence locale. Des outils standard comme ls, cp, et rm peuvent être aussi utilisés pour manipuler des fichiers sur des systèmes distants. Il existe d'autres traducteurs plus spécifiques tel que shadowfs qui permet à l'utilisateur de monter plusieurs systèmes de fichiers les uns sur les autres.

L'aspect le plus intéressant du Hurd réside dans la capacité qu'a l'utilisateur de lancer son propre système de services. Tout utilisateur peut attacher n'importe quel traducteur à un système de fichiers pour son usage personnel : un utilisateur peut même remplacer des serveurs systèmes, comme le serveur d'authentification, par celui de son choix. Tout cela peut se faire sans affecter les autres utilisateurs, grâce à des privilèges bien définis. En fait, il est même possible, toujours pour le simple utilisateur, de re-lancer un système Hurd, qui sera alors un sous-Hurd (un Hurd dans le Hurd).

Le Hurd requiert un chargeur de démarrage (bootloader) qui puisse gérer le multi-boot, comme GRUB.

Aujourd'hui, il n'existe qu'une distribution basée sur le Hurd, encore au stade de développement, mais qu'il est d'ores et déja possible d'utiliser pour certaines tâches non critiques (serveur web par exemple), c'est le/la Debian GNU/Hurd. Quoi qu'il en soit, Richard Stallman, fondateur du projet GNU, a annoncé qu'il espérait la sortie d'une version officielle de GNU OS (également appelée GNU/Hurd) avant la fin de l'année 2002 (déclaration qui a beaucoup surpris les développeurs !).

Le développement du Hurd est relativement lent, et il existe encore des limitations importantes liées au matériel (il y a un manque de support pour les cartes son par exemple) mais grâce aux efforts fournis par les équipes du projet Debian et par d'autres, ces limitations sont en passe d'être corrigées. Une fois les derniers obstacles franchis, le système GNU sera alors pleinement opérationnel.

Voir aussi

[ Plan 9 | Free Software Foundation | GNU ]



Tous les textes sont disponibles sous les termes de la Wikipedia se publica bajo la Licencia de Documentación Libre GNU.

Legal  -  Contacto