Bemerkung: Das Original ist neuer als diese Übersetzung.

Portierungen ] [ Debian GNU/Hurd ] [ Neues ] [ Konfiguration ] [ Hurd-CDs ] [ Dokumentation ] [ Entwicklung ] [ Kontakt ]

Debian GNU/Hurd

Dirk Ritter hat mir den folgenden Text geschickt, der die Ausgabe der --help-Option aller Hurd-Serverprogramme enthält. Das könnte ein guter Ausgangspunkt für die weitere Dokumentation der Serverprogramme sein, speziell jener, die für Benutzer nützlich sind, wie ext2fs, ufs, isofs, ftpfs, crash, etc.

Seitdem habe ich den Text aktualisiert und habe dafür Auszüge aus E-Mails von der Hurd-Mailingliste genutzt. Danke an Martin von Loewis.

Einleitende GNU/Hurd Nutzerschnittstellenbeschreibung

Aktuell gibt es fast nichts, aber das ist immerhin besser als gar nichts. Schicken Sie bitte Beschwerden, Berichtigungen und Ergänzungen an Dirk Ritter, <dirk@gnumatic.s.bawue.de>. Bitte beachten Sie, dass meine Programmierkenntnisse sehr beschränkt sind, also sollten Sie nicht erwarten, dass ich irgendetwas von Betriebssystemdesign und -implementierung verstehe.

Index der HURD-Server und -Übersetzer:
Der Authentifizierungsserver "auth"
Der Crashserver "crash"
Der Ausführungsserver "exec"
Der ext2fs-Server "ext2fs"
Der fifo-Übersetzer "fifo"
Der firmlink-Übersetzer "firmlink"
Der ftp-Dateisystem-Übersetzer "ftpfs"
Der fwd-Server "fwd"
Der hostmux-Server "hostmux"
Der ifsock-Server "ifsock"
Der init-Server "init"
Der ISO-Dateisystem-Server "isofs"
Der magic-Server "magic"
Der new-fifo-Server "new-fifo"
Der nfs-Server "nfs"
Der Null-Server "null"
Der pfinet-Server "pfinet"
Der pflocal-Server "pflocal"
Der Prozessserver "proc"
Der Speicherübersetzer "storeio"
Der Übersetzer für symbolische Links "symlink"
Der Terminalserver "term"
Der ufs-Server "ufs"
Der usermux-Server "usermux"

Der Authentifizierungsserver - "auth"

Vermittelt Berechtigungsnachweise (credentials), wenn zwei nicht vertrauenswürdige Server kommunizieren. In gewissen Sinne bildet jeder Authentifizierungsserver eine Domain-of-Trust. (Martin von Loewis, 10. Okt 1996)

Eins seiner interessantesten Features ist, dass er es Prozessen möglich macht, mehr als eine Identität zur gleichen Zeit anzunehmen und außerdem Identitäten dynamisch anzunehmen und abzulegen.

Die Ausführung von "/hurd/auth --help" ergibt:

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.

Der Crashserver - "crash"

Der Crashserver wird aktiv, wenn ein Prozess ein schwerwiegendes Fehlersignal erhält, zum Beispiel, weil er Speichergrenzen verletzt (segmentation fault). Der Crashserver hat drei Ausführungsmodi: Er kann die Prozessgruppe (pgrp) des betreffenden Prozesses zeitweilig sperren, sie killen oder einen Speicherauszug ausgeben (core dump). Die letzte Möglichkeit ist allerdings noch nicht implementiert. Stellen Sie sich den Crashserver wie einen Airbag vor.

Sie können den Ausführungsmodus natürlich mit settrans setzen, aber auch mit fsysopts zur Laufzeit. Dies setzt die systemweite Voreinstellung und setzt root-Rechte voraus. Ein Nutzer kann eine andere Voreinstellung durch die Umgebungsvariable CRASHSERVER auswählen. Sie müssen dieser Variable als Pfad eine Inode zuweisen, an der ein Crashserver hängt. Auf einem Debian-GNU/Linux-System haben die drei Standard-Ausführungsmodi entsprechende Übersetzer 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

Der Ausführungsserver - "exec"

