Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

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 classiques, essentiellement monolithiques, le Hurd se compose d'un micro-noyau, qui fournit uniquement 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 services, fournissant des fonctions plus avancées (système de fichiers, pilotes évolués, ...). Cette conception est donc plus modulaire et plus facile à faire évoluer dynamiquement, au prix d'un peu plus de consommation de ressources.

Actuellement, le micro-noyau utilisé est GNU Mach, mais les efforts sont dirigés vers le portage du Hurd sur le micronoyau 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 se compose donc d'un ensemble de services fonctionnant en interaction. Au lieu d'un seul code source imposant incluant absolument tout, de la gestion du synchronisme jusqu'au réseau, chacun de ses composants est géré par un service. Cela rend en principe le développement du Hurd plus commode, puisque modifier l'un des services peut alors se faire sans arrêter le 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 a 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 suffisamment 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éjà 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.

Liens internes

[ Plan 9 | Free Software Foundation | GNU ]



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia