Port ] [ Debian GNU/Hurd ] [ Notizie ] [ Configurazione ] [ CD di Hurd ] [ Documentazione ] [ Sviluppo ] [ Contatti ]

Debian GNU/Hurd

Dirk Ritter ha inviato il seguente testo che contiene l'output dell'opzione --help di ogni programma servente di Hurd. Questo può essere un buon punto di partenza per ulteriori informazioni sui programmi serventi, in particolare su quelli più utili all'utente come ext2fs, ufs, isofs, ftpfs, crash, ecc.

Successivamente il testo è stato aggiornato con dei passaggi presi dalle email inviate alla lista di messaggi di Hurd. Grazie a Martin von Loewis.

Descrizione preliminare dell'interfaccia utente di GNU/Hurd

Al momento non contiene quasi nulla ma questo è meglio di niente, inviate critiche, correzioni e aggiunte a Dirk Ritter, <dirk@gnumatic.s.bawue.de>. Notare che le mie competenze sulla programmazione sono molto limitate, quindi non aspettatevi che io capisca tutto ciò che riguarda la progettazione e l'implementazione di un Sistema Operativo.

Elenco dei serventi e dei traduttori HURD:
Servente di autenticazione "auth"
Servente dei crash "crash"
Servente di esecuzione "exec"
Servente del filesystem ext2 "ext2fs"
Traduttore fifo "fifo"
Traduttore firmlink "firmlink"
Traduttore per filesystem ftp "ftpfs"
Servente fwd "fwd"
Servente hostmux "hostmux"
Servente ifsock "ifsock"
Servente init "init"
Servente per filesystem ISO "isofs"
Servente magic "magic"
Servente new-fifo "new-fifo"
Servente nfs "nfs"
Servente null "null"
Servente pfinet "pfinet"
Servente pflocal "pflocal"
Servente per i processi "proc"
Traduttore di memorizzazione "storeio"
Servente per link simbolici "symlink"
Servente terminale "term"
Servente ufs "ufs"
Servente usermux "usermux"

Servente di autenticazione - "auth"

Trasferisce le credenziali quando due serventi non mutuamente fiduciosi comunicano, in modo che ciascun server di autenticazione stabilisce un dominio di fiducia. (Martin von Loewis, 10 ottobre 1996).

Una delle sue interessanti funzionalità è che permette ai processi di impersonare molte identità nello stesso istante e inoltre permette di acquisire o rinunciare dinamicamente alle identità.

L'esecuzione di "/hurd/auth --help" restituisce:

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.

Servente dei crash - "crash"

Servente dei crash si attiva nel caso che un processo riceva il segnale di un errore fatale, per esempio per violazione dei limiti di memoria (violazione della segmentazione). Il servente dei crash ha tre modalità di funzionamento: sospensione del gruppo dei processi (pgrp) del processo che ha dato origine all'errore, uccisione del processo o creazione di un file con il core dump. L'ultima modalità ancora non è stata implementata. Si può immaginare il servente dei crash come a un airbag.

Ovviamente è possibile impostare il modo di funzionamento con settrans ma lo si può fare anche con fsysopts durante l'esecuzione. Queste impostazioni influenzano l'intero sistema e richiedono i privilegi di root per essere effettuate, un utente può fare delle impostazioni personalizzate tramite l'uso della variabile di ambiente CRASHSERVER. Si imposta questa variabile a un inode su cui è collegato il servente crash. Su un normale sistema Debian GNU/Linux ci sono tre operazioni predefinite che corrispondono ai traduttori in /servers/crash-*.

 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

Servente di esecuzione - "exec"

exec gestisce la creazione di nuovi processi immagine partendo da file immagine.

Al momento questo servente ha il supporto per creare un processo immagine eseguibile all'infuori dai file immagine riconosciuti dalla libreria BFD (questa comprende a.out, ELF e molti altri). Sono riconosciuti anche gli eseguibili compressi con gzip (utile per i dischetti di avvio).

L'esecuzione di "/hurd/exec --help" restituisce:

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.

Servente del filesystem ext2 - "ext2fs"

Servente per i filesystem tipo ext2. Fa esattamente le stesse cose di ext2fs.static, l'unica differenza è che ext2fs.static è un eseguibile linkato staticamente.

L'esecuzione di "/hurd/ext2fs --help" restituisce:

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.

Servente fifo - "fifo"

Il traduttore fifo implementa le cosiddette pipe.

L'esecuzione di "/hurd/fifo --help" restituisce:

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.

Servente per link statici - "firmlink"

Traduttore per link statici.

L'esecuzione di "/hurd/firmlink --help" restituisce:

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.

Servente per il filesystem ftp - "ftpfs"

Servente per i filesystem ftp.

L'esecuzione di "/hurd/ftpfs --help" restituisce:

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.

Servente fwd - "fwd"

Quando vi si accede, il traduttore fwd inoltra le richieste a un altro servente. Viene usato nei serventi per fifo e link simbolici. L'idea è che non servono milioni di serventi per le cose più banali; fwd è usato per coordinare, un solo servente gestisce molti nodi diversi in modo conveniente.

L'esecuzione di "/hurd/fwd --help" restituisce:

Usage: /hurd/fwd SERVER [TRANS_NAME [TRANS_ARG...]]

Servente hostmux - "hostmux"

Non ho idea di a cosa serva questo servente. (Un servente per la ricerca degli host?)

L'esecuzione di "/hurd/hostmux --help" restituisce:

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.

Servente ifsock - "ifsock"

ifsock gestisce solo nodi S_IFSOCK del filesystem per i filesystem che non sono capaci di farlo da soli, catturando gli indirizzi dei socket di dominio Unix. pfinet e pflocal implementano la API per socket. (Thomas Bushnell, 10 Ottobre 1996)

L'esecuzione di "/hurd/ifsock --help" restituisce:

/hurd/ifsock: Must be started as a translator

Servente di inizializzazione - "init"

Servente per le procedure di avvio e le configurazioni di esecuzione di base.

L'esecuzione di "/hurd/init --help" restituisce:

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.

Servente per il filesystem iso - "isofs"

Servente per filesystem iso comunemente usato sui compact disk.

L'esecuzione di "/hurd/isofs --help" restituisce:

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.

Servente magic - "magic"

Traduttore che restituisce il risultato magico di MAGIC. Non è necessario che i normali utenti finali conoscano molte cose a suo riguardo dato che è usato, per esempio, per semplificare I/O con il terminale. I programmatori possono beneficiare delle seguenti informazioni fornite da Thomas Bushnell:

La cosa fondamentale è sapere cos'è un "risultato magico". La cosa da fare è guardare RPC del dir_lookup documentato in <hurd/fs.defs> e in <hurd/hurd_types.defs>.
I risultati magici di ricerca sono adatti per i casi in cui la ricerca necessiti di informazioni che sono parte dello stato del processo chiamante, che non sono usate con le normali procedure di ricerca. Questi "riferimenti allo stato del chiamante" devono essere appositamente tutti implementati nella libreria C (vedere libc/hurd/hurdlookup.c) in modo da coprire i casi noti e offrire alla stessa funzionalità fornita da molti altri sistemi.

È anche spiegato da un particolare comportamento che di solito lascia perplesso l'utente finale medio quando lo riscontra per la prima volta:

L'impossibilità di eseguire "ls /dev/fd" è dovuta al fatto che il traduttore ancora non conosce quale descrittore di file è stato aperto e quindi non può dire quale esiste. Se non altro è esattamente lo stesso comportamento che si ha su altri sistemi.

L'esecuzione di "/hurd/magic --help" restituisce:

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.

Servente new-fifo - "new-fifo"

Servente alternativo per le pipe.

L'esecuzione di "/hurd/new-fifo --help" restituisce:

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.

Servente per filesystem di rete - "nfs"

Supporta il filesystem di rete Network File System della Sun.

L'esecuzione di "/hurd/nfs --help" restituisce:

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.

Il tutto fare - "null"

Servente con molto spazio libero e un infinito numero di zeri, implementa /dev/null e /dev/zero.

L'esecuzione di "/hurd/null --help" restituisce:

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.

Servente TCP/IP - "pfinet"

Servente per TCP/IP che implementa la famiglia di protocolli PF_INET (IPv4). Il servente che implementa la famiglia di protocolli IPv6 dovrebbe essere chiamato pfinet6.

La sua impostazione non è affatto difficile. È sempre posizionato in /servers/socket/2 dato che la glibc lo cerca lì, quindi lo si settrans /servers/socket/2 /hurd/pfinet -6 /servers/socket/26 --interface=eth0 OPTIONS e settrans /servers/socket/26 /hurd/pfinet -4 /servers/socket/2 --interface=eth0 OPTIONS, dove OPTIONS specifica l'indirizzo IP, la netmask e il gateway (se presente). Al momento è possibile configurare una sola interfaccia di rete, successivamente, con lo stesso comando si possono impostare anche altre interfacce come eth1 e così via.

Se non si dispone di una scheda di rete si dovrebbe installare almeno l'interfaccia di loopback in modo da far funzionare localhost (importante per lo spool di stampa e per altre utili cose), per farlo si usi il comando precedente senza specificare l'interfaccia o OPTIONS. È sufficiente un semplice settrans /servers/socket/1 /hurd/pfinet.

L'esecuzione di "/hurd/pfinet --help" restituisce:

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.

Servente pflocal - "pflocal"

Implementa i socket di domino UNIX necessari, per esempio, per le pipe.

L'esecuzione di "/hurd/pflocal --help" restituisce:

Usage: /hurd/pflocal

Servente per processi - "proc"

Il servente proc assegna i PID e la struttura del processo ai task inoltre gestisce tutte le cose che riguardano il processo come lo stato di attesa, i bit di fork e il supporto della libreria C.

L'esecuzione di "/hurd/proc --help" restituisce:

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.

Traduttore di memorizzazione - "storeio"

Traduttore per dispositivi e altri supporti di memorizzazione.

L'esecuzione di "/hurd/storeio --help" restituisce:

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.

Servente per link simbolici - "symlink"

Servente per usare link simbolici nei filesystem che non li supportano autonomamente.

L'esecuzione di "/hurd/symlink --help" restituisce:

?

(Non dà altro output? Strano...)

Servente terminale - "term"

Implementa un terminale POSIX.

L'esecuzione di "/hurd/term --help" restituisce:

Usage: term ttyname type arg

Servente ufs - "ufs"

Servente per i filesystem tipo ufs. Fa esattamente le stesse cose di ufs.static, l'unica differenza è che ufs.static è un eseguibile linkato staticamente.

L'esecuzione di "/hurd/ufs --help" restituisce:

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.

Traduttore usermux - "usermux"

Un traduttore per invocare i traduttori specificati direttamente dall'utente.

L'esecuzione di "/hurd/usermux --help" restituisce:

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.