GNU Hurd

GNU Hurd

Hurd

Logo de Hurd

Le Hurd est un ensemble de programmes et de bibliothèques servant de base au système d'exploitation GNU. Commencé vers 1990, il s'agit d'un logiciel libre soumis à la licence GNU 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.

Le nom « Hurd » est un double acronyme récursif, « Hurd » signifiant « Hird of Unix-Replacing Daemons », et « Hird » « Hurd of Interfaces Representing Depth ».

Sommaire

Architecture à micro-noyau

Contrairement aux noyaux UNIX classiques, essentiellement monolithiques, le Hurd se fonde sur un micro-noyau, qui fournit uniquement les fonctions de base (accès basique au matériel et à la mémoire, gestion des tâches et de la communication entre celles-ci). Il se compose d'une série de services (appelés serveurs), fournissant des fonctions et des abstractions de plus haut niveau (système de fichiers, processus Unix, gestion des permissions, console, pilotes évolués...). Cette conception est donc plus modulaire et plus facile à faire évoluer dynamiquement. Cependant, ces serveurs indépendants doivent fréquemment communiquer, ce qui affecte les performances du système.

Actuellement, le micro-noyau utilisé est GNU Mach, une implémentation 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 Mach, tels OSF/1, NeXTSTEP, Lites (voir (en) 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 un serveur monolithique qui fournit la compatibilité Unix (BSD le plus souvent, sauf évidemment pour MkLinux). Mac OS X utilise également Mach comme base de son noyau monolithique xnu.

Spécificités du Hurd

Le Hurd se compose donc d'un ensemble de serveurs fonctionnant en interaction. Au lieu d'un seul programme imposant incluant absolument tout, de la gestion du synchronisme jusqu'au réseau, chacun de ses composants est géré par un serveur indépendant. Chaque serveur fournit un certain nombre de services, sous formes d'appels (RPC). Ces appels sont organisés en interfaces. Ces interfaces sont définies indépendamment des serveurs fournis par le Hurd : elles sont censées être stables (elles n'ont changé qu'une seule fois depuis 1999) et documentées.

Cela rend en principe le développement du Hurd plus facile. Pour remplacer un composant, il suffit de créer un serveur implantant ces mêmes interfaces. On peut aussi remplacer et/ou modifier les composants non essentiels (la majorité) sans arrêter le système. De plus, si l'un des composants plante, il ne doit pas entraîner l'ensemble du système.

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. 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.

En particulier, il fait sienne la maxime Unixienne « tout est fichier » et l'étend pour répondre à une problématique courante des systèmes multi-serveurs : l'identification des serveurs et le contrôle d'accès à ceux-ci. En effet, deux serveurs, pour communiquer entre eux, doivent pouvoir se contacter. Sur Internet, ce sont les adresses IP et le DNS qui remplissent ce rôle. Dans le monde CORBA, ce sont les IOR. MachOS proposait un service de nommage qui permet de contacter un serveur par son nom. Cependant, ce système ajoute un élément critique au système (le serveur de noms) et ne règle pas la question du contrôle d'accès. Le Hurd prend le parti d'utiliser le système de fichiers comme système de nommage : à chaque fichier, il associe un programme. Ces programmes sont des serveurs ordinaires qui implantent une interface particulière : celle des accès fichiers (lecture, écriture, changement des droits et de propriétaire, etc.) : ils sont appelés traducteurs (translator). Tous les serveurs du Hurd sont des traducteurs, exceptés auth et proc (pour lesquels toute tâche créée dispose automatiquement d'un moyen de communiquer avec ces serveurs). Les systèmes de fichiers sont un exemple de traducteur : ils sont associés à tous les fichiers fournis par ce système de fichiers. Ce qui correspond au montage sous UNIX est le lancement d'un traducteur de fichier sous GNU/Hurd. La nature des traducteurs (programmes ordinaires) rend plus aisé la conception de services spécifiques comme le traducteur ftpfs permet à l'utilisateur de naviguer sur un site FTP distant comme dans une arborescence locale, ou mirrorfs, qui permet à l'utilisateur de monter plusieurs systèmes de fichiers les uns sur les autres.

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, et aucun processus ne peut (normalement) obtenir un privilège qu'il n'a pas au démarrage. Sous GNU/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é.

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 GNU/Hurd, qui sera alors un sous-Hurd (un Hurd dans le Hurd).

Distributions

Richard Stallman, fondateur du projet GNU, avait 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 avait beaucoup surpris les développeurs !). Il n'existe qu'une distribution basée sur le Hurd, encore au stade de développement, mais qu'il est possible d'utiliser pour certaines tâches non critiques : Debian GNU/Hurd. Un LiveCD basé sur Debian GNU/Hurd également, réalisé par Ben Asselstine avec l'aide d'Alfred Szmidt. Ce LiveCD fournit un système de base suffisant pour découvrir et démontrer les fonctionnalités de GNU/Hurd.

Ces distributions utilisent toutes un chargeur de démarrage (bootloader) qui puisse gérer la spécification multiboot, comme GRUB, ce qui est requis pour utiliser le Hurd.

Compte-tenu de la disponibilité d'autres noyaux de système d'exploitation qui permettent une utilisation de l'ensemble des outils GNU, le développement est lent. Ce noyau souffre encore d'importantes limitations liées au support matériel. Il n'existe ainsi aucun support pour les cartes son.

Voir aussi

Articles connexes

Liens externes

  • Portail des logiciels libres Portail des logiciels libres
  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Hurd ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article GNU Hurd de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • GNU Hurd — Hurd redirects here. For other uses, see Hurd (disambiguation). GNU Hurd HURD Live CD Company&# …   Wikipedia

  • GNU HURD — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

  • GNU Hurd — HURD …   Википедия

  • GNU Hurd — Live CD de Hurd …   Wikipedia Español

  • GNU/Hurd — GNU Hurd Entwickler GNU Hurd Entwicklerteam Architekturen IA 32 …   Deutsch Wikipedia

  • GNU Hurd — Bildschirmfoto …   Deutsch Wikipedia

  • Gnu hurd — Entwickler GNU Hurd Entwicklerteam Architekturen IA 32 …   Deutsch Wikipedia

  • GNU/Hurd — GNU GNU Famille Type Unix Type de noyau …   Wikipédia en Français

  • Debian GNU/HURD — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

  • Debian GNU/Hurd — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”