Exec regelt die Erstellung eines neuen Prozesses-Speicherabbilds aus der Programmdatei.

Dieser Server unterstützt die Erstellung eines ausführbaren Prozess-Speicherabbilds aus jeder Programmdatei, deren Format von der BFD-Bibliothek unterstützt wird (das beinhaltet a.out, ELF und viele andere). Mit gzip komprimierte Programmdateien werden auch erkannt (das ist für Installationsdisketten nützlich).

Die Ausführung von "/hurd/exec --help" ergibt:

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.

Der ext2-Dateisystemserver - "ext2fs"

Dieser Server managt ext2-Dateisysteme. Er tut das Gleiche wie ext2fs.static mit dem einzigen Unterschied, dass ext2fs.static ein statisch gelinktes Programm ist.

Die Ausführung von "/hurd/ext2fs --help" ergibt:

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.

Der fifo-Server - "fifo"

Der fifo-Übersetzer implementiert Pipes.

Die Ausführung von "/hurd/fifo --help" ergibt:

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.

Der Firmlink-Server - "firmlink"

Ein Übersetzer für Firmlinks.

Die Ausführung von "/hurd/firmlink --help" ergibt:

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.

Der ftp-Dateisystem-Server - "ftpfs"

Ein Server für ftp-Dateisysteme.

Die Ausführung von "/hurd/ftpfs --help" ergibt:

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.

Der fwd-Server - "fwd"

Wenn auf ihn zugegriffen wird, leitet der fwd-Übersetzer Anfragen an andere Server weiter. Er wird im fifo- und symlink-Server benutzt. Dies soll verhindern, dass es zu viele Server für solch trivialen Dinge gibt; fwd wird benutzt, um zu koordinieren, dass ein Server verschiedene Knoten bequem verwalten kann.

Die Ausführung von "/hurd/fwd --help" ergibt:

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

Der hostmux-Server - "hostmux"

Ich habe keine Ahnung, wofür der gut ist. (Ein Server für host lookups?)

Die Ausführung von "/hurd/hostmux --help" ergibt:

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.

Der ifsock-Server - "ifsock"

ifsock behandelt S_IFSOCK-Dateisystem-Knoten für Dateisysteme, die dies nicht selbst tun; er dient dabei als Einhängepunkt, an den Unix-Domain-Sockets angehängt werden können. pfinet und oflocal implementieren die Socket-API. (Thomas Bushnell, 10 Oct 1996)

Die Ausführung von "/hurd/ifsock --help" ergibt:

/hurd/ifsock: Must be started as a translator

Der Initialisierungsserver - "init"

Ein Server für System-Boot-Prozeduren und grundlegende Konfigurationen zur Laufzeit.

Die Ausführung von "/hurd/init --help" ergibt:

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.

Der ISO-Dateisystem-Server - "isofs"

Ein Server für ISO-artige Dateisysteme, am häufigsten benutzt für CDs.

Die Ausführung von "/hurd/isofs --help" ergibt:

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.

Der magic-Server - "magic"

Ein Übersetzer, der das magische Wiederholungsergebnis MAGIC zurückgibt. Normale Endanwender müssen wahrscheinlich nicht viel darüber wissen, weil er zum Beispiel benutzt wird, um die Terminal-I/O zu vereinfachen. Programmierer können vielleicht von den folgenden Informationen profitieren, die von Thomas Bushnell kommen:

Der Schlüssel hier ist zu wissen, was ein "magisches Wiederholungsergebnis" ist. Was man machen muss, ist, auf den dir_lookup-RPC zu schauen, der in <hurd/fs.defs> und <hurd/hurd_types.defs> dokumentiert ist.
Magische Suchergebnisse sind normalerweise für Fälle, in denen die Suche Informationen über den aufrufenden Prozess braucht, die nicht beim normalen Suchaufruf übergeben werden. Diese "Rückgriffe auf den Status des Aufrufenden" müssen alle speziell in der C-Bibliothek implementiert werden (siehe libc/hurd/hurdlookup.c) und müssen alle bekannten Fälle abdecken, um die gleiche Funktionalität wie viele andere Systeme zu bieten.

