Em um fórum ou lista de discussão, a pergunta acima geralmente inicia
“fl ame wars” em que cada lado acredita que sua opinião prevaleceu, o
que geralmente deixa um iniciante sem entender nada. Este artigo em duas partes
visa mostrar os pontos fortes e fracos de cada uma das “distribuições base”,
das quais a grande maioria das outras é derivada. Ao fi nal, o usuário pode
chegar à conclusão – mais saudável – de que vai ter de testar por si mesmo e
decidir qual a melhor, ou que pode utilizar mais de uma em vários ambientes,
já que não existe uma distribuição perfeita. Vamos analisar o Debian, Fedora,
Gentoo e Slackware. Praticamente todas as outras distribuições Linux são variações
de alguma delas. Na verdade o próprio Fedora é derivado do Red Hat;
porém, como o Red Hat está atualmente disponível apenas em versão comercial,
vamos analisar seu sucessor.
Linux, distribuições e sistemas operacionais
Mas por que existem tantas distribuições? Pelo mesmo motivo por que existem
tantas religiões, times de futebol e cervejas: depende do gosto. O que
para um usuário é importante, para outro não é. Para uns, gerenciamento
de dependências pode ser essencial, para outros não. Para alguns, compilar
facilmente toda a distribuição pode ser muito interessante, para outros pode ser
perda de tempo. E cada distribuição tem seu público-alvo. Por isso, quando ouço
que a distribuição X tinha que ter XYZ como a distribuição W, eu digo que se
fosse para ter XYZ eu usaria W. Se uso a X é porque gosto dela do jeito que é.
Querer que todas sejam iguais limitaria muito as opções de cada um.
Uma distribuição Linux é um conjunto de vários aplicativos que rodam
em cima do kernel Linux, que é a parte mais importante para o sistema funcionar.
A forma como essas distribuições organizam os softwares instalados,
como são desenvolvidas, a filosofia na qual são baseadas é o que as torna
diferentes umas das outras. O kernel, ou sistema operacional, é o software
que controla o hardware. Ele lida com a memória, o HD, as placas de vídeo
e de rede da sua máquina. É ele quem permite que seu browser envie e receba
dados através do modem ou que seu editor de textos grave dados em diferentes
partições, que podem ter sistemas de arquivos diversos.
Nas pesquisas que fiz, algumas coisas me deixaram, digamos, contrariada.
Algumas páginas insistem em conceitos distorcidos para ganhar notoriedade.
Ao contrário do que dizem, o Linux é sim o sistema operacional, o coração
do sistema. Se você quiser instalar um outro shell, compilado para Linux, que
não seja nenhum adotado pelo projeto GNU, terá um sistema rodando. O
sistema operacional em si não é nada amigável, mas você pode escrever qualquer
programa para que ele interaja de forma mais simples com o usuário. Ver
tudo, kernel, aplicativos básicos e aplicativos gerais como uma coisa só, como
um grande sistema operacional, traz de volta a mentalidade do software proprietário.
Um grande exemplo são os Windows®, que não conseguem separar
a parte operacional da interface gráfica com o usuário, considerando tudo um
grande sistema operacional. O esforço que vi em algumas páginas
para diminuir a importância do Linux, por ser “apenas o kernel”, me parece
um desserviço à comunidade. Desmerece o trabalho, inicialmente de Linus
Torvalds, e em seguida de milhares de programadores ao redor do mundo, que
contribuem com código para que você possa usar seu modem, sua placa mãe,
seu sistema de arquivos preferido, para que você implemente seu fi rewall. Essas
pessoas também contribuem nas suas horas vagas, noites e fi nais de semana,
em nome da comunidade do Software Livre. Essa comunidade preza o fato de
compartilhar o conhecimento, porém tendo algo real para compartilhar. Se
quisermos ser estritamente justos com todo esse conjunto, deveríamos chamar
o Linux de Gnu/Apache/BSD/KDE/ Mozilla/Linux. Ficar menosprezando
o trabalho de outros, dizendo que é “apenas uma pequena parte”, propaga
a idéia de que basta fi car falando sem ação. Vejo muito blá-blá-blá e pouca
ação, seja ela uma tradução, documentação, um trecho de código ou um relatório
de bugs. A comunidade não se construiu apenas com discursos. Como
diz o próprio Linus Torvalds, Talk is cheap, show me the code (Falar é fácil,
me mostre o código).

