Portes ] [ Debian GNU/Hurd ] [ Novidades ] [ Configuração ] [ CDs do Hurd ] [ Documentação ] [ Desenvolvimento ] [ Contato ]

Debian GNU/Hurd

O Dirk Ritter me enviou o texto a seguir que contém a saída da opção --help de todo programa servidor do Hurd. Isto pode ser um bom ponto de partida para documentações adicionais sobre programas servidores, especialmente aqueles úteis para um(a) usuário(a), como ext2fs, ufs, isofs, ftpfs, crash, etc.

Desde então, eu atualizei o texto usando excertos de e-mail das listas de discussão do Hurd. Obrigado(a), Martin von Loewis.

Descrição preliminar da interface de usuário(a) do GNU/Hurd

Atualmente não existe quase nada, mas isso é melhor do que nada mesmo, então por favor enviem reclamações, correções e adições para Dirk Ritter, <dirk@gnumatic.s.bawue.de>. Por favor, note que minhas habilidades de programação são bem limitadas, então você não deve esperar que eu realmente entenda sobre coisas relacionadas a desenho e implementação de sistemas operacionais.

Índice de servidores e tradutores do HURD:
O servidor de autenticação "auth"
O servidor crash "crash"
O servidor exec "exec"
O servidor ext2fs "ext2fs"
O tradutor fifo "fifo"
O tradutor firmlink "firmlink"
O tradutor de sistema de arquivo ftp "ftpfs"
O servidor fwd "fwd"
O servidor hostmux "hostmux"
O servidor ifsock "ifsock"
O servidor init "init"
O servidor de arquivo de sistema iso "isofs"
O servidor magic "magic"
O servidor new-fifo "new-fifo"
O servidor nfs "nfs"
O servidor null "null"
O servidor pfinet "pfinet"
O servidor pflocal "pflocal"
O servidor de processo "proc"
O tradutor de armazenamento "storeio"
O tradutor de link simbólico "symlink"
O servidor de terminal "term"
O servidor ufs "ufs"
O servidor usermux "usermux"

O servidor de autenticação - "auth"

Passa credenciais quando dois servidores mutuamente não confiáveis se comunicam. De certo modo, cada servidor auth estabelece um domínio de confiança. (Martin von Loewis, 10 de outubro de 1996)

Uma de suas funcionalidades interessantes é que ele torna possível que processos personifiquem diversas identidades ao mesmo tempo, e também que dinamicamente adquiram ou renunciem a identidades.

Executar "/hurd/auth --help" exibe:

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.

O servidor crash - "crash"

O servidor crash fica ativo sempre que uma tarefa recebe um sinal de erro fatal, por exemplo porque limites de memória foram violados (falha de segmentação). O servidor crash tem três modos de operação: suspender o grupo do processo (pgrp) da tarefa transgressora, terminá-la ou descarregar um arquivo central. Este último ainda não está implementado. Pense no servidor crash como um airbag.

Você pode definir o modo de operação com settrans, claro, mas também com fsysopts durante a execução. Isto é verdade para todo o sistema padrão e geralmente requer privilégios de root. Um(a) usuário(a) pode selecionar um padrão diferente com a variável de ambiente CRASHSERVER. Você define essa variável para um inode que tem um servidor crash anexado a ele. No sistema padrão do Debian GNU/Linux, essas três operações padrões têm os respectivos tradutores em /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

O servidor de execução - "exec"

O exec gerencia a criação de uma nova imagem de processo de um arquivo de imagem.

Na verdade, este servidor tem suporte para criar uma imagem de processo em execução a partir de qualquer arquivo de imagem reconhecido pela biblioteca BFD (isto inclui a.out, ELF e muitos outros). Executáveis armazenados em gzip também são reconhecidos (útil para boot em disquete).

Executar "/hurd/exec --help" exibe:

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.

O servidor de sistema de arquivo ext2 - "ext2fs"

Este servidor gerencia sistemas de arquivos do tipo ext2. Ele faz o mesmo que ext2fs.static, mas o ext2fs.static é um executável vinculado estaticamente.

Executar "/hurd/ext2fs --help" exibe:

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.

O servidor fifo - "fifo"

O tradutor fifo implementa pipes nomeados.

Executar "/hurd/fifo --help" exibe:

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.

O servidor firmlink - "firmlink"

Um tradutor para firmlinks.

Executar "/hurd/firmlink --help" exibe:

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.

O servidor de sistema de arquivo ftp - "ftpfs"

Um servidor para sistemas de arquivo ftp.

Executar "/hurd/ftpfs --help" exibe:

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.

O servidor fwd - "fwd"

Quando acessado, o tradutor fwd encaminha requisições para outro servidor. Ele é usado nos servidores fifo e symlink. A ideia é que você não tenha um zilhão de servidores para coisas triviais; o fwd é usado para coordenar a presença de um servidor que lida convenientemente com muitos e diferentes nodes.

Executar "/hurd/fwd --help" exibe:

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

O servidor hostmux - "hostmux"

Eu não faço ideia do que faz esse servidor. (Um servidor para procura de hosts?)

Executar "/hurd/hostmux --help" exibe:

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.

O servidor ifsock - "ifsock"

O ifsock somente lida com nodes de sistema de arquivo S_IFSOCK para sistemas de arquivo que não fazem isso por si mesmos, agindo como um hook sobre o qual pendurar endereços de socket de domínio Unix. pfinet e pflocal implementam o socket API. (Thomas Bushnell, 10 de outubro de 1996)

Executar "/hurd/ifsock --help" exibe:

/hurd/ifsock: Must be started as a translator

O servidor de inicialização - "init"

Um servidor para procedimentos de boot de sistema e para configurações básicas em tempo de execução.

Executar "/hurd/init --help" exibe:

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.

O servidor de sistema de arquivo iso - "isofs"

Um servidor para sistemas de arquivo do tipo iso, normalmente usados para CDs.

Executar "/hurd/isofs --help" exibe:

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.

O servidor magic - "magic"

Um tradutor que retorna o resultado MAGIC da nova tentativa de magic. Usuários(as) finais normais provavelmente não precisam saber muito sobre ele, já que é usado, por exemplo, para facilitar entrada/saída do terminal. Programadores(as) podem se beneficiar das seguintes informações que Thomas Bushnell forneceu:

A questão aqui é saber o que é um "magic retry result". O que deve ser feito é examinar o dir_lookup RPC documentado em <hurd/fs.defs> e <hurd/hurd_types.defs>.
Os resultados de pesquisa do magic basicamente são para casos onde a busca precisa de informação que é parte do estado de chamada do processo, e não é parte do procedimento normal de busca por nome. Essas "pinçadas no estado da chamada" têm que ser implementadas especialmente na biblioteca C (veja libc/hurd/hurdlookup.c) e têm que cobrir os casos conhecidos para fornecer a funcionalidade que muitos outros sistemas oferecem.

Ele gentilmente também explicou um comportamento particular que geralmente confunde os(as) usuários(as) finais normais quando se deparam pela primeira vez com ele:

A incapacidade para fazer "ls /dev/fd" ocorre porque o tradutor não sabe quais descritores de arquivo você tem que abrir, então ele não pode te dizer qual existe. Mas o comportamento dele é exatamente como em outros sistemas.

Executar "/hurd/magic --help" exibe:

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.

O servidor new-fifo - "new-fifo"

Servidor alternativo para pipes nomeados.

Executar "/hurd/new-fifo --help" exibe:

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.

O servidor de sistema de arquivo de rede - "nfs"

Suporte ao sistema de arquivo de rede para o sistema de arquivo de rede da Sun.

Executar "/hurd/nfs --help" exibe:

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.

O saco sem fundo - "null"

Um servidor com muito espaço livre e inumeráveis zeros, que implementa /dev/null e /dev/zero.

Executar "/hurd/null --help" exibe:

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.

O servidor de TCP/IP - "pfinet"

Um servidor para TCP/IP que implementa a família de protocolo PF_INET (IPv4). O servidor que implementará a família de protocolo IPv6 será chamado pfinet6 no atual esquema.

Configurá-lo não é nada difícil. Ele é sempre colocado em /servers/socket/2, porque lá é onde o glibc o procura. Certifique-se de instalá-lo desta maneira: settrans /servers/socket/2 /hurd/pfinet -6 /servers/socket/26 --interface=/dev/eth0 OPÇÕES e settrans /servers/socket/26 /hurd/pfinet -4 /servers/socket/2 --interface=/dev/eth0 OPÇÕES, onde OPÇÕES especifica seu endereço IP, máscara de rede e gateway (se houver). Somente uma interface de rede é suportada atualmente. Posteriormente, você também pode definir interfaces adicionais como eth1 e outras, com o mesmo comando.

Se você não tem uma placa de rede, você deve ao menos instalar uma interface loopback de modo que localhost funcione (importante para enfileiramento de impressão e outras coisas úteis). Faça isso com o comando acima, mas não especifique qualquer interface ou OPÇÕES. Um simples settrans /servers/socket/1/hurd/pfinet resolve.

Executar "/hurd/pfinet --help" exibe:

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.

O servidor pflocal - "pflocal"

Implementa sockets de domínio UNIX. Necessário para pipes, por exemplo.

Executar "/hurd/pflocal --help" exibe:

Usage: /hurd/pflocal

O servidor de processo - "proc"

O servidor proc atribui PIDs e estruturas de processo para tarefas, e gerencia tudo no nível de processo como wait, bits de fork, suporte à biblioteca C.

Executar "/hurd/proc --help" exibe:

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.

O tradutor de armazenamento - "storeio"

Um tradutor para dispositivos e outros armazenamentos.

Executar "/hurd/storeio --help" exibe:

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.

O servidor de link simbólico - "symlink"

Um servidor para links simbólicos para sistemas de arquivo que não têm esse suporte.

Executar "/hurd/symlink --help" exibe:

?
(Não houve nenhuma saída? Estranho...)

O servidor de terminal - "term"

Implementa um terminal POSIX.

Executar "/hurd/term --help" exibe:

Usage: term ttyname type arg

O servidor ufs - "ufs"

Um servidor para sistemas de arquivo do tipo ufs. Ele faz o mesmo que ufs.static, só que ufs.static é um executável vinculado estaticamente.

Executar "/hurd/ufs --help" exibe:

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.

O tradutor usermux - "usermux"

Um tradutor para invocar tradutores específicos a usuários(as).

Executar "/hurd/usermux --help" exibe:

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.