Er erklärte auch ein bestimmtes Verhalten, dass normale Benutzer meist verwirrt, wenn Sie es zum ersten Mal bemerken:

Die Unfähigkeit, "ls /dev/fd" ausführen zu können, besteht, weil der Übersetzer nicht weiß, welche Dateideskriptoren Sie offen haben, deshalb kann er auch nicht feststellen, welche existieren. Das Verhalten ist aber das gleiche wie auf anderen Systemen.

Die Ausführung von "/hurd/magic --help" ergibt:

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.

Der new-fifo-Server - "new-fifo"

Ein alternativer Server für benannte Pipes.

Die Ausführung von "/hurd/new-fifo --help" ergibt:

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.

Der Netzwerk-Dateisystem-Server - "nfs"

Netzwerk-Dateisystemunterstützung für Suns Network File System (NFS).

Die Ausführung von "/hurd/nfs --help" ergibt:

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.

Der Ausguss - "null"

Ein Server für viel freien Platz und unzählbare Anzahl von Nullen, implementiert /dev/null und /dev/zero.

Die Ausführung von "/hurd/null --help" ergibt:

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.

Der TCP/IP-Server - "pfinet"

Ein Server für TCP/IP, der die (IPv4) PF_INET-Protokollfamilie implementiert. Der Server, der die IPv6 Protokollfamilie implementieren wird, wird pfinet6 heißen.

Ihn zu konfigurieren ist nicht schwer. Er ist immer in /servers/socket/2 zu platzieren, weil dort glibc nach ihm sucht. Installieren Sie ihn deshalb auf jeden Fall wie folgt: settrans /servers/socket/2 /hurd/pfinet --interface=eth0 OPTIONEN, wobei OPTIONEN ihre IP-Adresse, Netzmaske und den Gateway (wenn existent) angeben. Derzeit wird nur eine Netzwerkschnittstelle unterstützt. Später sollen Sie alle anderen Schnittstellen wie eth1 mit dem gleichen Kommando konfigurieren können.

Wenn Sie keine Netzwerkkarte haben, sollten Sie mindestens die Loopback-Schnittstelle installieren, damit localhost als Adresse funktioniert (wichtig für Drucker-Spooling und anderes). Benutzen Sie dazu das obige Kommando, aber ohne Angabe einer Schnittstelle oder irgendwelcher OPTIONEN. Ein einfaches settrans /servers/socket/1 /hurd/pfinet reicht aus.

Die Ausführung von "/hurd/pfinet --help" ergibt:

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.

Der pflocal-Server - "pflocal"

Implementiert UNIX-Domain-Sockets. Wird z.B. für Pipes benötigt.

Die Ausführung von "/hurd/pflocal --help" ergibt:

Usage: /hurd/pflocal

Der Prozess-Server - "proc"

Der proc-Server weist PIDs und Prozessstrukturen an Prozesse zu und managt den ganzen Prozesslevel-Kram wie wait, Teile von fork, C-Bibliotheksunterstützung.

Die Ausführung von "/hurd/proc --help" ergibt:

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.

Der Speicherübersetzer - "storeio"

Ein Übersetzer für Laufwerke und andere Lagerplätze.

Die Ausführung von "/hurd/storeio --help" ergibt:

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.

Der Server für symbolische Links - "symlink"

Ein Server für symbolische Links für Dateisysteme, die selbst keine unterstützen.

Die Ausführung von "/hurd/symlink --help" ergibt:

?
(There has not been any output? Strange...)

The terminal server - "term"

Implementiert ein POSIX-Terminal.

Die Ausführung von "/hurd/term --help" ergibt:

Usage: term ttyname type arg

Der ufs-Server - "ufs"

Ein Server für ufs-artige Dateisysteme. Er arbeitet wie ufs.static, nur dass ufs.static ein statisch gelinktes Programm ist.

Die Ausführung von "/hurd/ufs --help" ergibt:

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.

Der usermux-Übersetzer - "usermux"

Ein Übersetzer, um benutzerspezifische Übersetzer auszurufen.

Die Ausführung von "/hurd/usermux --help" ergibt:

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.