Uma olhada no MINIX 3.1.4

Por: Julio Cesar Bessa Monqueiro

A Look at MINIX (version 3.1.4)
Autor original: Jesse Smith
Publicado originalmente no:
distrowatch.com
Tradução: Roberto Bechtlufft

logo

Acho que foi Paul Gauguin quem fez estas famosas perguntas: “De onde viemos? O que somos? Para onde vamos?” (D’où venons nous? Que sommes-nous? Où allons-nous?) Embora talvez seja impossível afirmar com certeza, eu acho que ele estava expressando a ideia de que não temos como saber o que somos e para onde vamos sem saber de onde viemos. Com isso em mente, decidi dar uma olhada no MINIX, o sistema operacional que ajudou a inspirar a criação do Linux.

Tradicionalmente, o MINIX tem se apresentado como um sistema operacional com enfoque no aprendizado. Tanto a versão 1 quanto a versão 2 do MINIX foram desenvolvidas para ajudar estudantes a aprenderem sobre sistemas operacionais. O código por trás do MINIX era pequeno e claro, fazendo dele uma prática ferramenta de estudo em um campo tão complexo. A versão mais recente, o MINIX 3, tenta manter os princípios das versões anteriores, mas também tenta ser mais prático, como um sistema operacional moderno nos moldes do UNIX.

O site do MINIX é um exemplo de documentação clara e fácil de ler. O site cobre boa parte da história do projeto, os objetivos de desenvolvimento atuais e os benefícios do design do MINIX. O ponto mais interessante do design talvez seja o fato dos drivers de hardware do MINIX serem executados como processos de usuário. Isso significa que se um driver cair, o kernel não fica instável. Em vez disso, o kernel simplesmente reinicia o driver que falhou e continua como se nada tivesse acontecido. Isso meio que dá ao MINIX uma capacidade de autorregeneração. O site também traz bastante informação sobre a instalação e o uso do sistema operacional, incluindo o particionamento de disco, a inicialização múltipla e a configuração de contas de usuário.

O projeto MINIX lançou em novembro de 2009 sua versão mais recente, a 3.1.5, mas esta análise cobre a versão 3.1.4 de julho de 2009, que era a versão estável mais nova quando o artigo foi escrito. A imagem de instalação que eu baixei do site do projeto coube em um único CD, tendo por volta de 550 MB. Depois de gravar a imagem no CD, comecei minha odisseia. Coloquei o CD no drive do computador, com CPU de 2,5 GHz e 2 GB de RAM, e reiniciei.

O MINIX roda a partir do live CD, levando a um console de texto com uma breve explicação sobre como instalar o sistema operacional na máquina local. Este artigo não é um tutorial. Espera-se que o leitor tenha alguma experiência com sistemas operacionais nos moldes do UNIX, e que saiba o que está fazendo. Fiz login como root (não há senha no live CD) e executei o instalador.

O instalador é baseado em texto, e consegue ser amigável e sucinto ao mesmo tempo. As opções são bem explicadas e as coisas são suficientemente fáceis, se levarmos em conta que se trata de um instalador em modo texto. Para demonstrar o que eu quero dizer, não há como voltar atrás e mudar alguma coisa; é preciso matar o instalador e fazer tudo de novo. Sem falar em mensagens “úteis” como esta que eu recebi, com direito a erro de digitação e tudo, durante o reparticionamento: “Confirme a exclusão da região 0, acarretando na perda de todos os dados contidos nela. Você disco não é atualizado na mesma hora, mas ainda. Deseja continuar?”

MINIX 3 – instalação concluída com êxito.

O instalador oferece boas opções como padrão, e concluí o projeto sem problemas logo de primeira. Depois de reiniciado o computador, o sistema me perguntou onde o MINIX estava instalado. O local fica memorizado para as próximas inicializações. Cheguei a um prompt de comandos e recebi instruções sobre como adicionar novos pacotes ao sistema usando um programa chamado “Packman”.

Assim como o instalador, o Packman é baseado em texto, é econômico nas palavras e fácil de usar para quem já está familiarizado com a linha de comando. Há 118 pacotes para você escolher no CD, e a maioria também pode ser encontrada em distribuições Linux modernas. Esses pacotes incluem utilitários do sistema, um ambiente de desktop, compiladores, programas multimídia, emuladores e jogos. Para começar, eu instalei o pacote X11 para habilitar o desktop gráfico. O Packman não pega pacotes apenas do CD; ele também tenta baixá-los (com opção para baixar também o código fonte) de um repositório remoto. A minha única reclamação é ele não ter um indicador de progresso. O sistema fica lá parado esperando o pacote ser instalado sem dizer nada. Ao baixar pacotes grandes, como o X11, é preciso ter muita paciência, especialmente ao instalar pela rede.

MINIX 3 – usando o Packman para instalar software.

Brinquei um pouco com o Packman, mas ainda não tenho certeza se o MINIX oferece atualizações de segurança. Um desenvolvedor do MINIX me disse que os pacotes do repositório podem ser atualizados. Mas se eles são mesmo atualizados, ou a frequência com que isso ocorre, é algo aberto a especulações. Não parece haver uma fora de conferir se foram incluídos pacotes novos, a não ser verificando manualmente os números de versão e comparando-os aos dos pacotes já instalados. O Packman ainda não conta com o recurso de comparação de números de versão.