O Debian
A primeira distribuição, por ordem alfabética, é o Debian [1], que nasceu em
agosto de 1993, quando Ian Murdock criou e distribuiu a primeira versão. A
versão estável atual é o Debian 3.0, chamado de Woody, lançada em novembro
de 2003. A próxima versão, sem data prevista para lançamento, será o Sarge.
O Debian se divide em 3 versões: stable (estável), unstable (instável) e
testing (em testes). Os pacotes disponíveis para a versão stable são conhecidos
por serem quase pré-históricos. Se você quiser usar versões mais atuais, é instruído
a usar o unstable. Espera aí, mas não é instável? Sim, o próprio nome
está dizendo. E se você estiver usando o unstable e acontecer algum problema...
bom, você estava usando o unstable. Quer dizer que ou uso pacotes pré-históricos
ou uso instáveis? Pois é.
O Debian conta hoje com mais de 1000 desenvolvedores ao redor do
mundo. Uma comunidade extremamente democrática, em que as principais
decisões são colocadas em votação pelos membros. Quando a manutenção
de um pacote ou de alguma parte do sistema fica órfã, rapidamente é adotada
por outros mantenedores. Isso garante a continuidade e o suporte a todas as partes
do sistema. O líder atual é Martin Michlmayr e, se você quiser contribuir
e se tornar um desenvolvedor, provavelmente não vai encontrar muita dificuldade
ou falta do que fazer. Porém, isso resulta numa grande estrutura que se
move lentamente. Se entre duas pessoas já podem surgir confl itos e opiniões
divergentes, imagine entre mil. O Debian possui um Contrato Social
[2] que garante, entre outras coisas, que a distribuição não terá interesses
comerciais e sempre será livre, não podendo ser fechada sob uma licença
proprietária. Embora haja a preocupação em manter a distribuição o mais
livre possível, com uma separação clara entre o que é e o que não é software
livre, o projeto Debian também mantém um repositório, chamado non-free, com
pacotes de software proprietário (mas ainda assim gratuito), necessário para a
imensa maioria dos mortais que precisam trabalhar e pagar suas contas.
O Debian atualmente possui suporte a 10 arquiteturas; mais duas estão em
desenvolvimento. Pode rodar em cima do Hurd e do BSD, não sendo restrito ao
Linux. Em seu repositório encontram-se mais de 8000 pacotes pré-compilados, à
disposição do usuário. Isso é uma ferramenta e tanto quando o usuário não
tem tempo ou paciência para procurar e/ou compilar os pacotes que deseja. Os
pacotes estão disponíveis também em um conjunto de sete CDs, para quem
não conta com uma boa largura de banda. Uma boa idéia é criar um repositório
e compartilhá-lo, por exemplo, com o pessoal do trabalho. O Debian
também é pródigo em “personalizar” as aplicações. Desde o menu do WindowMaker
até a página de abertura do Mozilla, tudo foi modificado – e geralmente
carrega uma referência ao Debian e, se possível, seu logo.
O gerenciamento de pacotes do Debian é feito com as ferramentas apt e
dpkg. O apt é responsável pela procura, download, checagem de dependências
e instalação/remoção dos pacotes (na verdade, para isso ele chama o dpkg). O
dpkg fornece informações como versão, tamanho e arquivos instalados por cada
pacote, além de organizar o conjunto de pacotes do sistema (com o front-end
dselect). Os pacotes .deb, padrão do Debian, são arquivos compactados no
formato ar, compostos por um arquivo debian-binary, que informa a versão
do formato .deb usada no pacote, um arquivo control.tar.gz com informações
de controle do pacote e um arquivo data.tar.gz, com os binários, bibliotecas
e demais arquivos que compõem o programa propriamente dito.
A instalação é feita em modo texto, de forma seqüencial. Ou seja, você inicia
e ele vai informando os próximos passos. A instalação é básica, com pacotes
principais para o sistema, sem muitas opções, e o resto da distribuição é instalada
pelo usuário a partir dos CDs extras ou de repositórios ftp, http, etc.
Você pode encontrar uma vasta documentação sobre o Debian, em bom português,
no site indicado em [1]. Lá você também pode descobrir como contribuir,
seja com documentação, testes de software ou código.

