[Top] | [Contents] | [Index] | [ ? ] |
Este documento quer proporcionar um guía simples e de fácil compreenção sobre como instalar o Hurd, com um mínimo esforço.
1. Visão Geral Para onde vamos 2. Mãos a Obra e Buscando o Home Buscando um Home 3. O Carregador de sistemas Obtendo o Grub 4. Instalação Cruzada(Cross Install) Instalação desde outro sistema(CROSS INSTALLING) 5. Iniciando o Hurd 6. Instalação Nativa Terminando a instalação 7. Configurações Fazendo o sistema utilizável 8. Palavras Finais O PUF(Preguntas de uso frequente) 9. Trabalhos Citados Matériais referêntes
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A Distribuíção Debian GNU/Hurd, ao contrário das outras distribuições de sistemas operacionais, Não tem um programa de instalação bonito. Algum dia terá, inclusive você pode ajudar a desenvolvelo e a programa-lo. Todávia, enquanto isso, para instalar o sistema GNU/Hurd, necessitará instalar o sistema base desde outro sistema operacional, mas específicamente um sistema compativel com Unix. Temos notícia de instalações com éxito do Hurd desde diferentes versão de sistemas GNU/Linux e de BSDs. Desde outro sistema não haveria problema, sempre que sejá compativel com o Unix. Atualmente a única distribução existente de Hurd está baseada em Debian, por isso, uma instalação cruzada(CROSS INSTALLING) desde uma distribução GNU/Linux pode simplificar muito a vida.
A instalação do Hurd emprega um script que se encarrega do trabalho pesado. Entre sua execução e a leitura deste guía a maioría de nosso tempo passaremos descarregando arquivos. Todávia, antes de executar esses scripts, necessitamos preparar o sistema. Isto incluí criar uma partição para o Hurd e instalar o carregador de sistema(The boot loader): Grub, (GRAND UNIFIED BOOT LOADER) o grande carregador unificado de sistema.
Este guía trata de fazer o processo de instalar o Hurd o mais simples possível. Sem erros, seguramente serão do autor. Por favor, envíar junto com outras sugestões e críticas, aceitaremos amavelmente.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Este pode ser o passo mais longo para aqueles que não tem uma partição disponível ou um disco extra. Nesse caso necessitaremos reparticionar o disco . Uma solução é usar o Parted, o editor de partições da GNU. é capaz, não só de editar partições de forma básica, além de cria-lás e edita-lás. Pode baixar o programa desde http://www.gnu.org/software/parted. O manual é bastante completo, e incluí vários tutoriais.
O Hurd suporta tamanhos de partições de até um giga(1G). As partições maiores que este tamanho não funcionará. Está limitação é a causa de uma decisão traçada a vários anos atrás, devido a qual o servidor do sistema de arquivos mapeia a partição inteira na memória virtual. Como na arquitetura ia32 só dispomos de 4 gigabytes de memória virtual, dos quais, únicamente 2 gigas estão disponiveis para a aplicação, e desta porção significativa está reservada para o código, a pilha e o heap, ao final a parte de memoria virtual continua sossegados, generalmente de um gigabyte. Se planejar já eliminar está limitação. Todávia, outras tarefas tem uma maior prioridade por hora.
Teóricamente, uma partição de um giga é mais que suficiente para um sistema utilizável. Muita gente prefere ter, ao menos duas partições: uma para a partição de root e a outra, para a partição de home. Está estrutura é muito aconselhável para desenvolvedores interessados em debugar os servidores do Hurd.
O Hurd abrange várias extensões ao formato de arquivo ext2fs, como
podem ser os tradutores(translators) passivos, e um quarto triplo de
permisões para o usuário desconhecido. Para sacar o máximo partido
destas características, o dono da partição deve ser
posto a Hurd
. O comando mke2fs
, a não ser que se
especifique na linha de comandos, se pode como dono por defeito ao
sistema operativo que estamos executando. O Hurd respeitará o dono que
tenha o sistema de arquivos, assim que devemos ser cuidadosos e por
o valor correto, ou o Hurd pode falhar de maneiras imprevistas.
Tenha em conta, que embora um sistema de arquivos tenha como dono um
sistema operacional concreto, os outros sistemas podem fazer uso desses
sistema de arquivos, embora algumas extensões não estarem disponíveis.
Para criar um sistema de arquivos usaremos mke2fs
e passaremos
`-o hurd' para designar o hurd como dono do sistema de arquivos
recém criado. Por exemplo:
# mke2fs -o hurd /dev/DEVICE |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Ao contrário do GNU/Linux e dos BSDs, o Hurd não tem seu próprio carregador de sistemas. Qualquer um que cumpra com o estandar multiboot pode ser usado para iniciar o Hurd. De momento, só há um projeto que satisfaz estes requisitos: Grub, o Grand Unified Boot Loader.
Umas palavras sobre Grub: Grub é muito potente, ao contrário dos carregadores de sistemas tradicionais nos x86, como é o caso do LILO. Tem um intérpretador de comandos, admite parámetros para o sistema, um terminal ligeiro, e uma coletor de características. Ainda mais pode iniciar muitos sistemas operativos. Se alguma vez a iniciado um alpha ou um sparc, você entenderá o que o Grub é capaz de fazer. todávia , não assuste: Grub é melhor. Você gostará. Depois não usará outro.
Para obter o Grub, visitar ftp://alpha.gnu.org/gnu/grub. Encontrará
um targz e uma imagem de disquete. Você descompacta targz, instala com
os configure
, make
, e make install
de sempre.
Incluí também um manual maravilhoso completo de manejo do
Grub. Leia . Se, pelo contrário, prefirá descompactar a imagem de disquete,
é suficiente, com um disquete para obter um Grub completamente
operacional:
# dd if=grub-boot-VERSION.image of=/dev/fd0 |
É o caso de quem usa o Grub no disquete, sempre estará a tempo de instalar Grub em seu disco rigido, quando a decidir convêniente.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
O seguinte passo é pegar o sistema base de: ftp://alpha.gnu.org/gnu/hurd/contrib/marcus/gnu-latest.tar.gz
O targz está preparado para extrair todo seu conteúdo no diretório
atual. Despois de montar a partição e situar-mos onde vamos
montar a partição, só necessitaremos extrair o arquivo. No
seguinte exemplo assumimos que a partição raíz está montada em
/gnu
.
# cd /gnu # tar --same-owner -xvzpf ~/gnu-latest.tar.gz |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Já está todo preparado para iniciar o Hurd pela primera vez. Despois de verificar que havemos introduzimos o disquete com o Grub no drive de disquete, reiniciamos. Se tudo correr bem, aparecerá a tela com o menu do Grub. Digite c para que apareça a linha de comandos do Grub.
O primero será selecionar o sistema de arquivo raíz. Grub usa uma
nomenclatura de partições um pouco diferente da do Linux a do
Hurd: tanto os discos IDE como os SCSI se denominam (hdN)
.
N
é o número do disco (começamos pelo Zero) na ordem em
que os detecta a BIOS. é dizer, Grub não faz distinções entre discos
IDE ou SCSI. As partições, como os discos, se começa a contar
desde zero: (hdN,N)
. Se este maré, não te preocupa, Grub vai
cuidar da nossa ajuda.
Para determinar em que sistema de arquivos reside um arquivo em particular,
podesse usar o comando find
. Quando se executa este comando,
Grub busca em cada sistema de arquivo o arquivo especificado, e mostra
na tela onde encontrado-o. Neste caso vamos buscar o kernel,
`/boot/gnumach.gz'.
grub> find /boot/gnumach.gz (hd0,0) |
Como podemos ver, Grub está indicando que `/boot/gnumach.gz' está em `(hd0,0)'. Então selecionaremos a partição raíz:
grub> root (hd0,0) Filesystem type is ext2fs, partition type 0x83 |
Agora, necessitamos carregar o GNU Mach. Além de carregar o binário, devemos especificar pelo menos a partição raíz, a qual será usada pelo próprio Hurd, pelo que deverá estar escrita em términos que o Hurd entenda.
GNU Mach nomeia os discos começando pelo zero. Os discos IDE levam o
prefixo hd
, enquanto que os SCSI levam o sd
. Igual
que Linux, os discos são numerados seguem sua posição no controlador.
Por exemplo, o primário mestre é hd0
, e o secundário escravo(slave)
é hd3
. As partições usam a convenções de notações das
fatias(slices) do BSD, e acrescentam sM
ao nome do disco para
indicar a partição a que nos referimos. Tenha conta que M
começa a contar-se desde 1, não desde zero. O número das fatias(slice)
é fácil de calcular, só tem que soma-las um ao número que usa
para o Grub.
Como o Hurd ainda não configurado, devemos inicia-lo em modo monousuário. Para isto, o único que necessitamos é acrescentar `-s' na linha de comandos do kernel.
Então, continuando com o exemplo anterior, e assumindo que o primeiro disco está como mestre do segundo controlador, teriamos:
grub> kernel /boot/gnumach.gz -s root=device:hd2s1 [Multiboot-elf, ...] |
O seguinte a fazer é carregar o servidor do sistema de arquivos e o
servidor exec
. Isto se faz usando a capacidade de carregar do
Grub. Os parámetros são a maneira mediante a qual o kernel passa
alguns parámetros importantes aos servidores.
grub> module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed ${root} $(task-create) $(task-resume) [Multiboot-module 0x1c4000, 0x2cfe6a bytes] grub> module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) [Multiboot-module 0x494000, 0x27afe bytes] |
É importante escrever cada corrente de um módulo em uma só linha. É aconselhável ainda o anterior ao arquivo de configuração do Grub `menu.lst', tão pronto como sejá possível.
Finalmente o Hurd pode ser iniciado:
grub> boot |
Sintaxe e observa os mensagens. Este é em realidade mais importante o que se podería pensar, porque a um bug em GNU Mach que provoca que se você digitar uma tecla durante o processo do sistema, você produz um kernel panic.
Se o Hurd no arranca, pode ser devido a interrupções compartidas (shared IRQs): GNU Mach não trabalha bem com as interrupções compartidas. Pode comprovar as interrupções vendo, por exemplo, o arquivo `/proc/interrupts' em GNU/Linux. Como GNU Mach não suporta os módulo carregáveis no kernel, a maioría dos drivers estão compilados no kernel que vêm por defeito. Se tem periféricos velhos isto pode supor um problema: um dispositivo pode responder mal, a um intento de prova por outro dispositivo. Compilando um novo kernel com únicamente os dispositivos requeridos, normalmente resolverá este problema. GNU Mach se cross compila fácilmente. Se está usando Debian, prova o pacote `gcc-i386-gnu'.
Se o anterior não tem ajuda, veja na lista de fontes de informação ao final deste documento. Por último, pergunta na lista de correio apropriada.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Uma vez que aparece o prompt, e sempre que o Hurd esté em modo monousuário, será necessário selecionar o tipo de terminal:
# export TERM=mach |
Tenha conta que CONTROL-C e familia não funcionam em modo monousuário.
Agora podemos executar o script native-install
. Este configurará
os pacotes e alguns tradutores importantes.
# ./native-install |
Justo antes do script termine, mandará a mensagem de que necessita ser
executado uma segunda vez. Siga as instruções para reiniciar, usando o
comando reboot
. Uma vez mais inicia em modo monousuário e executa
./native-install
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Necessitaremos configurar o tradutor pfinet para configurar a rede.
Usando o comando settrans
para associar um tradutor a
um nodo determinado do sistema de arquivos. Quando os programas acessando
o nó, para, por exemplo, mandar um RPC, o sistema operacional iniciará de
maneira transparente o servidor para levar o cabo a tarefa requerida.
# settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 \ -a a.b.c.d -g e.f.g.h -m i.j.k.l |
Passado várias opções o settrans
. as primeras dos,
`fg', obrigam finalizar qualquer tradutor preexistente.
As dos seguintes, `ap', produzem tradutor ativo e passivo
respectivamente. Isto significa que o sistema operacional inicia o
tradutor imediatamente e guarda a configuração no nó do sistema
de arquivos. O anterior também faz qualquer mensagem de erro seja
enviado a `stderr'. O seguinte argumento `/server/socket/2',
é o nó ao que associamos o tradutor. O que segue é o programa
tradutor a executar e os argumentos que se passam.
Pode obter ajuda sobre o comando settrans
se passamos
a opção `--help'. Do mesmo modo, podemos obter ajuda sobre
qualquer tradutor específico com o mesmo argumento, p. ex.:
# /hurd/pfinet --help |
Como pode produzir uma grande quantidade de dados de saída, considerá usar um páginador através de uma tubulação.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A continuação edita `/etc/fstab' para ainda a partição home e
o espaço de swap. Por defeito, nano
é o único editor instalado
na distribução base. É muy importante que se use a swap. O
Hurd será uma ordem de magnitude mais estável. Tenha conta que o Hurd
pode não só compartir transparentemente uma partição de swap com Linux
sem até mais páginar corretamente a qualquer dispositivo, incluído uma
partição sem formato(raw), ou incluso a sua partição home.
Aquí mostramos um exemplo do arquivos `/etc/fstab':
# <file system> <mount point> <type> <options> <dump> <pass> /dev/hd2s1 / ext2 rw 0 1 /dev/hd2s2 /home ext2 rw 0 2 /dev/hd2s3 none swap sw 0 0 |
Lembram de criar os dispositivos necessários com o comando MAKEDEV
.
Usa o tradutor nfs
para montar uma partição nfs. Quando é
um usuário distinto do root, o tradutor conectará, por razões obvias,
ao servidor de nfs nem porta superior ao 1024. Para fazer isto
corretamente baixo o GNU/Linux, a opção insegura deve acrescentar a
linha de export. Mostramos um exemplo de arquivo `/etc/exports':
/home 192.168.1.2(rw,insecure) |
Para montar isso num ordenador com Hurd:
# settrans -cgap /home /hurd/nfs 192.168.1.1:/home |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Finalmente, reinicia em modo multiusuário, faz da mesma maneira que em modo monousuário mas não por a opção `-s' quando carregamos o kernel. ¡Feliz Hacking!
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Para entender o Hurd, começa por sua página na web de Debian: http://www.debian.org/ports/hurd/. Depois prova a web de GNU: http://hurd.gnu.org.
Considerá também a leitura do código fonte e o escrever mais documentações
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Carregar sempre o kernel a mão pode ser muito tedioso. Considerá o editar o arquivo `/boot/grub/menu.lst' no disquete. Modifíca-los apropriadamente; arrancar o sistema será agora muito mais fácil e rápido.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Por defeito, no diretório `/dev', não se cria muitos dispositivos.
Igual a outras versões de Unix, o Hurd tem um script
MAKEDEV
. Execute para criar os dispositivos que necessitar.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Há várias maneiras para acrescentar pacotes. Descarregando e usando
dpkg
funciona, mas é tedioso. É mais fácil empregar
atp-get
ou dselect
. Edita o `/etc/apt/sources.list'
e acrescenta as duas linhas seguintes:
deb ftp://alpha.gnu.org/gnu/hurd/debian unstable main deb ftp://ftp.debian.org/debian unstable main |
ftp://alpha.gnu.org contém pacotes que tem hacks e parches que ainda não tem sido integrados no sistema. Não há espelhos(mirrors).
Para usar um espelhos(mirror) local de Debian, visita a página http://www.debian.org/distrib/ftplist.
Generalmente, executando dselect
depois da primeira
instalação, descarregar muitas conveniêntemente os pacotes restantes
do sistema base. Depois cada um pode instalar os pacotes a seu
gosto.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
# cd /dev # ./MAKEDEV kbd |
# settrans /dev/mouse /hurd/mouse --device=com0 --protocol=microsoft |
Assegura de que existe `/dev/com0'. Se não, criar mediante
MAKEDEV
da maneira habitual.
PS/2 não requer um dispositivo. É tão simples como:
# settrans /dev/mouse /hurd/mouse --protocol=ps/2 |
Para outros mouses, executa `/hurd/mouse' com opções `--help'.
xf86setup
para configurar o X, será mais fácil copiar um arquivo de configuração que funcione
de outro sistema operativo que se execute no mesmo ordenador e
coloca-los em `/etc/X11/XF86Config-4'.
Agora, trocar a seção do mouse:
Section "Pointer" Protocol "osmouse" Device "/dev/mouse" EndSection |
Emulate3Buttons
pode ser acrecentado opcionalmente. As demás
opções não funcionaram.
LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH |
startx
xterm
não funciona corretamente; prova rxvt
.
update-menu
não funciona ainda. Ainda não podemos usar os
bonitos menus do Debian.
pthreads
,
não espere que funcione gnome, de todas formas, Window Maker, TWM,
Blackbox e FVWM funcionaram.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
O Hurd não tem terminais virtuais. Em seu lugar usa o screen
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
PPP está disponivel. Instalar o pacote `um-pppd'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
"The Easy Guide to Installing Hurd on a Linux Box" Copyright (C) 1999 Matthew Vernon matthew@debian.org. http://www.pick.ucam.org/~mcv21/hurd.html
[Top] | [Contents] | [Index] | [ ? ] |
[Top] | [Contents] | [Index] | [ ? ] |
1. Visão Geral
2. Mãos a Obra e Buscando o Home
3. O Carregador de sistemas
4. Instalação Cruzada(Cross Install)
5. Iniciando o Hurd
6. Instalação Nativa
7. Configurações
8. Palavras Finais
9. Trabalhos Citados
[Top] | [Contents] | [Index] | [ ? ] |
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ < ] | Back | previous section in reading order | 1.2.2 |
[ > ] | Forward | next section in reading order | 1.2.4 |
[ << ] | FastBack | previous or up-and-previous section | 1.1 |
[ Up ] | Up | up section | 1.2 |
[ >> ] | FastForward | next or up-and-next section | 1.3 |
[Top] | Top | cover (top) of document | |
[Contents] | Contents | table of contents | |
[Index] | Index | concept index | |
[ ? ] | About | this page |