[LCFC] webwml://ports/hurd/{hurd-devel-debian,hurd-doc-server,hurd-doc-utils}
On Mon, May 23, 2005, Mohammed Adnène Trojette wrote:
> Subject corrigé.
Dernière chance.
J'ai repris les corrections d'Olivier, sauf chercheur que j'ai
transformé en investigateur.
--
adn
Mohammed Adnène Trojette
#use wml::debian::template title="Debian GNU/Hurd – Development" NOHEADER="yes"
#include "$(ENGLISHDIR)/ports/hurd/menu.inc"
#use wml::debian::translation-check translation="1.29" maintainer="Mohammed Adnène Trojette"
<h1>
Debian GNU/Hurd</h1>
<h2>
Developpement de la distribution</h2>
<h3>
Disques d'amorçage</h3>
<p>
Actuellement, nous ne travaillons pas sur des disques d'amorçages
natifs. Nous nous reposons toutefois sur certaines des bases nécessaires
à ceci, et portons parfois individuellement des paquets nécessaires à
cet effet. Si vous voulez aider, travaillez sur le projet d'installateur
Debian et être sûr que ses composants fonctionnent sur le Hurd.</p>
<h3>
Porter des paquets Debian</h3>
<p>
Si vous souhaitez le portage Debian GNU/Hurd, vous devriez
vous familiariser avec le système d'empaquetage de Debian. Une fois
que vous l'aurez fait en lisant la documentation disponible et en
visitant le <a href="../../devel/">Coin du développeur</a>, vous devriez
savoir comment extraire les paquets source Debian et empaqueter
un paquet Debian. Voici un cours intensif pour les personnes très
paresseuses :</p>
<h3>
Obtenir le source et empaqueter des paquets</h3>
<p>
Extraire un paquet source Debian requiert le fichier
<code>package_version.dsc</code> et les fichiers qui y sont listés.
Vous créez le répertoire d'empaquetage Debian avec la commande
<code>dpkg-source -x package_version.dsc</code></p>.
<p>
La construction du paquet se fait dans le nouveau répertoire
d'empaquetage Debian <code>package-version</code> avec
la commande <code>dpkg-buildpackage -B -rsudo "-mMonNom
<MonCourrierÉlectronique>"</code>. Vous pouvez utiliser
<code>-b</code> au lieu de <code>-B</code> si vous voulez aussi compiler
les parties indépendantes de l'architecture du paquet. Vous pouvez
utiliser <code>-rfakeroot</code> au lieu de <code>-rsudo</code> si vous
utilisez le paquet fakeroot. Vous pouvez le faire sans <code>-r</code>
si vous empaquetez en tant que superutilisateur. Vous pouvez ajouter
<code>-uc</code> pour éviter de signer le paquet avec votre clé pgp.</p>
<h3>
Choisissez un paquet</h3>
<p>
Quels sont les paquets sur lesquels il faut travailler ? Bon,
chaque paquet qui n'est pas encore porté, mais qui a besoin d'être
porté. Cela change constamment, alors soit prenez-en un au hasard
parmi les paquets manquants, soit cherchez des informations à propos
des processus d'empaquetage automatique sur la liste de diffusion
debian-hurd.</p>
<h4>
Paquets qui ne seront pas portés</h4>
<p>
Quelques paquets parmi ceux qui suivent, ou des parties de ces paquets,
seront peut-être portables plus tard, mais ils sont actuellement
considérés comme non portables au moins.</p>
<ul>
<li>
<code>base/update</code>, parce que le Hurd n'a pas besoin d'un démon
de mise à jour (les systèmes de fichiers se synchronisent eux-mêmes).
Pour changer l'intervalle de synchronisation, vous pouvez utiliser
<code>fsysopts</code> pour ajuster l'option <code>--sync</code>. Vous
pouvez choisir des intervalles de synchronisation différents pour chaque
système de fichiers !
Pour le faire vous-mêmes, utilisez l'utilitaire <a
href="hurd-doc-utils#syncfs"><code>syncfs</code></a>.</li>
<li>
<code>base/makedev</code>, parce que le Hurd apporte ses propres version
de ce script. Le paquet source Debian ne contient qu'une version
spécifique à Linux.</li>
<li>
<code>base/ld.so</code>, parce que le Hurd utilise l'éditeur de liens
qui est fourni par la bibliothèque GNU C.</li>
<li>
<code>base/modconf</code> and <code>base/modutils</code>, parce que
les modules sont un concept specifique à Linux.</li>
<li>
<code>base/netbase</code>, parce que le reste qui s'y trouve
est hautement spécifique au noyau Linux. Le Hurd utilise
<code>inetutils</code> à la place.</li>
<li>
<code>base/pcmcia-cs</code>, parce que le Hurd ne gère pas le PCMCIA
(et même s'il le faisait, ce paquet est probablement spécifique à
Linux).</li>
<li>
<code>base/procps</code>, parce que ce code est spécifique au système de
fichiers « proc » de Linux.</li>
<li>
<code>base/ppp</code> et <code>base/pppconfig</code>, parce que le Hurd
ne gère pas le PPP (et même s'il le faisait, ce paquet est probablement
spécifique à Linux).</li>
<li>
<code>base/setserial</code>, parce que c'est spécifique au noyau Linux.
Cependant, avec le portage des pilotes de caractères Linux sur GNU Mach,
nous pourrons peut-être les utiliser.</li>
</ul>
<h3>
Problèmes généraux de portage</h3>
<p>
Voici une liste d'incompatibilités communes que vous pouvez rencontrer
en compilant certains logiciels insuffisamment portables sur le
Hurd.</p>
<ul>
<li>
<code>Mauvais descripteur de fichier</code>
<p>
Si vous obtenez l'erreur <code>Bad File Descriptor</code> lorsque
vous essayez de lire depuis un fichier (ou en y accédant seulement),
vérifiez l'invocation de <code>open()</code>. Le second argument
est la méthode d'accès. Si c'est un nombre codé en dur au lieu d'un
symbole défini dans les fichiers d'en-tête standard, le code est
foutu et devrait être réparé pour utiliser <code>O_RDONLY</code>,
<code>O_WRONLY</code> ou <code>O_RDWR</code>. Ce bogue a été observé
dans les paquets <code>fortunes</code> et <code>mtools</code> par
exemple.</p></li>
<li>
<code>PATH_MAX</code>
<p>
Toute utilisation sans condition de <code>PATH_MAX</code> est une
incompatibilité de POSIX. S'il n'y a pas de limite supérieure sur la
longueur d'un chemin, ce symbole n'est pas défini dans le fichier
d'en-tête. À la place, vous devez soit utiliser une implémentation
différente qui ne se repose pas sur la longueur d'une chaîne de
caractères, soit utiliser <code>sysconf()</code> pour demander la
longueur au moment du lancement. Si <code>sysconf()</code> renvoie
<code>-1</code>, vous devez utiliser <code>realloc()</code> pour allouer
dynamiquement la mémoire nécessaire.</p></li>
<li>
<code>MAXHOSTNAMELEN</code>
<p>
voir <code>PATH_MAX</code></p></li>
<li>
<code>MAXPATHLEN</code>
<p>
voir <code>PATH_MAX</code></p></li>
<li>
<code>NOFILE</code>
<p>
voir <code>PATH_MAX</code></p></li>
<li>
<code>#define</code> spécifique au Hurd
<p>
Si vous avez besoin d'inclure du code spécifique au Hurd en utilisant
<code>#if...#endif</code>, alors vous pouvez pour ce faire utiliser le
symbole <code>__GNU__</code>. Mais pensez-y (au moins) à trois fois (!)
avant de le faire. Dans <em>la plupart</em> des cas, c'est complètement
inutile et créera plus de problèmes que ça n'en résoudra. Il vaut mieux
demander sur la liste de diffusion comment le faire correctement si vous
ne voyez pas de meilleure solution.</p></li>
<li>
<code>sys_errlist[]</code> vs. <code>strerror()</code>
<p>
Si un programme ne gère que <code>sys_errlist[]</code> vous devrez
travailler un peu pour le faire compiler sur le Hurd, qui a abandonné sa
gestion et ne fournit que <code>strerror()</code>. Steinar Hamre écrit,
à propos de <code>strerror()</code> :</p>
<blockquote>
<p>
<code>strerror()</code> devrait être utilisé parce que :
<ul>
<li>
c'est la méthode moderne, la méthode POSIX.</li>
<li>
C'est localisé.</li>
<li>
Il gère les signaux/nombres hors de portée et invalides (ce qui est
mieux que de le gérer comme une erreur et qui n'est pas un risque de
débordement de tampon/sécurité).</li></ul>
<p>
<code>strerror()</code> devrait toujours être utilisé s'il est
disponible. Malheureusement, certains <em>anciens</em> systèmes non
POSIX ne gèrent pas encore <code>strerror()</code>, mais seulement
<code>sys_errlist[]</code>.</p>
<p>
Aujourd'hui, gérer <code>strerror()</code> est bien mieux que
ne gérer que <code>sys_errlist[]</code>. Le mieux (du point de
vue de la portabilité) est toutefois de gérer les deux. Pour
<code>configure.in</code>, vous aurez besoin de :</p>
<p>
<code>AC_CHECK_FUNCS(strerror)</code></p>
<p>
Pour <code>config.h.in</code>, il faudra ajouter :</p>
<p>
<code>#undef HAVE_STRERROR</code></p>
<p>
Et quelque chose comme :
<pre>
\#ifndef HAVE_STRERROR
static char *
private_strerror (errnum)
int errnum;
{
extern char *sys_errlist[];
extern int sys_nerr;
if (errnum > 0 && errnum <= sys_nerr)
return sys_errlist[errnum];
return "Unknown system error";
}
\#define strerror private_strerror
\#endif /* HAVE_STRERROR */
</pre>
<p>
Vous pouvez par exemple regarder dans le dernier <code>fileutils</code>
(le code qui précède est une version modifiée de celui que j'ai trouvé là).
Les rustines doivent bien sûr être envoyées aux responsables en
amont, ce qui est très utile, même pour les systèmes qui ont un
<code>sys_errlist[]</code> fonctionnel.</blockquote>
<li>
Noms de fichiers se finissant par slash « / »
<p>
C'est terrible s'ils n'existent pas et que vous souhaitez appeler un
répertoire ainsi. Par exemple, <code>mkdir foobar/</code> <em>ne</em>
marchera <em>pas</em> sous Hurd. C'est compatible POSIX. POSIX dit que
le chemin d'un répertoire peut avoir des slash en fin de nom. Mais
le répertoire n'existant pas encore, le chemin ne fait pas référence
à un répertoire, et il n'est pas garanti que les slash en fin de nom
fonctionneront. Laissez tomber les slash, et tout ira bien.</p>
</ul>
#use wml::debian::template title="Debian GNU/Hurd --- Documentation" NOHEADER="yes"
#include "$(ENGLISHDIR)/ports/hurd/menu.inc"
#use wml::debian::translation-check translation="1.21" maintainer="Mohammed Adnène Trojette"
<h1>Debian GNU/Hurd</h1>
<p>Dirk Ritter m'a envoyé le texte suivant, qui contient la sortie
de l'option <tt>--help</tt> de chaque programme serveur du Hurd. Cela
peut être un bon point de départ pour une documentation plus poussée
des programmes serveur, particulièrement ceux employés par les
utilisateurs, comme ext2fs, ufs, isofs, ftpfs, crash, etc.
</p>
<p>
Depuis, j'ai mis à jour le texte en utilisant des extraits de courriers
électroniques provenant de la liste de diffusion du Hurd. Merci à Martin
von Loewis.
</p>
<h2>Description préliminaire de l'interface utilisateur de GNU/Hurd</h2>
<p>
Actuellement, il n'y a presque rien, mais cela est toujours mieux
que rien du tout, alors veuillez envoyer vos plaintes, corrections et
ajouts à <a href="mailto:dirk@gnumatic.s.bawue.de">Dirk Ritter</a>,
<dirk@gnumatic.s.bawue.de>. Veuillez noter que mes compétences en
programmation sont <em>très</em> limitées, alors vous ne devriez pas
attendre de moi de comprendre effectivement quoi que ce soit au sujet du
design et des implémentations des systèmes d'exploitations.</p>
<table border="2"
summary="Index des serveurs et traducteurs du HURD :">
<caption><em>Index des serveurs et traducteurs du HURD :</em></caption>
<tr>
<th><a href="#auth" name="TOC_auth" type="text/html">
Le serveur d'authentification</a></th>
<th>"<code>auth</code>"</th>
</tr>
<tr>
<th><a href="#crash" name="TOC_crash" type="text/html">
Le serveur d'arrêt inopiné</a></th>
<th>"<code>crash</code>"</th>
</tr>
<tr>
<th><a href="#exec" name="TOC_exec" type="text/html">
Le serveur d'exécution</a></th>
<th>"<code>exec</code>"</th>
</tr>
<tr>
<th><a href="#ext2fs" name="TOC_ext2fs" type="text/html">
Le serveur du système de fichiers ext2</a></th>
<th>"<code>ext2fs</code>"</th>
</tr>
<tr>
<th><a href="#fifo" name="TOC_fifo" type="text/html">
Le traducteur fifo</a></th>
<th>"<code>fifo</code>"</th>
</tr>
<tr>
<th><a href="#firmlink" name="TOC_firmlink" type="text/html">
Le traducteur firmlink</a></th>
<th>"<code>firmlink</code>"</th>
</tr>
<tr>
<th><a href="#ftpfs" name="TOC_ftpfs" type="text/html">
Le traducteur du système de fichiers FTP</a></th>
<th>"<code>ftpfs</code>"</th>
</tr>
<tr>
<th><a href="#fwd" name="TOC_fwd" type="text/html">
Le serveur de retransmission</a></th>
<th>"<code>fwd</code>"</th>
</tr>
<tr>
<th><a href="#hostmux" name="TOC_hostmux" type="text/html">
Le serveur hostmux</a></th>
<th>"<code>hostmux</code>"</th>
</tr>
<tr>
<th><a href="#ifsock" name="TOC_ifsock" type="text/html">
Le serveur ifsock</a></th>
<th>"<code>ifsock</code>"</th>
</tr>
<tr>
<th><a href="#init" name="TOC_init" type="text/html">
Le serveur d'initialisation</a></th>
<th>"<code>init</code>"</th>
</tr>
<tr>
<th><a href="#isofs" name="TOC_isofs" type="text/html">
Le serveur du système de fichiers iso</a></th>
<th>"<code>isofs</code>"</th>
</tr>
<tr>
<th><a href="#magic" name="TOC_magic" type="text/html">
Le serveur magique</a></th>
<th>"<code>magic</code>"</th>
</tr>
<tr>
<th><a href="#new-fifo" name="TOC_new-fifo" type="text/html">
Le serveur new-fifo</a></th>
<th>"<code>new-fifo</code>"</th>
</tr>
<tr>
<th><a href="#nfs" name="TOC_nfs" type="text/html">
Le serveur NFS</a></th>
<th>"<code>nfs</code>"</th>
</tr>
<tr>
<th><a href="#null" name="TOC_null" type="text/html">
Le serveur null</a></th>
<th>"<code>null</code>"</th>
</tr>
<tr>
<th><a href="#pfinet" name="TOC_pfinet" type="text/html">
Le serveur pfinet</a></th>
<th>"<code>pfinet</code>"</th>
</tr>
<tr>
<th><a href="#pflocal" name="TOC_pflocal" type="text/html">
Le serveur pflocal</a></th>
<th>"<code>pflocal</code>"</th>
</tr>
<tr>
<th><a href="#proc" name="TOC_proc" type="text/html">
Le serveur de processus</a></th>
<th>"<code>proc</code>"</th>
</tr>
<tr>
<th><a href="#storeio" name="TOC_storeio" type="text/html">
Le traducteur de stockage</a></th>
<th>"<code>storeio</code>"</th>
</tr>
<tr>
<th><a href="#symlink" name="TOC_symlink" type="text/html">
Le traducteur de lien symbolique</a></th>
<th>"<code>symlink</code>"</th>
</tr>
<tr>
<th><a href="#term" name="TOC_term" type="text/html">
Le serveur de terminal</a></th>
<th>"<code>term</code>"</th>
</tr>
<tr>
<th><a href="#ufs" name="TOC_ufs" type="text/html">
Le serveur ufs</a></th>
<th>"<code>ufs</code>"</th>
</tr>
<tr>
<th><a href="#usermux" name="TOC_usermux" type="text/html">
Le serveur de usermux</a></th>
<th>"<code>usermux</code>"</th>
</tr>
# Uncomment and fill the blanks...
#<tr>
# <th><a href="#" name="TOC_" type="text/html">
# The server</a></th>
# <th>"<code></code>"</th>
#<tr>
</table>
<h2 align="center"><a href="#TOC_auth" name="auth" type="text/html">
Le serveur d'authentification – "<code>auth</code>"</a></h2>
<p>
Échange les mots de passes de deux serveurs qui ne se font pas
mutuellement confiance quand ils communiquent. Dans un sens, chaque
serveur d'authentification établit un domaine de confiance (Martin von
Loewis, 10 Oct 1996).</p>
<p>
Une de ses fonctionnalités intéressantes est la possibilité pour un
processus de prendre plusieurs identités à la fois, et aussi d'acquérir
ou de perdre dynamiquement des identités.</p>
<p>
Lancer "<code>/hurd/auth --help</code>" donne :
<br>
<pre>
Usage: auth [OPTION...]
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_crash" name="crash" type="text/html">
Le serveur d'arrêt inopiné – "<code>crash</code>"</a></h2>
<p>
Le serveur d'arrêt inopiné s'active à chaque fois qu'une tâche reçoit
un signal d'erreur fatale, par exemple parce qu'elle viole les limites
de mémoires (erreur de segmentation). Le serveur d'arrêt inopiné
possède trois modes de fonctionnement : en suspendant le groupe
de processus (« pgrp ») de la tâche offensante, en le tuant
ou en réalisant un fichier de vidage mémoire.
Ce dernier moyen n'est pas encore implémenté. Pensez au serveur d'arrêt
inopiné comme à un airbag.</p>
<p>
Vous pouvez évidemment positionner le mode d'opération avec
<code>settrans</code>, mais aussi avec <code>fsysopts</code> au moment
de l'exécution. Cela est vrai pour le mode par défaut du système
et nécessite habituellement les privilèges de superutilisateur.
Un utilisateur peut choisir un mode par défaut différent avec la
variable d'environnement <code>CRASHSERVER</code>. Vous positionnez
cette variable à un inode auquel est attaché le serveur
<code>crash</code>. Sur un système Debian GNU/Linux par défaut, ces
trois opérations par défaut ont des traducteurs respectifs dans
<code>/servers/crash-*</code>.</p>
<pre>
These options specify the disposition of a crashing process:
-s, --suspend Suspend the process
-k, --kill Kill the process
-c, --core-file Dump a core file
--dump-core
</pre>
<h2 align="center"><a href="#TOC_exec" name="exec" type="text/html">
Le serveur d'exécution – "<code>exec</code>"</a></h2>
<p>
Le serveur d'exécution gère la création d'une nouvelle image de
processus à partir du fichier image.</p>
<p>
En fait ce serveur est capable de créer une image de processus
exécutable à partir de n'importe quel fichier d'image reconnu par
la bibliothèque BFD (cela inclut a.out, ELF et bien d'autres). Les
exécutables gzippés sont aussi reconnu (ce qui est utile pour les
disquettes d'amorçage).</p>
<p>
Lancer "<code>/hurd/exec --help</code>" donne :
<br>
<pre>
Usage: exec [OPTION...]
Hurd standard exec server
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_ext2fs" name="ext2fs" type="text/html">
Le serveur du système de fichiers ext2 – "<code>ext2fs</code>"</a></h2>
<p>
Ce serveur s'occupe des systèmes de fichiers de type ext2. Il
fait la même chose que <code>ext2fs.static</code>, sauf que
<code>ext2fs.static</code> est un exécutable lié statiquement.</p>
<p>
Lancer "<code>/hurd/ext2fs --help</code>" donne :
<br>
<pre>
Usage: ext2fs [OPTION...] DEVICE...
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
-E, --no-exec Don't permit any execution of files on this
filesystem
-I, --interleave=BLOCKS Interleave in runs of length BLOCKS
-L, --layer Layer multiple devices for redundancy
-n, --no-sync Don't automatically sync data to disk
-r, --readonly Never write to disk or allow opens for writing
-s, --sync[=INTERVAL] If INTERVAL is supplied, sync all data not
actually written to disk every INTERVAL seconds,
otherwise operate in synchronous mode (the default
is to sync every 30 seconds)
-S, --no-suid Don't permit set-uid or set-gid execution
-T, --store-type=TYPE Each DEVICE names a store of type TYPE
-w, --writable Use normal read/write behavior
Boot options:
--bootflags=FLAGS
-C, --directory=DIRECTORY
--device-master-port=PORT
--exec-server-task=PORT
--host-priv-port=PORT
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_fifo" name="fifo" type="text/html">
Le serveur fifo – "<code>fifo</code>"</a></h2>
<p>
Le traducteur fifo implémentant les files nommées.</p>
<p>
Lancer "<code>/hurd/fifo --help</code>" donne :</p>
<br>
<pre>
Usage: fifo [OPTION...]
Translator for fifos
-d, --dgram Reads reflect write record boundaries
-m, --multiple-readers Allow multiple simultaneous readers
-n, --noblock Don't block on open
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_firmlink" name="firmlink" type="text/html">
Le serveur firmlink – "<code>firmlink</code>"</a></h2>
<p>
Un traducteur pour firmlinks.</p>
<p>
Lancer "<code>/hurd/firmlink --help</code>" donne :
<br>
<pre>
Usage: firmlink [OPTION...] TARGET
A translator for firmlinks
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
A firmlink is sort of half-way between a symbolic link and a hard link;
Like a symbolic link, it is `by name', and contains no actual reference to the
target. However, the lookup returns a node which will redirect parent lookups
so that attempts to find the cwd that go through the link will reflect the link
name, not the target name. The target referenced by the firmlink is looked up
in the namespace of the translator, not the client.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_ftpfs" name="ftpfs" type="text/html">
Le serveur du système de fichiers FTP – "<code>ftpfs</code>"</a></h2>
<p>
Un serveur pour serveurs de fichiers FTP.</p>
<p>
Lancer "<code>/hurd/ftpfs --help</code>" donne :
<br>
<pre>
Usage: ftpfs [OPTION...] REMOTE_FS [SERVER]
Hurd ftp filesystem translator
-D, --debug[=FILE] Print debug output to FILE
Parameters:
--bulk-stat-period=SECS Period for detecting bulk stats (default 10)
--bulk-stat-threshold=SECS Number of stats within the bulk-stat-period
that trigger a bulk stat (default 5)
--name-timeout=SECS Time directory names are cached (default 300)
--node-cache-size=ENTRIES Number of recently used filesystem nodes that
are cached (default 50)
--stat-timeout=SECS Time stat information is cached (default 120)
-?, --help Give this help list
--usage Give a short usage message
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
If SERVER is not specified, an attempt is made to extract it from REMOTE_FS,
using `SERVER:FS' notation. SERVER can be a hostname, in which case anonymous
ftp is used, or may include a user and password like `USER:PASSWORD@HOST' (the
`:PASSWORD' part is optional).
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_fwd" name="fwd" type="text/html">
Le serveur de retransmission – "<code>fwd</code>"</a></h2>
<p>
Quand il reçoit un accès, le traducteur <code>fwd</code> retransmet
les requêtes à un autre serveur. Il est utilisé dans les serveurs
<code>fifo</code> et <code>symlink</code>. L'idée est telle que vous
n'ayez pas besoin de trente-six millions de serveurs pour réaliser
des opérations aussi triviales ; <code>fwd</code> est utilisé
pour coordonner un serveur qui doit commodément traiter avec plusieurs
nœuds différents.</p>
<p>
Lancer "<code>/hurd/fwd --help</code>" donne :
<br>
<pre>
Usage: /hurd/fwd SERVER [TRANS_NAME [TRANS_ARG...]]
</pre>
<h2 align="center"><a href="#TOC_hostmux" name="hostmux" type="text/html">
Le serveur hostmux – "<code>hostmux</code>"</a></h2>
<p>
Je n'ai aucune idée de ce à quoi ce serveur sert.</p>
<small>
(un serveur pour les résolutions de nom d'hôte ?)
</small>
<p>
Lancer "<code>/hurd/hostmux --help</code>" donne :
<br>
<pre>
Usage: hostmux [OPTION...] TRANSLATOR [ARG...]
A translator for invoking host-specific translators
-H, --host-pattern=PAT The string to replace in the translator
specification with the hostname; if empty, or
doesn't occur, the hostname is appended as
additional argument instead (default `${host}')
-?, --help Give this help list
--usage Give a short usage message
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
This translator appears like a directory in which hostnames can be looked up,
and will start TRANSLATOR to service each resulting node.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_ifsock" name="ifsock" type="text/html">
Le serveur ifsock – "<code>ifsock</code>"</a></h2>
<p>
<code>ifsock</code> ne traite que les nœuds <code>S_IFSOCK</code>
de système de fichiers pour les systèmes de fichiers filesystem qui ne
le font pas eux-mêmes, en agissant comme un point d'accroche sur lequel
accrocher les adresses de socket de domaine Unix. <code>pfinet</code>
et <code>pflocal</code> implémentes l'API <code>socket</code> (Thomas
Bushnell, 10 Oct 1996).</p>
<p>
Lancer "<code>/hurd/ifsock --help</code>" donne :
<br>
<pre>
/hurd/ifsock: Must be started as a translator
</pre>
<h2 align="center"><a href="#TOC_init" name="init" type="text/html">
Le serveur d'initialisation – "<code>init</code>"</a></h2>
<p>
Un serveur pour les procédures d'amorçage du système et les
configurations pour le moment de l'exécution.</p>
<p>
Lancer "<code>/hurd/init --help</code>" donne :
<br>
<pre>
Usage: init [OPTION...]
Start and maintain hurd core servers and system run state
-d, --debug
-f, --fake-boot This hurd hasn't been booted on the raw machine
-n, --init-name
-q, --query Ask for the names of servers to start
-s, --single-user Startup system in single-user mode
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_isofs" name="isofs" type="text/html">
Le serveur du système de fichiers iso – "<code>isofs</code>"</a></h2>
<p>
Un serveur pour les systèmes de fichiers de type ISO, utilisés
communément sur les cédéroms.</p>
<p>
Lancer "<code>/hurd/isofs --help</code>" donne :
<br>
<pre>
Usage: isofs [OPTION...] DEVICE...
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
-E, --no-exec Don't permit any execution of files on this
filesystem
-I, --interleave=BLOCKS Interleave in runs of length BLOCKS
-L, --layer Layer multiple devices for redundancy
-n, --no-sync Don't automatically sync data to disk
-r, --readonly Never write to disk or allow opens for writing
-s, --sync[=INTERVAL] If INTERVAL is supplied, sync all data not
actually written to disk every INTERVAL seconds,
otherwise operate in synchronous mode (the default
is to sync every 30 seconds)
-S, --no-suid Don't permit set-uid or set-gid execution
-T, --store-type=TYPE Each DEVICE names a store of type TYPE
-w, --writable Use normal read/write behavior
Boot options:
--bootflags=FLAGS
-C, --directory=DIRECTORY
--device-master-port=PORT
--exec-server-task=PORT
--host-priv-port=PORT
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_magic" name="magic" type="text/html">
Le serveur magique – "<code>magic</code>"</a></h2>
<p>
Un traducteur qui renvoie le résultat de nouvel essai magique
<code>MAGIC</code>.</p>
<p>
Les utilisateurs finaux normaux n'auront probablement pas besoin d'en
savoir beaucoup à son propos, puisqu'il est utilisé, par exemple,
pour faciliter les entrées et sorties du terminal. Les développeurs
pourront tirer profit des éléments d'informations qu'a donnés Thomas
Bushnell :</p>
<blockquote>
La clé est ici de savoir ce qu'est un "résultat de nouvel
essai magique" ("magic retry result"). La chose à
faire est de regarder le <abbr>RPC</abbr> <code>dir_lookup</code>
qui est documenté dans <code><hurd/fs.defs></code> et
<code><hurd/hurd_types.defs></code>.
<br>
Les résultats de consultation de Magic sont basiquement obtenus dans
les cas où la consultation a besoin d'informations qui font partie
de l'état d'appel du processus, et non de la procédure normale de
consultation de nom. Ces états ("punt to caller's state")
doivent chacun être spécialement implémentés dans la bibliothèque C
(voir <code>libc/hurd/hurdlookup.c</code>), et couvrir les cas connus,
afin de proposer les fonctionnalités fournies par bien d'autres systèmes.
</blockquote>
<p>
Il a aussi gentiment expliqué un comportement particulier qui embrouille
l'utilisateur final moyen quand ils le rencontrent pour la première
fois :</p>
<blockquote>
L'incapacité de faire "<kbd>ls /dev/fd</kbd>" est due au fait
que le traducteur ne connaît pas les descripteurs de fichiers qui sont
ouverts. Il ne peut alors pas vous dire lesquels existent. Mais son
comportement est parfaitement identique sur les autres systèmes.
</blockquote>
<p>
Lancer "<code>/hurd/magic --help</code>" donne :
<br>
<pre>
Usage: magic [OPTION...] MAGIC
A translator that returns the magic retry result MAGIC
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_new-fifo" name="new-fifo" type="text/html">
Le serveur new-fifo – "<code>new-fifo</code>"</a></h2>
<p>
Serveur alternatif pour files nommées.</p>
<p>
Lancer "<code>/hurd/new-fifo --help</code>" donne :
<br>
<pre>
Usage: new-fifo [OPTION...]
-d, --dgram Reflect write record boundaries
-n, --noblock Don't block on open
-r, --multiple-readers Allow multiple simultaneous readers
-s, --server Operate in server mode
-S, --standalone Don't attempt to use a fifo server
-U, --use-server=NAME Attempt use server NAME
-?, --help Give this help list
--usage Give a short usage message
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_nfs" name="nfs" type="text/html">
Le serveur de systèmes de fichiers en réseau – "<code>nfs</code>"</a></h2>
<p>
Gestion de systèmes de fichiers en réseau pour le systèmes de fichiers
en réseau de SUN (NFS).</p>
<p>
Lancer "<code>/hurd/nfs --help</code>" donne :
<br>
<pre>
Usage: nfs [OPTION...] REMOTE_FS [HOST]
Hurd nfs translator
-h, --hard Retry file systems requests until they succeed
-s, --soft[=RETRIES] File system requests will eventually fail, after
RETRIES tries if specified, otherwise 3
-R, --read-size=BYTES, --rsize=BYTES
Max packet size for reads (default 8192)
-W, --write-size=BYTES, --wsize=BYTES
Max packet size for writes (default 8192)
Timeouts:
--cache-timeout=SEC Timeout for cached file data (default 3)
--init-transmit-timeout=SEC
--max-transmit-timeout=SEC
--name-cache-neg-timeout=SEC
Timeout for negative directory cache entries
(default 3)
--name-cache-timeout=SEC Timeout for positive directory cache entries
(default 3)
--stat-timeout=SEC Timeout for cached stat information (default 3)
Server specification:
--default-mount-port=PORT Port for mount server, if none can be found
automatically
--default-nfs-port=PORT Port for nfs operations, if none can be found
automatically
--mount-port=PORT Port for mount server
--mount-program=ID[.VERS]
--nfs-port=PORT Port for nfs operations
--nfs-program=ID[.VERS]
--pmap-port=SVC|PORT
-?, --help Give this help list
--usage Give a short usage message
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
If HOST is not specified, an attempt is made to extract it from REMOTE_FS,
using either the `HOST:FS' or `FS@HOST' notations.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_null" name="null" type="text/html">
Le lavabo de la cuisine – "<code>null</code>"</a></h2>
<p>
Un serveur à beaucoup d'espace libre et plein de zéros. Implémente
<code>/dev/null</code> et <code>/dev/zero</code>.
<p>
Lancer "<code>/hurd/null --help</code>" donne :
<br>
<pre>
Usage: null [OPTION...]
Endless sink and null source
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_pfinet" name="pfinet" type="text/html">
Le serveur TCP/IP – "<code>pfinet</code>"</a></h2>
<p>
Un serveur pour TCP/IP, qui implémente la famille de protocoles PF_INET
(IPv4). Le serveur qui implémentera la famille de protocoles IPv6 sera
appelé pfinet6, dans le schéma actuel.</p>
<p>
Mettre cela en place n'est pas dur du tout. C'est toujours placé dans
<code>/servers/socket/2</code>, parce que c'est là que la glibc le
cherchera. Soyez donc sûr de l'installer ainsi : <code>settrans
/servers/socket/2 /hurd/pfinet --interface=eth0 OPTIONS</code>, où
<code>OPTIONS</code> spécifie vos adresse IP, masque de sous-réseau et
passerelle (s'il en est). Seule une interface réseau est actuellement
supportée. Plus tard, vous pourrez aussi ajouter d'autres interfaces
comme <code>eth1</code> et ainsi de suite avec la même commande.</p>
<p>
Si vous n'avez pas de carte réseau, vous devriez au moins installer
l'interface de bouclage (« loopback »), afin que l'hôte
local (« localhost ») fonctionne (important pour le
système d'impression et autres choses utiles). Faites-le avec la
commande sus-mentionnée, mais ne spécifiez aucune interface ni
<code>OPTIONS</code>. Un simple <code>settrans /servers/socket/1
/hurd/pfinet</code> suffira.</p>
<p>
Lancer "<code>/hurd/pfinet --help</code>" donne :
<br>
<pre>
Swansea University Computer Society TCP/IP for NET3.019
IP Protocols: ICMP, UDP, TCP
Usage: pfinet [OPTION...]
Interface-specific options before the first interface specification apply to
the first following interface; otherwise they apply to the previously specified
interface.
-i, --interface=DEVICE Network interface to use
These apply to a given interface:
-a, --address=ADDRESS Set the network address
-g, --gateway=ADDRESS Set the default gateway
-m, --netmask=MASK Set the netmask
-s, --shutdown Shut it down
-?, --help Give this help list
--usage Give a short usage message
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_pflocal" name="pflocal" type="text/html">
Le serveur pflocal – "<code>pflocal</code>"</a></h2>
<p>
Implémente les sockets de domaine UNIX. Nécessaire pour les files, par
exemple.</p>
<p>
Lancer "<code>/hurd/pflocal --help</code>" donne :
<br>
<pre>
Usage: /hurd/pflocal
</pre>
<h2 align="center"><a href="#TOC_proc" name="proc" type="text/html">
Le serveur de processus – "<code>proc</code>"</a></h2>
<p>
Le serveur de processus assigne les PID et les structures de processus
aux tâches, et gère tout ce qui se trouve au niveau processus comme
<code>wait</code>, des choses comme <code>fork</code>, la gestion de la
bibliothèque C.</p>
<p>
Lancer "<code>/hurd/proc --help</code>" donne :
<br>
<pre>
Usage: proc [OPTION...]
Hurd process server
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_storeio" name="storeio" type="text/html">
Le traducteur de stockage – "<code>storeio</code>"</a></h2>
<p>
Un traducteur pour périphériques de stockages.</p>
<p>
Lancer "<code>/hurd/storeio --help</code>" donne :
<br>
<pre>
Usage: storeio [OPTION...] DEVICE...
Translator for devices and other stores
-I, --interleave=BLOCKS Interleave in runs of length BLOCKS
-L, --layer Layer multiple devices for redundancy
-n, --rdev=ID The stat rdev number for this node; may be either
a single integer, or of the form MAJOR,MINOR
-r, --readonly Disallow writing
-T, --store-type=TYPE Each DEVICE names a store of type TYPE
-w, --writable Allow writing
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_symlink" name="symlink" type="text/html">
Le serveur de lien symbolique – "<code>symlink</code>"</a></h2>
<p>
Un serveur de liens symboliques pour les systèmes de fichiers qui ne les
gèrent pas eux-mêmes.</p>
<p>
Lancer "<code>/hurd/symlink --help</code>" donne :
<br>
<pre>
?
</pre>
(Il n'y a aucune sortie ? Comme c'est étrange...)
<h2 align="center"><a href="#TOC_term" name="term" type="text/html">
Le serveur terminal – "<code>term</code>"</a></h2>
<p>
Implémente un terminal POSIX.</p>
<p>
Lancer "<code>/hurd/term --help</code>" donne :
<br>
<pre>
Usage: term ttyname type arg
</pre>
<h2 align="center"><a href="#TOC_ufs" name="ufs" type="text/html">
Le serveur ufs – "<code>ufs</code>"</a></h2>
<p>
Un serveur pour les systèmes de fichiers ufs-type. Il fait la même chose
qu'<code>ufs.static</code>, sauf qu'<code>ufs.static</code> est un
exécutable lié statiquement.</p>
<p>
Lancer "<code>/hurd/ufs --help</code>" donne :
<br>
<pre>
Usage: ufs [OPTION...] DEVICE...
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
-C, --compat=FMT FMT may be GNU, 4.4, or 4.2, and determines which
filesystem extensions are written onto the disk
(default is GNU)
-E, --no-exec Don't permit any execution of files on this
filesystem
-I, --interleave=BLOCKS Interleave in runs of length BLOCKS
-L, --layer Layer multiple devices for redundancy
-n, --no-sync Don't automatically sync data to disk
-r, --readonly Never write to disk or allow opens for writing
-s, --sync[=INTERVAL] If INTERVAL is supplied, sync all data not
actually written to disk every INTERVAL seconds,
otherwise operate in synchronous mode (the default
is to sync every 30 seconds)
-S, --no-suid Don't permit set-uid or set-gid execution
-T, --store-type=TYPE Each DEVICE names a store of type TYPE
-w, --writable Use normal read/write behavior
Boot options:
--bootflags=FLAGS
--device-master-port=PORT
--directory=DIRECTORY
--exec-server-task=PORT
--host-priv-port=PORT
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
If neither --interleave or --layer is specified, multiple DEVICEs are
concatenated.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_usermux" name="usermux" type="text/html">
Le traducteur usermux – "<code>usermux</code>"</a></h2>
<p>
Un traducteur pour invoquer des traducteurs spécifiques à
l'utilisateur.</p>
<p>
Lancer "<code>/hurd/usermux --help</code>" donne :
<br>
<pre>
Usage: usermux [OPTION...] [TRANSLATOR [ARG...]]
A translator for invoking user-specific translators
-C, --clear-patterns Reset all patterns to empty; this option may then
be followed by options to set specific patterns
--home-pattern=PAT The string to replace in the translator
specification with the user's home directory
(default `${home}')
--uid-pattern=PAT The string to replace in the translator
specification with the uid (default `${uid}')
--user-pattern=PAT The string to replace in the translator
specification with the user name (default
`${user}')
-?, --help Give this help list
--usage Give a short usage message
This translator appears like a directory in which user names can be looked up,
and will start TRANSLATOR to service each resulting node. If no pattern occurs
in the translator specification, the users's home directory is appended to it
instead; TRANSLATOR defaults to /hurd/symlink.
Report bugs to bug-hurd@gnu.org.
</pre>
# Uncomment and fill the blanks...
#<h2 align="center"><a href="#TOC_" name="" type="text/html">
#The server – "<code></code>"</a></h2>
#
#<p>
#A server for .
#
#<p>
#Lancer "<code>/hurd/ --help</code>" donne :
#<br>
#<pre>
#
#</pre>
#use wml::debian::template title="Debian GNU/Hurd – Documentation" NOHEADER="yes"
#include "$(ENGLISHDIR)/ports/hurd/menu.inc"
#use wml::debian::translation-check translation="1.11" maintainer="Mohammed Adnène Trojette"
<h1>Debian GNU/Hurd</h1>
<table border="2"
summary="Index des utilitaires GNU/Hurd">
<caption><em>Index des utilitaires GNU/Hurd :</em></caption>
<tr>
<th><a href="#syncfs" name="TOC_syncfs" type="text/html">
Synchronisateur de systèmes de fichiers</a></th>
<th>"<code>syncfs</code>"</th>
</tr>
<tr>
<th><a href="#showtrans" name="TOC_showtrans" type="text/html">
Afficheur du traducteur passif d'un fichier (« FILE »)</a></th>
<th>"<code>showtrans</code>"</th>
</tr>
<tr>
<th><a href="#devprobe" name="TOC_devprobe" type="text/html">
Investigateur de périphériques matériels</a></th>
<th>"<code>devprobe</code>"</th>
</tr>
#Uncomment and fill the blanks...
#<tr>
# <th><a href="#" name="TOC_" type="text/html">
# The server</a></th>
# <th>"<code></code>"</th>
#</tr>
</table>
<h2 align="center"><a href="#TOC_syncfs" name="syncfs" type="text/html">
Synchronisateur de systèmes de
fichiers – "<code>syncfs</code>"</a></h2>
<p>
<code>syncfs</code> peut être utilisé pour vider le cache d'écriture
pour les systèmes de fichiers de disque.</p>
<p>
Lancer "<code>/bin/syncfs --help</code>" donne :
<br>
<pre>
Usage: syncfs [FILE...]
Force all pending disk writes to be done immediately
-s, --synchronous Wait for completion of all disk writes
-c, --no-children Do not synchronize child filesystems
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
The filesystem containing each FILE is synchronized, and its child
filesystems unless --no-children is specified. With no FILE argument
synchronizes the root filesystem.
Report bugs to bug-hurd@gnu.org.
</pre>
<h2 align="center"><a href="#TOC_showtrans" name="showtrans" type="text/html">
Afficheur du traducteur passif d'un fichier
(« FILE ») – <code>showtrans</code></a></h2>
<p>
Si vous voulez savoir quel traducteur passif est connecté à un inode
s'il en est, utilisez <code>settrans</code>.</p>
<p>
Lancer « <code>/bin/showtrans --help</code> » renvoit :
<br>
<pre>
Usage: showtrans FILE...
Show the passive translator of FILE...
-p, --prefix Always display `FILENAME: ' before translators
-P, --no-prefix Never display `FILENAME: ' before translators
-s, --silent No output; useful when checking error status
-t, --translated Only display files that have translators
A FILE argument of `-' prints the translator on the node
attached to standard input.
</pre>
<h2 align="center"><a href="#TOC_devprobe" name="devprobe" type="text/html">
Investigateur de périphériques – <code>devprobe</code></a></h2>
<p>
L'utilitaire <code>devprobe</code> recherche un ou plusieurs
périphériques Mach. Spécifiez seulement les noms comme arguments sur
la ligne de commande : si certains périphériques existent, il
affichera leurs noms au rythme d'un par ligne et s'arrêtera avec succès,
sinon il renverra 1. Les options fournies rendront plus faciles l'usage
de cet utilitaire en mode différé (« batch »).</p>
<p>
Lancer "<code>/bin/devprobe --help</code>" donne :
<br>
<pre>
Usage: devprobe DEVNAME...
Test for the existence of mach device DEVNAME...
-s, --silent Don't print devices found
-f, --first Stop after the first device found
The exit status is 0 if any devices were found.
</pre>
#Uncomment and fill the blanks...
#<h2 align="center"><a href="#TOC_" name="" type="text/html">
#The server - "<code></code>"</a></h2>
#
#<p>
#A server for .
#
#<p>
#Lancer « <code>/hurd/ --help</code> » renvoit :
#<br>
#<pre>
#
#</pre>
Reply to: