domingo, 13 de novembro de 2011

HURD

Não, não se trata do Hurd da HP (aquele do escândalo sexual que está agora na Oracle), trata-se sim do mais antigo projeto de sistema free-Unix existente. O unix da própria GNU, o GNU-Hurd.

"Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu's Not Unix), and give it away free to everyone who can use it."
Richard Stallman 

Assim começava o email de Richard Stallman que anunciava, no dia 23 de setembro de 1983, o início de um projeto de criação de um sistema operacional do tipo Unix para ser distribuído e utilizado livremente, sem custo para o usuário. A proposta era criar um kernel com aplicativos para escrever e compilar programas em C, ou seja, um shell com editor, compilador e outros aplicativos típicos de um sistema Unix.

Quase 30 anos depois e me sinto instalando um minix... como pode? Começa que, para instalar do CD deve-se escolher a opção hd2 (qemu). Por que? Não bastava hd2? Afinal quero usar o VirtualBox. Depois dos testes de hardware aparece um prompt:



To login, enter 'login root'.                               
                                                                                                                        
Use 'login USER' to login, or 'help' for more information   
login> _                                                     


A primeira letra não aparece... o terminal come: 'ogin root' ... WTF! Tente de novo...

Aí o sistema pergunta se quer usar o 'install' ou o 'install2'... já imaginei, lá vem o Reboot para carregar partições... dito e feito! O 'install' é apenas para particionar o disco e preparar a instalação o kernel é monolítico e não usa a nova partição e precisa de ser recarregado. Então... reboooot! O 'install2' é a etapa de instalação depois do clássico "Reboot"... Ah Stallman, tenha dó!

Disco particionado e partição de swap criada, lá se vai o install2. Nada... parada no "validating packages..." e deu! Tentando RTFM (reading the fucking manual), mas onde está o FM? Finalmente, depois de muito esforço consegui sem ler o FM e, inexplicavelmente, a instalação passou. Isto depois de quase 3 horas de tentativas! Acho muito esforço para instalar um sistema operacional que é prometido há quase 30 anos e ainda acha que tem que ser instalado como os antigos minix, linux (slackware) ou os velhos BSDs.

Mas é para nerd mesmo, pensei, pelo menos vamos testar. Bem, nada de excepcional ou de entusiasmante... Mas vamos lá!

O microkernel 'Mach' é monolítico e inclui as funcionalidades padrão de um sistema tipo Unix mas com os serviços controlados por "objetos". Um "objeto" para o Hurd é uma interface que consiste de um programa e o estado deste programa. As principais são as interfaces fs, fsys, auth, password, exec e proc. Um sistema Hurd é composto, minimamente, pelo kernel 'Mach', um servidor de autenticação (auth), um servidor de processos (proc), um servidor de aplicativos (exec) e um servidor de senhas (password).

A interface mais interessante do Hurd é a fsys que permite a tradução de nomes ('name spaces') que pode ser referenciada dentro do próprio sistema (via mount point). Por exemplo:



$ settrans -a /home/fulano/mnt /hurd/ftpfs  \     
  fulano:passwd@site.org/~
 


Este comando cria uma instância do programa ftpfs e ligando o diretório remoto com o nó ~/mnt. Até aí nada demais... KDE e GNOME já utilizam o ftpfs de forma semelhante e de forma transparente para o usuário. Tudo bem que não é o mesmo princípio mas o resultado é o mesmo entretanto mais seguro!

Aplicativos partem do princípio da integridade de um sistema de arquivos e em um Unix normal isto faz sentido posto que todo o sistema de arquivos é parte de um processo confiável. No Hurd, onde programas podem vincular e ampliar o sistema de arquivos a coisa é outra... e bem vulnerável a ataques.

Do ponto de vista da virtualização, o Hurd ainda tem muitas limitações e, neste ponto, o 'FreeNAS' oferece muito mais por muito menos esforço e mais... gerenciável via web (com https, inclusive).

No frigir dos ovos, meu caro Stallman... o Hurd não me entusiasmou em nenhum aspecto. Mesmo esperando algo dele há quase 30 anos. Afinal, certo estava o Torvalds de pegar o sistema do Tanenbaum e fazer o que fez...

Para mais sobre o Hurd: http://walfield.org/papers/200707-walfield-critique-of-the-GNU-Hurd.pdf

Nenhum comentário:

Postar um comentário