Todos já se perguntaram sobre as diferenças
entre os constituintes da família BSD. Então leia
o seguinte artigo que dá um apanhado geral dos sistemas
operacionais FreeBSD, NetBSD e OpenBSD.
A sigla significa “Berkeley Software Distributions”,
na verdade referente ao UNIX desenvolvido pela Universidade da
Califórnia, em Berkeley. E este é originalmente
derivado do UNIX da empresa AT&T, mas devido a aspectos legais
muito do código desta empresa foi removido e substituído
por um novo código. Este novo código foi então
portado em forma de 386BSD, no qual o FreeBSD que conhecemos é
baseado.
O FreeBSD foi o primeiro da família. O NetBSD
surgiu dele, fruto de esforço direcionado a suportar uma
maior variedade de plataformas. E, curiosamente, o OpenBSD surgiu
como um ramo do NetBSD focado em segurança. A história
completa é de longe muito mais complicada e interessante.
Mas fiquemos por aqui.
Pegando o BSD:
Este artigo estará retratando as três
principais distribuições BSD (os sistemas operacionais
acima citados). Para haver consistência, decidi instalar
cada um usando o FTP, que se provou de fácil manuseio.
A parte mais difícil do processo de instalação
foi, na verdade, inserir o disquete em minha máquina de
teste, para que eu pudesse bootar do disquete para a instalação
em FTP. Havia perdido o hábito de inserir dsquetes em minhas
máquinas, então tive que escavar pelos meus boxes
a fim de encontrar um drive e um cabo de disquete antes do processo
em si iniciar. O OpenBSD demanda apenas um disco para a instalação
i386. Já, com os dois demais, são necessários
dois. Na verdade, podemos encontrar instruções completas
de instalação usando disquetes (ou outras midias)
nos respectivos sites oficiais dos sistemas.
Meu ambiente de testes era um Athlon 1-GHz, com
512 MB de RAM e um hard drive de 20-GB, e algumas poucas máquinas
Compaq equipadas com chips de Pentium 166-MHz, sem drives de CD-Rom,
e com 128 MB de RAM. Também não testei nenhuma configuração
de som ou de qualquer periférico, como câmeras USB.
Realizei apenas instalações básicas, como
se fosse usá-las para uso convencional. E felizmente não
tive problemas na instalação de qualquer BSD nelas.
A suposta dificuldade é grandemente exagerada, ao menos
em minha opinião. Você vai querer realizar um RTFM*
antes de tentar qualquer coisa com os BSDs, mas isso não
quer dizer, necessariamente, que as instalações
e futuras manutenções são de extrema dificuldade.
É verdade que muito pouco é feito automaticamente
durante o processo. Entretanto, cada um dos instaladores reconheceu
minhas interfaces de rede sem problemas. E isso torna a instalação
muito fácil.
Neste teste, utilizei as versões 4.7 do
FreeBSD, 1.6 do NetBSD e 3.2 do OpenBSD. É importante ressaltar
que tais nomeclaturas indicam apenas o número de releases
de revisões de cada distribuição BSD, e isso
não implica que o FreeBSD, por exemplo, esteja mais adiantado
que o OpenBSD, por 4.7 ser maior que 3.2.
FreeBSD (http://www.freebsd.org):
O instalador do FreeBSD é o que oferece
o maior número de possibilidades no mundo das distribuições
BSD. Ele vai além da instalação básica
e o permite a realização de diversas configurações
do sistema. Por exemplo, ele oferece opções para
o ajuste do Xfree e para a adições de demais usuários.
Já o NetBSD e o OpenBSD deixam isso para depois do processo
de instalação.
Passada a instalação, testei o ports
system do FreeBSD. Este sistema operacional possui, o maior número
de pacotes de aplicações nativos disponíveis
de todos os BSDs. O número gira em torno de 4.500 pacotes,
que é um respeitável volume de software. Podemos
instalá-los e gerenciá-los usando o pkg_add e utilitários
relacionados, ou ainda usar o ports system e simplesmente rodar
o make build, make install no diretório de código
fonte do software que queremos instalar.
Dos três, o FreeBSD é provavelmente
o que possui o melhor suporte para Java. A coleção
de ports do sistema operacional inclui o Blackdown JDK, Sun’s
JDK, Kaffe, e outros software do Java. Assim, se seu negócio
é o desenvolvimento em Java, provavelmente você testará
o FreeBSD primeiro.
Comparado ao OpenBSD e ao NetBSD, o FreeBSD roda
em um modesto número de plataformas de hardware. A versão
4.7 roda em processadores Alpha e x86, e estáem desenvolvimento
para os ia64, Sparc64 e x86-64 AMD.
Um fato percebido em relação ao FreeBSD
é que o sudo não é instalado por default.
Tentei usar o sudo make build para o Bashshell e descobri que
não há nada lá. Naturalmente, isso é
fácil de remediar, pois o sudo é um dos ports disponíveis
para o FreeBSD. Entretanto, acho que o sudo deveria ser um dos
utilitários instalados por default em qualquer *nix.
Verifique a página deinformações
de segurança do FreeBSD para maiores informações
e alertas de segurança no FreeBSD.
NetBSD (http://www.netbsd.org):
O processo de instalação do NetBSD
é bastante amistoso para uma instalação text-mode.
Apenas um item escapou-me durante o processo. E foi um pequeno
detalhe no setup de rede. Como não uso DHCP em minha LAN,
precisei informar manualmente meus ajustes de rede. Isso não
é problema, exceto pelo fato de que o NetBSD ter dado a
recomendação uma netmask em hexadeximal. Felizmente,
o valor sugerido funcionou, mas valores em hexadeximal geralmente
atrapalham a maioria dos admins. Em sua maior parte, a administração
do NetBSD se dá através dos arquivos de configuração.
A instalação de softwares pode ser realizada usando
o pkg_add, que pode instalar pacotes encontrados em redes locais
ou atualizá-los usando o FTP.
O NetBSD possui uma grande coleção
de pacotes em seu Packages Collection. Tal coleção
é atualizada semanalmente (ou pelo menos é o que
diz a documentação – Na verdade, não a monitorei).
Ela pode ser recuperada em tarball gzipped, ou pelo uso do protocolo
de atualização do software, o sup (software update
protocol).
Optei pelo caminho do sup. O primeiro download
demora um certo tempo, provavelmente mais de uma hora em uma máquina
Pentium 166 (minha máquina). Entretanto, os downloads subseqüentes
são muito mais rápidos pelo fato de eles apenas
restabelecerem a diferença entre a velha e a nova informação
de pacotes. Ao invés da navegação através
da árvore de diretórios, podemos simplesmente ir
ao nível mais alto da coleção de pacotes
/usr/pkg/src) e executar o make readme. Depois disso, teremos
um arquivo chamado README.html, que poderá ser navegado
com o Mozilla ou o Lynx, ou qualquer outro browser.
O NetBSD se auto-proclama, acima de tudo, como
o sistema operacional open source que roda em uma maior variedade
de hardware que qualquer outro. A lista completa das plataformas
pode ser lida no link http://www.netbsd.org/ports. E a lista impressiona.
O NetBSD suporta qualquer coisa, desde as manjadas plataformas
x86 a algo chamado de “Brains’ mmEye Multi Media Server”
— o que quer que isso venha a ser. Em algum lugar, uma torradeira
está rodando o sistema. Tenho certeza disso.
Em outras palavras, se você possui um computador
fabricado de 1990 para cá, ele será provavelmente
capaz de rodar o NetBSD. Há um porém: muitos dos
ports do sistema são “experimentais”.
Percebi também algumas imagens de floppy,
especialmente para laptops. Não os testei, entretanto.
Se você quer fazer uso de um laptop mais antigo, usar o
NetBSD seria um ótimo caminho para isso. Pretendo fazer
esse tipo de teste logo.
Há a questão do binários de
compatibilidade. Se você não conseguir encontrar
uma versão nativa para o NetBSD, você poderá
rodar binários para outros sistemas operacionais, tornando
o software apto ao sistema. O sistema de emulação
do NetBSD suporta binários do BSDI, FreeBSD, Linux, Solaris
(apenas o x86) e de sistemas IBCS2, o que inclui o Interactive
Unix, SCO Unix e o Xenix. O NetBSD em outras plataformas pode
suportar binários nativos a tal hardware. Cheque o linkhttp://www.netbsd.org/documentation/compat.html
e confira mais acerca disso.
O NetBSD inicia cm um sistema muito mínimo.
Quase nada é ativado por default, o que me parece o melhor
caminho. Ele também fornece um programa de segurança
semi-automatizado, que você precisa setar os cron jobs para
a realização de parte da tarefa e funciona diariamente.
Isso é fácil o suficiente para instalação
usando o NetBSD Package Collection, mas talvez devesse ser instalado
por default.
Avisos de segurança podem ser encontrados
no link http://www.netbsd.org/Security/.
Em relação a necessidades básicas
de sistema, em um hardware Intel, a configuração
mínima exigida para a instalação de um sistema
operacional NetBSD é 4 MB de RAM e cerca de 40 MB de espaço
no disco, de acordo com a documentação oficial do
sistema. São recomensados, no entanto, 8 MB de RAM e 200
MB de espaço.
OpenBSD (http://www.openbsd.org):
O OpenBSD é a distribuição
BSD mais voltada para a questão da segurança. Sendo
segurança a sua prioridade, procure-o antes de qualquer
outro. Não que o NetBSD e o FreeBSD tenham problemas com
isso, mas com o sistema operacional OpenBSD você encontrará
a maior quantidade de informação sobre como proteger
um sistema, além da grande quantidade de ferramentas para
este intuito. Assim, se você está construindo um
firewall ou um gateway, comece seu trabalho com o OpenBSD.
Sem dúvida, o OpenBSD é o menos amistoso
quando falamos em instalação de BSDs. Não
é bastante difícil, mas o particionamento não
é nem um pouco intuitivo. Uma vez que você tenha
ultrapassado esta barreira, a navegação será
tranqüila. Depois da instalação, o usuário
administrador recebe um email direcionando-o a página de
manual “afterboot”. Descobri que ali muitas de minhas
perguntas seriam respondidas.
Uma característica do OpenBSD que achei
particularmente interessante foi o editor mg- basicamente, um
editor compatível com Emacs, mas desprovido de muitas funções
(o que pode ser bom para pessoas que não estão preparadas
para lidar com algo novo, ou para aqueles que preferem o Emacs,
mas necessitam de um editor mais leve). Na verdade, você
também pode encontrar o mg na coleção de
ports do FreeBSD também.
Uma das coisas que gostei no OpenBSD foi seu calor
amistoso. Quando você digita errado uma simples senha usando
o sudo, surge a mensagem: “Errado, enganador ralé”
(“Wrong, cheating scum!”).
Assim como o FreeBSD, o OpenBSD usa o sistema de
ports. Na verdade, ele o tomou emprestado do próprio FreeBSD.
Similarmente, o sistema funciona pela execução do
comando make build e make install como administrador, ou usando
sudo, no diretório do programa desejado. Vale considerar
que o software disponível no sistema de ports não
atravessa o mesmo caminho extenso de teste de segurança
que um software incorporado na distribuição principal.
O OpenBSD oferece compatibilidade binária
para 11 plataformas diferentes, mas nem todas i386. Se você
procura por suporte a um software Unix mais antigo em uma das
plataformas hardware suportadas pelo OpenBSD, você será
capaz de rodar binários no OpenBSD e livrar-se de Unixes
proprietários.
Outra interessante habilidade do OpenBSD é
o conceito de senhas one-time, comS/Key. Em termos de segurança,
este artificío é muito interessante, pois lhe permite
logar remotamente usando um método mais seguro.
Outros BSDs:
Há, pelo menos, mais três sistemas
operacionais BSDs que não foram testados para esta reunião.
OWind River’s BSD/OS é um deles. Ele é uma
versão comercial do 4.4BSD e do 386BSD, não estando
disponível gratuitamente.
Há também oDarwin, o coração
do Apple OS X.
Outro é oPicoBSD, uma versão do FreeBSD
que cabe em um disquete. Não o cobri por achá-lo
pouco interessante no momento, já que parece que está
um tanto estagnado. Em sua página oficial, o último
update data de 1998.
Escolhendo o BSD:
De início, devo informar que nada tenho
de ruim a falar sobre estes sistemas operacionais. Em muitos casos,
os argumentos sobre qual é o melhor que o outro em determinados
aspectos são similares a argumentos religiosos. Em muitos
casos, a escolha do sistema operacional é semelhante à
escolha de roupas íntimas – é um decisão
bastante pessoal – e o que lhe traz conforto não necessariamente
age da mesma forma para outra pessoa. No entanto, há alguns
casos em que um BSD é visivelmente mais apropriado que
outro.
Por exemplo, o NetBSD suporta uma maior variedade
de arquiteturas do que o FreeBSD ou o OpenBSD. Portanto, se você
quer rodar um Unix em um PDA StrongARM, sua escolha se limitará
a ele (ou então você terá que trabalhar duro
para portar um dos demais para tal plataforma).
Caso você tenha uma máquina x86 SMP
e queira usar um sistema operacional BSD, você escolherá
o FreeBSD, pois é o único, até o momento,
possui suporte SMP. O FreeBSD possui também o maior suporte
comercial e possui a maior coleção de pacotes e
ports de todos os BSDs.
Na perspectiva de um usuário convencional,
não há grandes diferenças entre os sistemas
BSD. Como um administrador, há algumas características
peculiares de cada um deles que podem ser preponderantes para
sua decisão. Devo mencionar também que achei a documentação
de cada um deles excelente e não recomendo que se faça
perguntas a mailing lists sem que se esteja RTFM-zado.
Aconselho a todos que usam o BSD a ajudá-los
no suporte de seus projetos. Seja comprando algum produto, ou
fazendo alguma doação, ou mesmo contribuindo de
algum modo no desenvolvimento em si, a participação
do usuário é fundamental para a família BSD.
Por poder adquirí-los gratuitamente, isso não significa
que não há a necessidade de ajuda aos projetos.
Muito pelo contrário.
Felizmente, você pode fazer um test drive
antes de se comprometer. Recomendo o teste de cada BSD antes da
escolha final. Dê a você um dia para ler a documentação.
Você não terá problemas de instalá-los,
qualquer que seja sua decisão, em uma tarde. A instalação
FTP é um excelente modo para tal, ainda mais se você
possui uma conexão em banda larga (afinal, seria um tanto
tediosa a espera numa conexão de 56Kbps). Eu tive que “roubar”,
afinal possuo umas máquinas sobrando que nada faziam –
e eu ainda as terei por algum tempo.