Fedora
O Fedora [3] é herdeiro do Red Hat Linux. A Red Hat há algum tempo vinha
experimentando duas linhas de produtos, o Red Hat e o Red Hat Enterprise,
uma linha de produtos voltada para empresas, distribuída comercialmente
mediante contrato de suporte. Quando a empresa decidiu continuar centrada
nesse mercado, criou e entregou o projeto Fedora à comunidade, em setembro
de 2003. O Fedora possui versões para as arquiteturas x86 e AMD64, com uma
para máquinas PowerPC (como Macs e servidores IBM) em desenvolvimento.
Segundo muitas análises e críticas, a primeira versão da distribuição foi
sofrível – parece que a herança da Red Hat não foi tão boa. Porém, a segunda
versão recebeu críticas mais favoráveis, o que demonstra os avanços no projeto.
A terceira versão, Fedora Core 3, foi lançada no dia 8 de novembro de 2004.
Leia uma análise dela nesta edição. Embora sob “controle da comunidade”,
o desenvolvimento é regido por um comitê de controle (Steering Committee),
que segundo o site tem “autoridade sobre o conteúdo do site e da
distribuição e responsabilidade em relação aos requisitos da Red Hat e às necessidades
da comunidade. O comitê tem a última palavra na resolução de conflitos
no projeto”. Todos os integrantes desse comitê são da Red Hat. Se você quiser
contribuir com o projeto, pode fazê-lo enviando correções ou notifi cações de
bugs, traduções ou documentação e auxiliando nas listas/canais de IRC.
O gerenciamento de pacotes no Fedora segue o padrão criado pela Red Hat, o
rpm. Um arquivo rpm contém, em determinadas posições, informações sobre
ele mesmo. O lead, composto pelos primeiros bytes do arquivo, está caindo
em desuso por causa de limitações de tamanho que influenciam em coisas
como o nome do pacote, que não pode ser grande. Ao invés dele, está sendo
usado o header alguns bytes adiante, com informações sobre o pacote e o
tamanho delas. O header informa quantos bytes foram usados para guardar as
informações sobre tamanho do pacote, versão etc. Logo após vem a assinatura
do pacote, para verificação de integridade, e em seguida o pacote propriamente
dito. Nos primeiros bytes dessa parte há a indicação sobre o formato do
arquivo, se gzip, bzip2 etc.
Segundo Tanenbaum...
O programa que esconde a verdade sobre o hardware para o programador e apresenta
uma visão simples de nomes que podem ser lidos e escritos é, claro, o sistema operacional.
Assim como o sistema operacional camufl a o disco rígido para o programador
e apresenta uma interface de arquivos, também coordena muitas tarefas desagradáveis
a respeito de interrupções, timers, gerenciamento de memória e outras
características de baixo nível. Em cada caso, a abstração oferecida pelo sistema operacional
é mais simples e fácil do que usar o hardware por baixo dele.
O gerenciamento, instalação, remoção, atualização, consulta e todas as outras
operações com pacotes são feitas pelo utilitário rpm. A Red Hat parece querer
imprimir e manter no Fedora algumas ferramentas que acabam viciando o
administrador. Realizar algum trabalho sem elas pode ser uma tarefa árdua, pois
o sistema é bastante “personalizado”, com interdependências que podem levar
o administrador a não saber como lidar com o sistema sem elas e a se aprisionar
na distribuição (o que geralmente acontece). A centralização é uma boa idéia,
mas limita bastante a atuação. O Red Hat 8, por exemplo, possuía um sério
problema na base de dados mantida pelo RPM, que impedia a manutenção
ou consulta de informações sobre os pacotes, a não ser que o sistema fosse
reiniciado. Para um usuário doméstico isso pode ser apenas um aborrecimento,
porém para um sistema que não pode parar é algo bastante crítico.
A instalação é a mais simples possível, do tipo “next-next-fi nish”, na qual
o instalador pode até mesmo calcular como particionar seu disco rígido. Os
pacotes são relativamente atualizados, auxiliados pelo fato de que quase todo
distribuidor de software livre fornece um pacote rpm do seu software. Existe
a possibilidade de atualização do sistema através do comando up2date, que
analisa a base de pacotes instalados e a compara com a disponível nos sites de
atualização. Para máquinas que utilizam versões antigas do Red Hat, como
o Fedora Core 1, existe o projeto Fedora Legacy, que produz atualizações de
segurança e de pacotes críticos. Porém o Fedora ainda está pesado – e máquinas
antigas irão sofrer com isso. Recentemente foi lançada a comunidade
Fedora Brasil, em [4]. Lá você encontra documentação e pode colaborar
com a distribuição, testando software e auxiliando outros usuários.
Na próxima edição falaremos sobre duas outras distros, Gentoo e Slackware.
Vamos descobrir suas principais características e por que elas contam com
grandes comunidades de usuários.
INFORMAÇÕES
[1] Debian: www.debian.org/index.pt.html
[2] Contrato Social do Debian: www.debian.org/social_contract
[3] Fedora: http://fedora.redhat.com/
[4] Fedora Brasil: http://fedora-br.org/
|