GNU Hurd 0.6

85
24
avr.
2015
GNU

Ce 10 avril 2015 était publiée la version 0.6 de GNU Hurd — le projet historique de noyau pour le système GNU (démarré avant le projet Linux), en remplacement du noyau UNIX —, ce que Thomas Schwinge (un des mainteneurs du projet) relayait sur les listes de discussion officielles le 15 avril 2015. Cette nouvelle version arrive à peine plus d'un an et demi après la précédente version (0.5), qui était sortie à l'occasion du 30e anniversaire du projet GNU, 12 ans après la dernière version en amont, étiquetée 0.2. C'est dire que le rythme de progression s'accélère :)

Logo GNU Hurd

Sommaire

Présentation de GNU Hurd

GNU Hurd est le projet GNU de remplacement pour le noyau UNIX. Il est constitué d’une collection de serveurs — exécutés en surcouche du micro-noyau Mach — implémentant les services de système de fichiers, de protocoles réseau, de contrôle d’accès sur les fichiers et de toutes les autres fonctionnalités implémentées par le noyau UNIX ou des noyaux apparentés (comme Linux). Pour plus de détails (en anglais), Thomas Schwinge propose ces deux pages : "documentation" et "What is the GNU Hurd".

Plateformes cibles

GNU Hurd peut s’exécuter sur les processeurs 32 bits de la famille x86. Une version 64 bits (x86_64) est en cours de développement. Les volontaires pour des portages sur d’autres architectures sont les bienvenus ; contactez les mainteneurs du projet si vous avez envie d’aider (cf. "Adresses de contact" plus bas).

Contexte pour réaliser une compilation

Pour réaliser une compilation de GNU Hurd, vous aurez besoin d'une chaîne de compilation ciblant i?86-gnu ; une chaîne de compilation ciblant GNU/Linux n'est pas utilisable. Notez bien que vous ne pouvez pas lancer GNU Hurd isolément, vous aurez besoin de composants supplémentaires comme le micro noyau Mach et la bibliothèque GNU C (glibc) afin d'obtenir un système exécutable.

À propos, ce même 10 avril 2015 étaient d'ailleurs publiés GNU Mach version 1.5 (annoncé par Thomas Schwinge le 15 avril) ainsi que GNU MIG version 1.5 (annoncé par Thomas S.). GNU MIG (pour "Mach Interface Generator") traduit des fichiers de définition d'appel de procédure distante ("Remote Procedure Call" ou RPC en anglais) en code C. GNU MIG est nécessaire pour compiler tout paquet qui reçoit ou invoque un "RPC", tel que GNU Mach, GNU Hurd et la bibliothèque GNU C (glibc) lorsqu'elle est compilée pour le Hurd.

Vous trouverez des informations complémentaires pour mettre en place un environnement de développement à partir de cette page d'information pour contribuer (en anglais).

Corrections et améliorations de la version 0.6

Cette nouvelle version 0.6 regroupe les corrections et améliorations apportées depuis la version précédente, annoncées par Thomas S. et traduites ci-dessous (enrichies de deux liens) :

  • De nombreux nettoyages et corrections stylistique du code. Plusieurs problèmes ont été identifiés grâce à des outils d'analyse statique et par conséquent corrigés.

  • Le code de diffusion des messages dans les serveurs Hurd a été amélioré. Entre autres choses, il est désormais fait usage d'un mécanisme dit des "données utiles protégées" introduit dans GNU Mach 1.5 (cf. ces extraits d'IRC en anglais, s'étalant de sept. 2013 à mars 2014 et traitant notamment des "protected payloads" : "gsoc/project ideas/Improved System Object Lookups").

  • Le code du décompresseur embarqué pour gz et bz2 a été supprimé au profit de libz et libbz2.

  • L'outil natif fakeroot a été grandement amélioré et peut maintenant produire de nombreux paquets. Les outils portinfo et rpctrace permettent désormais une meilleure expérience de débogage.

  • La performance de la bibliothèque de hachage d'entiers a été améliorée.

  • Le serveur init a été divisé en deux : le serveur startup (traitant tôt l'amorçage du système et son arrêt) et un programme d'initialisation du style SysVinit (judicieusement nommé init).

  • Les traducteurs procfs et random ont été fusionnés. Cf. la page "Debian GNU/Hurd - Traducteurs" pour des explications (traduites) sur les traducteurs ("translators" en anglais) dans le contexte du Hurd.

Téléchargement

Les versions publiées peuvent être téléchargées depuis ftp://ftp.gnu.org/gnu/hurd/ ou tirées de Git : http://git.savannah.gnu.org/cgit/hurd/hurd.git/

Pour cette livraison, les empreintes MD5 et SHA1 sont :

7d69c5e1bb47c9d5636054c57fbc0304 hurd-0.6.tar.bz2
0ac9af94761e5b59a3f19756c6f8d059 hurd-0.6.tar.bz2.sig
0b5130fffe640edc8e60fea3ce7b3d68 hurd-0.6.tar.gz
6c1ad02e1bfe8219341fae218612abc4 hurd-0.6.tar.gz.sig

08ef505f425db3a15d2ecee5f35897d1b7ef7755 hurd-0.6.tar.bz2
9049c1bbcc71fafc459f07a582575804cfd48ebb hurd-0.6.tar.bz2.sig
a5d90c51d2b778c1a79895e11c1699ac98796020 hurd-0.6.tar.gz
bff54932420a7e290a096a8582acf69c7b2bafec hurd-0.6.tar.gz.sig

Adresses de contact

Vous êtes invités à lire la FAQ avant de prendre contact.

N'hésitez pas à poser toute question que vous pourriez avoir sur les listes de diffusion, sur l'IRC (en résumé : réseau IRC Freenode, canal #hurd et canal #hurdfr pour le chapitre français), par exemple à l'une des réunions IRC régulières. De façon générale, c'est une bonne idée de prendre contact avec les membres du projet dès que vous commencez à passer du temps sur un projet.

Les rapports de bug devraient être envoyés à bug-hurd [at] gnu.org ou postés sur <http://savannah.gnu.org/bugs/?group=hurd>.

Les requêtes pour de l'assistance devraient être envoyées à help-hurd [at] gnu.org ou postées sur <http://savannah.gnu.org/support/?group=hurd>.

Participation au "Google Summer of Code" 2015

Le 20 mars 2015 était annoncée (en anglais) la participation au Google Summer of Code ("GSoC") 2015 pour le projet GNU Hurd, sous les auspices du projet GNU (comme chaque année depuis 2006 — hormis en 2008 où le projet GNU Hurd a participé avec succès en son nom, avec cinq étudiants).

La période pour proposer des sujets pour 2015 est terminée. Une fois que Google aura annoncé le nombre de participants affectés au projet GNU, une discussion entre pairs des sous-projets GNU aura lieu pour déterminer la répartition pour chacun. Par contrainte en ressources, une sous-sélection des idées de projets GNU Hurd devra avoir lieu.

À partir de la liste détaillée des idées de projets, voici les titres traduits en français (avec pour chacun, un lien vers la page détaillée le concernant, en anglais) :

  • Gestion de la mémoire physique (détails)
  • Liaisons vers d'autres langages de programmation (détails)
  • Virtualisation utilisant les mécanisme du Hurd (détails)
  • Corriger et compléter la gestion du verrouillage de fichier (détails)
  • Améliorer le portage de GDB pour GNU Hurd (détails)
  • Adapter la pile TCP/IP à Hurd (détails)
  • Implémentation de NFS améliorée (détails)
  • Gestion du son (détails)
  • Améliorer la performance des entrées/sorties disque (détails)
  • Nettoyage du code de GNU Mach (détails)
  • Xmlfs (détails)
  • Permettre d'utiliser unionfs tôt au démarrage (détails)
  • Résolution… lexicale (détails)
  • Sécuriser l'implémentation de chroot (détails)
  • Améliorer l'adaptation à Hurd du gestionnaire de paquets GNU Guix (détails)
  • Utiliser des traducteurs de protocole Internet (ftpfs, etc.) en tant que processus d'arrière plan pour d'autres programmes (détails)
  • Corriger les programmes utilisant PATH_MAX et autres inconditionnellement (détails)
  • Porter GNAT (GCC) (détails)
  • Porter Google Go (GCC: gccgo) (détails)
  • Squelette d'implémentation de bibliothèques spécifiques au matériel (détails)
  • Implémenter l'extraction de CD audio (détails)
  • Améliorer la prise en charge de Perl ou Python (détails)
  • Corriger les problèmes de compatibilité exposés par des suites de tests, implémenter les interfaces manquantes dans glibc pour GNU Hurd (détails)
  • Cadriciel de tests automatisés (détails)
  • Implémenter libcap (détails)
  • Implémenter la gestion de xattr (détails)
  • Porter Valgrind sur le Hurd (détails)
  • Nouveau cadriciel de pilotes de périphériques (détails)
  • instrumentation du noyau (détails)
  • Corriger les problèmes de verrouillage de libdiskfs (détails)

Conseils pour contribuer au Hurd

Travailler sur l'un des projets du GSoC est généralement une bonne opportunité pour démarrer avec le développement du Hurd, même en dehors du contexte du GSoC. S'il vous plait, n'hésitez pas à contacter l'équipe projet pour un accompagnement (un mentorat) même si ce n'est pas dans le cadre du GSoC ou si vous n'êtes pas étudiant.

Si vous envisagez de contribuer, considérez la section "Contexte pour réaliser une compilation" pour obtenir un environnement de développement.

Notez que faire des contributions substantielles à un projet aussi grand et englobant que le GNU Hurd n'est pas une tâche triviale. Pour travailler sur les boyaux du Hurd et obtenir un résultat utile, vous devez prévoir une expérience d'apprentissage de nombreux mois qui nécessitera suffisamment d'auto-motivation. Travailler sur un noyau de système d'exploitation avancé n'est pas quelque chose que vous pouvez faire en quelques minutes, d'autant moins sans expérience préalable de bidouillage sur un noyau.

De même, les mainteneurs du noyau Linux constatent exactement les mêmes difficultés, ce qui est bien présenté par Jonathan Corbet dans son rapport sur le "Linux Kernel Summit" 2010 à l'occasion des sessions d'ouverture au sujet de l'accueil de nouveaux participants (en anglais).

Cependant, bien sûr, ces propos ne se veulent pas dédaigneux et il ne s'agit pas de vous effrayer, au contraire : démarrez simplement en utilisant le GNU Hurd et notez ce qui pour vous ne fonctionne pas comme attendu, ou jetez un œil à l'une des questions ouvertes (sur le suivi des bugs) et l'équipe du projet verra si vous évoluerez jusqu'à être le prochain "core hacker" du Hurd !

Feuille de route XKCD :)

La sortie de GNU/Hurd 1.0 est prévue, selon les progrès actuels, en 2059. Néamoins, d'autres facteurs externes sont en jeu et il n'est pas certain que la feuille de route actuelle soit respectée.

Feuille de route GNU/Hurd par XKCD, lol !

  • # Un projet qui existe juste pour éxister

    Posté par . Évalué à -10.

    GNU HURD est un projet qui existe juste pour exister , les codeurs et contributeurs ne contribuent que par plaisir , ce projet n'a aucun avenir.

    En revanche le noyau qui grandit peu a peu et qui peux dans quelques années être vraiment viable c'est Illumos

  • # Anticipation

    Posté par . Évalué à 10.

    GNU Hurd peut s’exécuter sur les processeurs 32 bits de la famille x86. Une version 64 bits (x86_64) est en cours de développement.

    À mon avis, ils devraient plutôt commencer à développer la version 256 bits, histoire d'être sûrs qu'il existe encore quelques processeurs fonctionnels dans les musées qui peuvent faire tourner la version beta…

  • # Un peu plus de détails

    Posté par . Évalué à 4.

    Pour plus de détails (en anglais), Thomas Schwinge propose ces deux pages : "documentation" et "What is the GNU Hurd".

    Toujours en anglais, il y a aussi cet article, il parle plus de l'histoire de Hurd, et est je trouve une bonne introduction aux objectifs et enjeux de ce noyau.

  • # Something.js

    Posté par (page perso) . Évalué à 4. Dernière modification le 24/04/15 à 16:27.

    Il y a une erreur dans le schema XKCD. le système "[something].js" est déjà sorti depuis un petit moment : jslinux.

    Sinon, pour un truc utilisable au quotidien et avec du full js uniquement coté application, ça s'appelle FirefoxOS :-D.

    • [^] # Re: Something.js

      Posté par . Évalué à 10.

      Par utilisable au quotidien tu veux dire «qui est capable de lancer un navigateur ouebe pour se connecter a un site de vente en ligne pour acheter un vrai smartphone»?

      Depending on the time of day, the French go either way.

      • [^] # Re: Something.js

        Posté par (page perso) . Évalué à 9.

        par vrai smartphone, tu veux dire "smartphone à 800 boules pour me la péter comme un beauf" ?

        • [^] # Re: Something.js

          Posté par (page perso) . Évalué à 10.

          J'ai un *phone sous FirefoxOS, il ne me manque dedans qu'un vrai navigateur web :)

          • [^] # Re: Something.js

            Posté par (page perso) . Évalué à 8.

            Sur ma tablette, j'ai le choix entre Firefox qui charge les pages plus vite et des fonctionnalités comme le mode de lecture mais crash dès que le site est chargé (ars technica, phoronix) ou chrome.

            « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: Something.js

            Posté par (page perso) . Évalué à 4.

            J'ai un smartphone sous emacs.

  • # Hurd et Hird sont dans un bateau... Et ils comptent bien y rester de tout façon :o)

    Posté par . Évalué à 10. Dernière modification le 24/04/15 à 21:58.

    J'observe un nombre élevé de clics vers Wikipédia. Vous avez pu y lire un exposé sur le nom Hurd qui serait un "double acronyme récursif".

    En vérité, je vous le dis, Hurd est plus précisément un acronyme à récursion mutuelle (cf. l'explication en anglais de l'acronyme Hurd qui renvoie à cette source (la numéro 4), publiée en 2010 ; et en français, l'explication du principe mathématique de la récursion mutuelle) ou encore, oserais-je dire, un acronyme à récursion bipolaire, passant :

    • du pôle « Hurd », qui signifie « Hird of Unix-Replacing Daemons » — soit en français « une maisonnée1 de démons remplaçant Unix » —,
    • au pôle « Hird » qui se développe en « Hurd of Interfaces Representing Depth » — soit en français « Hurd2 d'interfaces représentant la profondeur ».

    Il y a un jeu de mots avec la proximité du mot "herd", qui signifie troupeau en anglais d'où GNU Hurd à comprendre comme un troupeau de gnous, expression reflétant le fonctionnement du noyau Hurd :)

    Quant au logo, celui3 qu'on l'appelle « the Hurd boxes » (« les boites Hurd »), il reflète également l'architecture du noyau. Le logo est un graphe où les nœuds représentent les serveurs du noyau Hurd et les flèches sont les messages de communication inter-processus.


    1. lorsqu'on cherche la définition de "Hird" sur le wikipédia anglophone, on trouve ces deux versions : a) dans l'histoire norvégienne, un "Hird" était originellement un corps informel de compagnons d'armes privés ou de personnels de service pour le compte d'une personnalité noble ou royale, puis la signification devint le personnel domestique de la cour royale ; b) une organisation paramilitaire collaborationniste pendant l'occupation de la Norvège par l'Allemagne nazi. 

    2. lorsqu'on cherche la définition de "Hurd" sur le wikipédia anglophone, on trouve plusieurs acceptions non significatives ("Hurd" n'est pas un nom commun, on ne le trouve même pas dans un quelconque dictionnaire anglais sur l'Internet), mais la page Hurd renvoie carrément au noyau Hurd :) 

    3. "celui"… Parce qu'il y en a un autre, sphérique, cf. cette page officielle des logos du Hurd :) 

  • # Plus sérieusement

    Posté par (page perso) . Évalué à 10.

    Ça en où de l'intégration de D-Bus dans le micronoyau ? Côté Linux, ça traine, ça traine : The kdbuswreck (hop je vous file un lien LWN gratuit car je vous aime les copaings, j'adore LWN, j'y suis abonné depuis 2 ans).

    (et systemd sinon ?)

  • # Distros GNU/Hurd

    Posté par (page perso) . Évalué à 7.

    D'ailleurs, Debian GNU/Hurd est sorti avec la dernière mouture du noyau, accessible à cette adresse

    Coté Arch Hurd par contre, pas de nouvelle release depuis 2011 et leur dernier commit git date de 2013…

    EFBBBFE297AFE2978EE297AF0D0AE297AFE297AFE2978E0D0AE2978EE2978EE2978E

  • # Bravo belle dépêche !

    Posté par . Évalué à 5.

    On est dans une sorte de dérivée de la loi de Dave Newton…

    « Tout décérébré plonké dans une tribune subit une poussée de bas en haut, dirigée vers l'excellence et proportionnelle au volume de connerie déplacée, l'incitant à faire un journal qui dénonce. »

    • [^] # Re: Bravo belle dépêche !

      Posté par . Évalué à -10.

      Tiens, l'érudit, dis-nous ce que tu penses de ce commentaire. Si tu penses que c'est déplacé de répondre ici, tu peux aussi t'abstenir. Je sais pourquoi j'ai été "plonké" sur /board. Tu sembles avoir quelques informations. Partageons la connaissance.

      • [^] # Re: Bravo belle dépêche !

        Posté par . Évalué à 4. Dernière modification le 27/04/15 à 09:25.

        C'était simplement un encouragement sincère pour que tu nous fasse d'autres dépêches de cette qualité.

        dis-nous ce que tu penses de ce commentaire.

        Généralement je me tiens à l'écart de ce genre de sujets car quand ça part en cacahuète on y passe vite des heures. Je préfère passer un peu de mon temps à filer un coup de main dans les forums ici plutôt que de me lancer dans ce genre de débats sans fin.
        Donc non, je ne vais pas marcher dedans commenter - en plus hors sujet - et pourrir cette dépêche.

        Pour ce qui est du plonkage, je ne fais pas partie de l'équipe de modération du site ou d'une quelconque cabale. Je n'ai absolument rien à voir là dedans tu te trompes de cible.
        Pour tout dire quand j'ai collé cette citation je faisais référence à ton karma et non spécifiquement à la tribune.

    • [^] # Re: Bravo belle dépêche !

      Posté par (page perso) . Évalué à 3. Dernière modification le 27/04/15 à 08:17.

      Je me contente d'apprécier la dépêche, félicite son auteur, et l'encourage à poster d'autres textes de cet acabit ! :-)

  • # lien vers le dessin XKCD ?

    Posté par (page perso) . Évalué à 2.

    J'ai pas trouvé de lien vers le strip XKCD, pourtant, ça se fait, normalement, non ?

    • [^] # Re: lien vers le dessin XKCD ?

      Posté par (page perso) . Évalué à 4.

      Oui, plutôt que de seulement avoir le lien vers l'image dans la description de l'image (visible en infobulle), j'ai ajouté un lien vers la page xkcd correspondant.

      Corrigé, merci.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.