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.
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 (vederelibc/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
installi con:
settrans /servers/socket/2 /hurd/pfinet -6 /servers/socket/26 --interface=/dev/eth0 OPZIONI
e
settrans /servers/socket/26 /hurd/pfinet -4 /servers/socket/2 --interface=/dev/eth0 OPZIONI
,
dove OPZIONI
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 né OPZIONI
. È
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.