Question Fréquemment Posées à propos de Debian GNU Hurd et de HurdFr

Ce document tente de répondre aux questions les plus fréquement posées par les utilisateurs lorsqu'ils essayent d'installer, d'utiliser, ou de développer Debian GNU Hurd. Il répond aussi à quelques questions sur le projet HurdFr. Vous êtes priés de lire attentivement ce qui suit avant de demander de l'aide.

Debian GNU Hurd est activement développée, et une version stable n'a pas encore vu le jour. Soyez prévenu que : il y a beaucoup de travail à finir ; vous trouverez des bugs ; votre système crashera. Ceci dit, vous pouvez contribuer à de nombreux niveaux : développer Hurd et Mach, porter des applications, écrire de la documentation, et, le plus important, les reports des utilisateurs.

Si vous avez une question qui n'est pas citée dans ce document, envoyez nous la (avec la réponse si possible!).

The copyright to each section is help by its respective author(s). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is included in the file COPYING.

                                                     Neal H Walfield
						     neal@cs.uml.edu

Traduit en partie par Gibran Hasnaoui <gibran@hurdfr.org>


Table Of Contents


1 Le projet HurdFr

1.1 But

{HurdFr} HurdFr est une communauté de personnes passionées par GNU Hurd, communauté dont le but principal pour le moment est de rassembler des développeurs afin de contribuer au Hurd en fournissant du code, de la documentation, etc. A long terme, HurdFr organisera, nous l'espérons, des réunions, conférences et d'autres choses que fait un HUG (Hurd User Group).

Venez nous rejoindre et contribuer à ce qui deviendra incontestablement l'OS du XXIème siècle !

	http://www.hurdfr.org

2 Généralités

2.1 Qu'est ce qu'un micro-noyau multi-serveurs?

{NHW} Le terme de micro-noyau n'est pas en référence à la taille du noyau, mais plutôt aux services qu'il fournit. Il est généralement dit qu'il s'agit d'une série d'interfaces permettant aux processus de communiquer entre eux et une façon d'accéder au matériel. Les ``Pilotes Logiciels'', comme j'aime à les appeler, sont alors implémentés dans l'espace utilisateur en temps que serveurs. Les exemples les plus évidents sont la pile TCP/IP, les systèmes de fichier ext2 et NFS. Dans le cas du Hurd, les utilisateurs ont accès à des fonctionnalités auxquelles ils ne peuvent pas avoir accès dans un noyau monolithique, et ce du fait que les serveurs tournent dans l'espace utilisateur. Par exemple, dès que l'utilisateur les a lancés, celui-ci peut monter un système de fichier ftp dans son répertoire personnel.

Pour plus d'information sur la conception de Hurd, lisez ``Vers une nouvelle stratégie de conception des OS'' de Thomas Bushnell, BSG :

	http://www.gnu.org/software/hurd/hurd-paper.html (anglais)
	http://www.hurd-fr.org/strat.php (français)

Pour savoir pourquoi la FSF développe un nouveau noyau:

	http://www.gnu.org/software/hurd/hurd-and-linux.html

2.2 Grammaticalement, qu'est ce que Hurd?

{NHW} Hurd signifie ``Hird of Unix Replacing Daemons.'' Et Hird, ``Hurd of Interfaces Representing Depth.''

Quand on se réfère au noyau on dit ``Mach'', et on l'utilise en tant que nom propre. Par exemple: ``Le noyau GNU Mach utilise les pilotes de périphériques de la version 2.0.x du noyau Linux''.

Quand on parle des serveurs, on dit ``Le Hurd.'' Par exemple: Le système de fichier ext2 est fourni par le Hurd, non pas par Mach. Note, il est faux de dire: ``HURD'', ``le HURD'' ou ``le hurd''.

``GNU Hurd'' est utilisé lorsque l'on veut parler du système d'exploitation, e.g. ``Actuellement, Debian est la seule distribution de GNU Hurd.''

Finalement, il y a ``Debian GNU Hurd''. Cela se réfère à la distribution créée par les développeurs Debian. Par exemple: ``Ton portable tourne sous quoi? Debian GNU Hurd, bien sur.''