Após a instalação do pacote do X11, tentei abrir o desktop e tive um problema interessante. O sistema gráfico do X rodou, mas sem nenhum ambiente de desktop. Os leitores que usaram o Linux na década de 90 devem entender o que eu quero dizer quando digo que a parte gráfica funcionava mas que não havia desktop. Só havia um fundo cinza e o ponteiro grande e preto do mouse em forma de “X”. Eu logo percebi o meu engano, e voltei ao Packman para instalar o desktop JWM. Infelizmente, depois de instalar o JWM e editar manualmente os arquivos de configuração relevantes, não consegui ir adiante. O X ficava travando toda hora, e acabei desistindo e partindo para a exploração do poder da linha de comando do MINIX.

Na linha de comando UNIX é que o MINIX, embora talvez não brilhe, se torna mais familiar. Há algumas pequenas diferenças entre os comandos do MINIX e seus equivalentes no Linux ou no BSD. O básico não mudou, e você deve estar familiarizado com a maioria dos comandos. E felizmente, as habituais “man pages” estão incluídas para servir como referência. Foi fácil instalar vários itens comuns em sistemas UNIX, como um servidor SSH, contas de usuário e o compilador C. Todos esses procedimentos são cobertos pela documentação no site do MINIX, para os que não estão acostumados a configurar um sistema operacional UNIX pela linha de comando.

MINIX 3 – testando o compilador C.

O MINIX vem com o grupo de ferramentas de rede de linha de comando de costume, incluindo o navegador web Lynx e clientes FTP, telnet e SSH. Não há serviços de rede habilitados por padrão, o que ajuda a manter o MINIX seguro enquanto o sistema é configurado. Depois de tudo instalado, como fazer para tornar seguros os serviços que você vai rodar? Até onde eu sei, o MINIX não vem com firewall, ao menos não na forma como os usuários do Linux ou do BSD o reconheceriam. Não há iptables, por exemplo, nem arquivos allow e deny na pasta /etc. O melhor que eu consegui arranjar foi uma dica no fórum do MINIX para criar um arquivo chamado /etc/serv.access, no qual devem ser colocadas as regras de acesso remoto.

Durante a preparação deste artigo, não pude usar a maior parte do meu hardware nos testes. Pelo que eu vi, o MINIX não tem suporte a USB. Ou seja, minha impressora virou apenas peso para papel. Esse problema também deixa de fora muitos teclados e mouses modernos. Minha placa de vídeo foi detectada corretamente, e funcionou bem durante o curto período que eu passei usando o ambiente gráfico. Não consegui tirar som algum dos alto-falantes usando o MINIX, mas ouvi dizer que outras pessoas conseguiram rodar o MPlayer. Minha placa de rede foi detectada e habilitada corretamente durante cada inicialização. Para tentar contornar a falta de suporte a USB e tirar algumas fotos, instalei o MINIX em um ambiente virtual. O sistema operacional funcionou bem no VirtualBox, e consegui usar meu mouse USB.

Uma coisa do MINIX que me surpreendeu foi que o instalador do sistema não cria uma partição swap para você (talvez até crie no modo avançado, mas eu escolhi as opções padrão na maioria das vezes). O swap precisa ser adicionado manualmente depois, caso o administrador esteja preocupado com a falta de RAM. E também não parece haver nenhum aplicativo que mostre a quantidade de memória que o sistema está usando. Um post em um fórum menciona que o aplicativo está sendo desenvolvido, e que será incluído no Summer of Code deste ano.

A velocidade (ou melhor, a falta dela) foi motivo de preocupação por diversas vezes. Quando fiz a instalação no disco rígido do meu computador com CPU de 2,5 GHz, o sistema levou trinta segundos para chegar ao prompt de login. Tenha em mente que o prompt de login é de linha de comando, e não gráfico. Não é dos mais rápidos, não é mesmo? A instalação de pacotes pequenos, como o Grep, levou uns dois minutos a partir do CD. Pacotes maiores, como o X11, baterem em quase vinte minutos. Suspeito que a culpa seja do Packman, que compila o software que vai instalar mas não tem indicadores que mostrem o que está acontecendo “nos bastidores”.

Mas o MINIX tem seu lado positivo. A conexão de rede mostrou-se rápida, e a maioria dos comandos funcionou com mais ou menos o mesmo desempenho que eu esperaria de um desktop estilo UNIX. O uso do espaço em disco é pequeno; uma instalação do MINIX ocupa menos de 1 GB, incluindo pacotes de compiladores, multimídia e do X11, o que permitia rodá-lo em qualquer computador do nível de um Pentium. O sistema operacional é estável, embora um pouco lento, mesmo durante a instalação de pacotes adicionais e a abertura e o encerramento do X.

Acho que não seria justo concluir esta análise sem mencionar a equipe do MINIX. Tive a oportunidade de trocar emails com alguns desenvolvedores, e eles têm um grupo pequeno mas ativo no Google Groups. Todas as nossas conversas foram agradáveis e úteis, mostrando um calmo e admirável respeito da parte da equipe de desenvolvimento. O MINIX pode não ser amigável em alguns pontos, mas esses voluntários compensam.

Sempre que testo um sistema operacional, especialmente um que não tenha muito destaque, eu me pergunto: “Onde ele poderia ser útil?” Depois de usar o MINIX por uma semana, cheguei à conclusão de que ele atende a um pequeno nicho. Ele é para pessoas que querem menos funcionalidade do que o Linux e o BSD oferecem, mas que querem continuar na mesma família. Ou, talvez, seja para aqueles que querem experimentar o uso de um microkernel. Eu acho que o MINIX vai continuar encontrando um lar em universidades, onde os alunos podem ter uma experiência bastante prática, brincando ou tentando melhorar esse pequeno e funcional sistema operacional.

Créditos a Jesse Smithdistrowatch.com
Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>

Sobre o Autor