2.3 Quelles sont les listes de diffusion?

{NHW} Il y a quatres listes de diffusion principales:

Inscrivez-vous de la manière habituelle. ( http://mail.gnu.org/mailman/listinfo et http://www.debian.org/MailingLists/subscribe )

2.4 Où puis-je rapporter les bugs?

{NHW} Utilisez le système de gestion de bug de Debian. Voir http://www.debian.org/Bugs pour en savoir plus sur le BTS (Bug Tracking System).

2.5 Y a-t-il une liste TODO?

{NHW} Oui, il y'en a, en fait, plusieurs.

2.6 Quand sort la prochaine version?

{NHW} Personne ne semble le savoir. Cependant, le Hurd est utilisable, essayez-le et aidez nous à le finaliser.

2.7 Pourquoi `/usr' est-il un lien symbolique vers `.'?

{MB} La distinction entre / et /usr a une justification historique, du temps où les systèmes Unix étaient amorcés à partir de deux bandes, une petite bande root et une plus grosse bande usr. Ajourd'hui, il est toujours pratique d'avoir des partitions séparées pour ces deux espaces. Hurd se débarasse de ces rebuts historiques, parce que nous pensons avoir trouvé une solution plus souple, les systèmes de fichiers cachés. Malheureusement shadowfs n'est pas encore implémenté.

3 Installation

3.1 Où puis-je obtenir Debian GNU Hurd?

{NHW} Comme GNU Hurd est un portage officiel instable de Debian, vous pouvez trouver les binaires sur votre miroir local. Il y a cependant de nombreux paquets qui ne compilent pas proprement à partir des sources et qui ont donc subi de nombreuses modifications (NDT: l'auteur dit "hack", on peut donc conclure qu'il s'agit plutôt de "bidouilles" :-). Ils peuvent être trouvés à l'adresse:

	ftp://alpha.gnu.org/pub/hurd/debian

Un fois que vous avez installé correctement Debian GNU Hurd, vous pouvez configurer apt en ajoutant ceci à votre /etc/apt/sources.list, pour qu'il récupère correctement les packages :

	deb ftp://alpha.gnu.org/pub/gnu/hurd/debian unstable main
	deb http://http.us.debian.org/debian unstable main

Le téléchargement des packages peut être long (il y a plus d'un Go de fichier), Philip Charles a crée des CDs Debian GNU Hurd. Les revendeurs peuvent être trouvés ici:

	http://www.debian.org/ports/hurd/hurd-cd

3.2 Comment puis-je installer Debian GNU Hurd?

{NHW} Consultez un des nombreux guides. Le plus à jour peut être trouvé à cette adresse:

	http://web.walfield.org/papers/hurd-installation-guide/

3.3 Quels type de matériel est supporté?

{NHW} Actuellement, GNU Hurd tourne seulement sur les machines de type IA32. Cependant, le porter sur d'autre architectures ne devrait pas être difficile: le code a toujours été écrit dans un souci de portabilité.

Par respect, GNU Mach utilise un sous-ensemble de pilotes du noyau Linux 2.0.x. Un guide relativement complet du matériel supporté peut être trouvé à l'adresse:

	http://www.urbanophile.com/arenn/hacking/hurd/hurd-hardware.html

Si vous avez des problèmes, c'est généralement car:

Dans le premier cas, vous devrez enlever le périphérique ou jouer avec la configuration du BIOS. Dans le second, vous devrez recompiler un nouveau noyau avec uniquement les pilotes dont vous aurez besoin (GNU Mach ne supporte pas les modules chargeables).

3.4 Quel type de partition dois-je utiliser pour mes partitions GNU Hurd?

{MB} Choisissez un système de fichier ext2. L'autre solution est d'utiliser ufs, dans le style BSD. Le numéro de type de partition pour ext2fs est 0x83 (le même que pour Linux), et pas 0x63 (GNU Hurd). Thomas explique pourquoi 0x63 n'est pas le bon choix:

	Un jour, nous créerons peut-être un nouveau format de système de
	fichier, qui s'appellera probablement le système de
	fichier GNU Hurd, et pourrait bien utiliser ce code de partition.

Mais de toute façon, il est toujours erroné d'utiliser ce code pour une partition ext2fs, comme le fait remarquer Roland.

3.5 Comment dois-je nommer les partitions?

{MB,NHW} Je savais que vous poseriez cette question. Si je devais réduire cette FAQ à une seule question, je choisirai celle-ci. C'est plutôt simple, mais vous devez savoir qu'il y a en réalité trois conventions de nommage.

Premièrement, le Hurd : si le disque en question est SCSI, vous devez savoir le numéro de périphérique SCSI; si c'est un disque IDE, vous devez savoir sur quel contrôleur il est, et s'il est maître ou esclave.

Le Hurd utilise la convention de nommage BSD, qui dit que les disques sont rangés selon leur emplacement, numériquement, en commencant par zéro. Ce schéma est proche de celui trouvé dans Linux, où le disque maître du contrôleur primaire est désigné par `hda' et l'esclave par `hdb'. Sur le second contrôleur, le maître et l'esclave sont désignés respectivement par `hdc' et `hdd'. Sous Hurd, `hda' devient `hd0', `hdb' sera `hd1', etc.

Dans le Hurd, comme dans BSD, les partitions sont appelées `slices', et sont numérotées en commençant par un. Donc, pour nommer une partition particulière, on prend le nom du disque, on ajoute un `s' et le numéro de la partition. Encore une fois, c'est similaire à Linux, sauf qu'il n'y a pas de `s'. Par exemple, `hda1' devient `hd0s1'.

GRUB, le chargeur de démarrage, utilise une nomenclature complètement différente: il interroge le BIOS et attache chaque disque à un tableau. Les disques et partitions sont énumérés en partant de zéro. Le format est : `hd (<disque>, <partition>)'. Donc, `hd(0, 1)' représente la seconde partition du premier lecteur détecté par le BIOS. Maintenant, grâce à la complétion automatique de GRUB, il n'y a pas de problème.

3.6 Puis-je utiliser des partitions de plus d'1 Go?

{NHW} Non, pas avant que libdiskfs soit réécrite et LFS implémenté. Des efforts sont faits en ce moment, cependant, ce n'est pas une priorité pour les développeurs.

3.7 De combien de swap ai-je besoin?

{NHW} Généralement, beaucoup ; dès qu'elle s'épuise, Mach panique. J'ai au moins 128Mo de ram et 256Mo de swap sur toutes mes machines Hurd.

3.8 Puis-je partager la swap entre Linux et Hurd?

{NHW} Oui. Le pager par defaut reconnait et respecte les partitions de swap Linux. Il paginera sur une partition vierge, c'est à dire, tout ce qu'il ne reconnaitra pas en temps que swap Linux. Alors : SOYEZ PRUDENT.

3.9 Pourquoi j'obtiens ``Operation not permitted error''?

{MB} Vous avez oublié d'indiquer que le propriétaire du système de fichiers de la partition Hurd est hurd. Hurd utilise des informations supplémentaires dans les inodes pour positionner les traducteurs. Pour que ça fonctionne, il faut que la partition soit marquée comme ``appartenant à Hurd''. Ceci se fait en passant l'option `-o hurd' à `mke2fs' lorsque l'on crée une partition ext2 à partir d'un autre système (les systèmes de fichiers créés sous Hurd ont cette option par défaut). Vous pouvez toujours utiliser le script `e2os' si vous échouez.

3.10 Lorsque `native-install' a fini, J'ai dû taper ccoommee cceeccii. En particulier, j'ai du taper rreebboott pour redémarrer.

{MB} Marrant, non ? En plus du serveur `term' de secours dans `/tmp/console', un autre serveur `term' a démarré et sème la pagaille au niveau de la sortie du clavier. Après un réamorçage ce problème disparait et un seul serveur `term' subsistera. Si `tar' supportait les translators, nous n'aurions pas ce problème. Même si vous ne rencontrez pas ce problème juste après l'installation, redémarrez immédiatement pour ne pas avoir affaire à ce bug par accident.

4 Paramétrages

4.1 Comment puis-je ajouter un partition de swap?

{MB} Une partition de swap est aussi appelée un fichier de pagination. Habituellement, il est suffisant d'ajouter la partition de swap à `/etc/fstab', comme vous le feriez sous Linux. Vous pouvez paginer sur une partition de swap Linux et Hurd respectera la signature de la swap Linux (pour les deux versions de Hurd). Mais Hurd sera ravi de paginer sur tout autre espace disque et écrasera tout ce qu'il y trouvera, donc faites attention !

Si vous préférez paginer sur un fichier, ou être certain qu'il vérifie la signature de pagination Linux avant d'écraser les données qui s'y trouvent, vous devez modifier `/boot/servers.boot'. La syntaxe est le nom de fichier spécial de la partition, suivi éventuellement du nom du fichier de pagination sur un ext2fs, suivi d'un espace et au choix `$(add-raw-paging-file)', `$(add-linux-paging-file)', ou `$(add-paging-file)'. Le premier fonctionne avec n'importe quel fichier ou partition, et ne respecte aucune signature. Le deuxième fait une vérification de sécurité, et ne fonctionne que si une signature de pagination linux est trouvée. Le troisième recherche une signature de pagination (et la respecte le cas échéant), mais passe en pagination brute s'il n'en trouve pas. C'est le fonctionnement par défaut des entrées de `/etc/fstab'.

4.2 Comment puis-je configurer le réseau? Comment puis-je configurer une interface de loopback?

{MB} Dans le premier cas, soyez sûr que GNU Mach a détecté votre carte réseau.

D'une manière ou d'une autre, vous devez configurer `pfinet'. Voir:

	http://www.debian.org/ports/hurd/hurd-doc-server

N'oubliez pas d'éditer `/etc/resolv.conf', `/etc/hosts', etc.

Evidemment, vous devez faire cela si la procédure d'installation ne l'a pas fait pour vous.

4.3 Comment passer des options à `serverboot'?

{MB} Il suffit de les passer au noyau (i.e. à l'invite de GRUB) et il les fera suivre à `serverboot' automatiquement.

4.4 Puis-je utiliser la version GNU/Linux de `e2fsck' pour une partition Hurd?

{MB} Oui, à partir de la version `e2fsprogs-1.05'. Verifiez d'abord avec `e2fsck -V'.

{NHW} N'essayer pas de défragmenter votre partition car cet utilitaire ne connait pas les translators.

4.5 Pourquoi les pipes ne marchent-ils pas?

{MB} `settrans -fgc /servers/socket/1 /hurd/pflocal' devrait améliorer les choses.

5 Utilisation

5.1 Où est la documentation?

{NHW} Il y a des pages de man et des fichiers info pour les commandes et les translators Hurd.

La documentation est dans les binaires et peut être trouvée en passant l'option `--help' à une commande donnée. Par exemple:

	# /hurd/ext2fs --help

vous dira quels types d'option le translator ext2fs accepte.

5.2 Qu'est ce qu'un translator (traducteur)?

{MB} Il y a un texte sur les translators disponible ici:

	http://www.debian.org/ports/hurd/hurd-doc-translator

Lisez-le et poser vos questions sur les listes de diffusion.

5.3 Qu'est ce que le shell login?

{MB} Sous le Hurd, il existe une notion d'utilisateur non-logé. Cet utilisateur a des ids utilisateurs et des ids de groupes. Ceci du fait qu'Hurd supporte des série d'uid et de gid, et une possibilité est la série vide. Au lieu de refuser l'accès, le systèmes de fichier de Hurd offre quatre triplets de permission (i.e. rwx) servant à déterminer les privilèges des utilisateurs sans identités. Ceci doit cependant être activé fichier par fichier. Par défaut, les autres triplets de permission sont utilisés.

Le shell login de Hurd est un shell fonctionnant avec des uids et des gids. Pour restreindre l'accès à vos fichiers, activez et changez les quatres triplets de permission ou changez, dans /etc/passwd, le shell de login de l'utilisateur `login' en `/bin/loginpr', qui implémente l'invite login standart.

5.4 Comment puis-je utiliser un clavier non-US?

{NHW} En jetant un oeil à:

	ftp://alpha.gnu.org/gnu/hurd/contrib/marcus/keymap.tar.gz

5.5 Comment puis-je activer la couleur dans la console?

{NHW} Si vous utilisez le GNU Mach de Debian, vous pouvez changer votre terminal en `mach-color'. Par exemple:

	# export TERM=mach-color

5.6 Comment puis-je utiliser les consoles virtuelles?

{NHW} Il n'y a actuelement aucun support pour les consoles virtuelles, vous pouvez cependant utiliser `screen'. Dans tous les cas, c'est beaucoup plus flexible.

Kalle Olavi Niemitalo <tosi@ees2.oulu.fi> a commencé à travailer sur colortext. Son but était de fournir un programme qui multiplie les consoles dans l'espace utilisateur en utilisant /deb/kbd. Voire:

	http://stekt.oulu.fi/~tosi/

{MB} Voici quelques options utiles à ajouter à votre ~/.screenrc permettant d'émuler les terminaux virtuels de Linux un peu mieux.

	bindkey ^[O0 select 0
	bindkey ^[O1 select 1
	bindkey ^[O2 select 2
	bindkey ^[O3 select 3
	bindkey ^[O4 select 4
	bindkey ^[O5 select 5
	bindkey ^[O6 select 6
	bindkey ^[O7 select 7
	bindkey ^[O8 select 8
	bindkey ^[O9 select 9
	# Unfortunately, Mach ignores modifiers on Cursor keys.  This can be
	# fixed, however, for now, we shall just use other keys to move back, 
	# and forth.
	# ^[, is ALT and ","
	# ^[. is ALT and "."
	bindkey ^[, prev
	bindkey ^[. next

5.7 Quel est le statut de X?

{MB} Ca marche! Les packages sont disponibles dans n'importe quel miroir ftp de Debian. XFree86 4.0.2 est disponible, ainsi que quelques serveurs v3. Les instructions sur "comment utiliser les packages" sont dans les archives de la liste de diffusion :

	http://lists.debian.org/debian-hurd-0007/msg00013.html

5.8 Pourquoi X ne marche-t-il pas?

{MB} Essayez `export LD_LIBRARY_PATH=/usr/X11R6/lib'. C'est un problème de résolution des liens. Le système Hurd veut utiliser `RPATH', cependant, Debian veut éviter cela.

5.9 Quels sont ces étranges pids `2' and `3'?

{MB} Deux est le noyau, trois est le pagineur par défaut et quatre est le système de fichier root.

5.10 Pourquoi `ps aux' me donne des résultats bizarres ?

{MB} Essayez `ps Aux'.

5.11 J'ai un processus bloquant que je veux tuer, cependant, `ps' se bloque aussi.

{MB} Interompez-le et passer lui l'option `-M'.

{NHW} Par défaut, `ps' rassemble les informations en provenance du serveur proc et des processus en question (via leurs ports de message). Si un processus se bloque, il ne sera pas capable de répondre à son port de message et donc, ps attendra indéfiniment. L'option `-M' dit à ps de ne pas utiliser les ports de message.

5.12 Où sont ...

{MB} `fdisk' et `dmesg' ne sont pas encore portés.

A la place de `free', utilisez `vmstat' et `vminfo'.

{NHW} `ifconfig' n'existe pas. Essayer:

	# /hurd/pfinet --help

Pour dhcp, jetez un oeil à hurd/trans/pump.c; c'est le début d'un client dhcp pour Hurd.

5.13 Y a t il un système de fichier proc?

{MB} Non. Peut-être qu'il y aura une émulation un jour pour les programmes qui en ont besoin. Pour ce qui est du /proc vide, c'est juste un relicat d'un paquet Debian GNU/Linux (base-files).

Vous pouvez tester les périphériques existant avec l'utilitaire devprobe.

5.14 Pourquoi la commande `df' ne fonctionne pas?

{NHW} Elle fonctionne, vous avez seulement à lui passer le système de fichier. E.g;

	# df /

5.15 Pourquoi mes translators meurent-ils?

{NHW} Essayez de passer le drapeaux `-ap' à settrans. Par défaut, settrans utilise un translator passif, par conséquent, il n'y aura pas de sortie sur votre terminal. En utilisant `-ap', vous positionerez à la fois un translator actif et passif, ce qui veut dire que le translator démarera immédiatement et son stderr sera connecté à votre terminal.

De plus, le plus gros problème est de passer des chemins relatifs à des transtors passifs. Vous ne pouvez pas prédire quel sera le répertoire de travail d'un translator lorsqu'il est positioné en temps que translator passif.

6 Problèmes

6.1 Lorsque l'APM du BIOS stoppe mes disques durs, Hurd n'arrive pas à les relancer, que se passe-t-il?

{MB} L'APM n'est pas supporté dans la version actuelle de GNU Mach, désolé. Désactivez l'APM dans la configuration de votre BIOS.

6.2 Quels sont ces messages relatifs à `default pager', `paging', et `pager request'?

{MB} Le gestionnaire de pagination (default pager) gère l'allocation de mémoire virtuelle. S'il ne peut pas allouer une nouvelle page par manque de mémoire, des choses terribles peuvent arriver. Lorsque vous obtenez ce type d'erreur, soit vous avez besoin de plus de mémoire, soit vous avez découvert une fuite de mémoire. Ajoutez une partition de pagination.

6.3 Que signifie gratuitous error?

{MB} Cela vient de strerror(EGRATUITOUS). D'après la documentation de la glibc, c'est un code d'erreur qui ne sert pas :). Ce n'est pas tout à fait vrai. En fait, cette erreur peut arriver losqu'une anomalie grave s'est produite. Les explications de Thomas:

     Plus pécisément, EGRATUITOUS signifie officellement qu'un serveur
     a répondu d'un façon impossible, ou qui ne respectait pas le
     protocole. Il y a des cas dans Hurd où EGRATUITOUS est retourné
     alors qu'un autre code serait plus approprié.

Si vous pouvez reproduire ce message, faites un rapport de bug. Mais ne faites pas de rapport de bug à propos de l'accès à /dev/fd, nous connaissons ce cas.

6.4 Que signifie ``/dev/hd0s1: MOUNTED READ-ONLY; MUST USE `fsysopts --writable'''?

{NHW} Dans ce cas, cela veut dire que /dev/hd0s1 n'a pas été démonté proprement. Au démmarage, Hurd lance ``fsck -p'' sur toutes partitions qu'il trouve dans /etc/fstab, donc, vous devriez ajouter la partition à ce fichier. Si vous pensez que la partition est propre, vous pouvez utiliser:

	# fsysopts /home --writable

qui demandera au translator positioné sur /home de passer de lecture-seul à lecture/écriture. Il est à noter que la commande sera envoyée au système de fichier et non pas à store (e.g. /dev/hd0s1).

6.5 Quand Hurd crashe, GNU Mach redemmare automatiquement. Y a-t-il un moyen de le mettre en pause pour que je puisse noter l'erreur?

{MB} Donnez l'option `-H' à init (ajoutez-la sur la ligne de commande d'amorçage), et `init' demandera à Mach d'entrer en déboguage noyau au lieu de se réamorcer. A l'invite du débogueur (`db>'), vous pouvez taper `reboot' pour réamocer le système.

7 Porter

7.1 Quels programmes ont été portés?

{NHW} Plein, jetez un oeil aux archives Debian. Cependant, beaucoup de programmes ne nécessitent pas d'être portés; ils n'ont simplement pas étés compilés.

7.2 Est-ce facile de porter?

{NHW} Porter des applications vers Hurd est relativement facile du moment que l'application est compatible POSIX, car le Hurd fait de son mieux pour être un système d'exploitation conforme.

L'erreur la plus répandue est d'assumer que MAXPATHLEN et PATH_MAX sont définis. Sur la plupart des systèmes d'exploitation, elles sont positionées à quelques milliers, cependant, sous Hurd, il n'y a pas de maximum, donc elles ne sont pas définies. La meilleure chose à faire est de soumettre un patch qui alloue la mémoire dynamiquement à l'auteur original. (NDT: Il est déconseillé de patcher les sources pendant votre portage sans le signaler à l'auteur, car celà risquerait de poser des problèmes plus tard, si vous n'assurez plus le maintien de la version Hurd...)

7.3 Comment puis-je aider?

{NHW} Un travail conséquent est fait par Jeff Bailey pour compiler tous les paquets Debian. Jetez un oeil à:

	http://people.debian.org/~jbailey/oasis/group/Debian/index.html

pour voir ce qui a déjà été fait et comment aider.

8 Compiler

8.1 Où puis-je obtenir les sources?

{NHW} Les sources sont accessibles par CVS à l'adresse:

	:pserver:anoncvs@subversions.gnu.org:/cvs

Pour des accès anonymes, utiliser l'utilisateur `anoncvs' sans mot de passe. Il y a trois modules important: `hurd', `mach' et `mig'.

Une interface web est aussi disponible à: http://subversions.gnu.org.

Pour obtenir les sources des derniers paquets debian, jetez un oeil à n'importe quel miroir debian.

8.2 Puis-je faire une compilation croisée?

{NHW} Oui. Si vous utilisez Debian GNU/Linux sur IA32, c'est plutôt facile, un compilateur croisé nécessitant peu d'espace disque est disponible; tout ce que vous avez à faire est d'installer les paquets gcc-i386-gnu et mig-i386-gnu. Lorsque vous lancer configure, vous devrez spécifier les programmes directement:

	# MIG=/usr/bin/i386-gnu-mig CC=/usr/bin/i386-gnu-gcc \
	  ../src/hurd/configure ...

Si vous utilisez une autre distribution, vous devrez utiliser une méthode plus longue. Vous pouvez trouver des informations dans le Cross Compiling HOWTO disponible à:

	http://hurddocs.sourceforge.net/howto/cross.html (anglais)
	http://www.hurd-fr.org/cross-fr.php (français)

Farid Hajji <farid.hajji@ob.kamp.net> parle de son experience (compilation croisée sous FreeBSD) à:

	http://lists.debian.org/debian-hurd-0012/msg00062.html

8.3 Des astuces, conseils ?

{NHW} Oui, construire dans l'arborescence des sources n'a pas encore été testé. Essayez:

	# ../src/hurd/configure ...

9 Développer

9.1 Comment puis-je utiliser `read()' pour lire un repertoire?

{MB} Il est important de comprendre qu'il n'y a rien de spécial concernant un répertoire sous Hurd, c'est simplement un fichier. Cela va aussi avec le concept des translators, où un translator peut gérer autant un fichier qu'un répertoire.

9.2 Qu'est ce qu'OSKit-Mach?

{NHW} Il y a deux versions de Mach: GNU Mach et OSKit-Mach. La première utilise les drivers de Linux 2.0.x alors que la seconde utilise OSKit, provenant de l'université d'Utah. Si tout va bien, OSKit-Mach sera stabilisé et deviendra le noyau officiel. Vous pouvez trouvez plus d'information sur OSKit à:

	http://www.cs.utah.edu/flux/oskit

9.3 Où est la documentation?

{NHW} Il y a eu plusieurs livres écrit sur le noyau Mach. Les informations contenues sont encore pertinentes et doivent être considérées comme lectures obligatoires pour les hackers potentiels:

	http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/publications.html

La documentation concernant le Hurd est insuffisante. Le commencement d'un livre, ``The GNU Hurd'' est dans le répertoire doc des sources de Hurd. Vous pouvez le lire en utilisant:

	# info hurd

L'endroit le plus important est, bien sur, le code source; ceci ne veut pas dire que nous n'apprecierons pas plus de documentation. Pour commencer, regardez <hurd>/doc/navigating.

9.4 Comment savoir si mon code est compatible POSIX?

{NHW} Malheuresement, vous devez acheter les standards POSIX auprès de l'IEEE. `The Single Unix Specification' version 2, est disponible gratuitement sur Internet. Essayer:

	http://www.unix-systems.org/online.html

9.5 Où envoyer les patchs?

{NHW} S'il sont en raport avec Hurd, Mach, ou MiG, envoyez un patch au format unidiff à la liste de diffusion bug-hurd. Par exemple:

	# diff -urN hurd-orig hurd

S'ils sont en raport avec d'autre packages, le BTS de Debian est un bon endroit. Dans ce cas, soyez sur d'avoir avertit du bug la liste de diffusion debian-hurd.


Les réponses ont été données par: