O Kernel e as distribuições

Hoje em dia, quando falamos em “Linux” estamos normalmente nos referindo à plataforma como um todo, incluindo as diferentes distribuições e softwares. Mas, no início, tínhamos apenas o Kernel desenvolvido pelo Linus Torvalds. Ele (o Kernel) é a peça fundamental do sistema, responsável por prover a infra-estrutura básica necessária para que os programas funcionem. O Kernel é algo comum em todas as diferentes distribuições; muda a versão, mas o Kernel do Linus está sempre ali.

O Kernel é o responsável por dar suporte aos mais diferentes periféricos: placas de rede, som e o que mais você tiver espetado no micro. Uma nova versão sempre traz suporte a muita coisa nova, o que faz diferença principalmente para quem pretende trocar de PC em breve ou está de olho em algum handheld ou mp3player exótico.

No entanto, apesar de toda a sua importância, o grande objetivo dos desenvolvedores é que o Kernel seja invisível. Ele deve simplesmente fazer seu trabalho sem que você precise se preocupar com ele. Você só se dá conta de que o Kernel existe quando algo não funciona, de forma que quanto menos você notá-lo, melhor, sinal de que as coisas estão funcionando bem ;).

Se você der uma olhada dentro da pasta “/boot” de qualquer distribuição Linux, vai encontrar o executável do Kernel, no meio de um pequeno conjunto de arquivos. Ele é o primeiro componente carregado durante o boot e o último a ser finalizado.

Você deve se perguntar por que o arquivo se chama “vmlinuz” e não “vmlinux”, como seria mais lógico. Na verdade, esta é uma longa história, mas, em resumo, o “z” no nome é usado porque o arquivo do Kernel é guardado no HD na forma de um arquivo compactado.

Outro componente base do sistema, usado em todas as distribuições, é o servidor gráfico, o famoso “X”. Antes do X, o Linux tinha apenas a velha interface de modo texto, o que explicava o fato de ele ser popular apenas entre programadores e administradores de sistemas.

Uma coisa interessante sobre o X é que ele fornece a base para o funcionamento da parte gráfica, incluindo o suporte à placa de vídeo e mouse, mas não inclui a interface em si. Graças a isso, não existe uma interface gráfica padrão como temos no Windows, por exemplo. Ao inicializar o X sozinho, você tem apenas uma tela cinza, com o cursor do mouse.

Existem no Linux várias interfaces diferentes, conhecidas como gerenciadores de janelas. No início existiam muitas interfaces diferentes, mas nenhuma se aproximava do nível de funcionalidade e integração que existe no Windows. Isto mudou com o aparecimento do KDE (que é a interface usada por padrão em diversas distribuições, incluindo o Mandriva, Kubuntu e o Kurumin) e mais tarde também com o Gnome.

No início (até 1993), instalar o Linux era algo muito complicado, pois você precisava baixar um monte de pacotes com código fonte e ir compilando e instalando os componentes um a um, até chegar a um sistema funcional. Mas isso logo mudou, com o aparecimento das primeiras distribuições.

Uma distribuição Linux é como uma receita. Ao invés de ficar compilando o Kernel e os programas, como faziam os pioneiros, você simplesmente instala um conjunto que uma equipe desenvolveu e disponibilizou. O bom dos softwares é que uma vez criados eles podem ser distribuídos quase sem custo. Ao contrário de um objeto material, que se quebra ao ser dividido, quanto mais pessoas copiarem e usarem sua distribuição melhor: seu trabalho terá mais reconhecimento e apoio. Alguns exemplos de distribuições são o Debian, Mandriva, Fedora, SuSE, Slackware e Gentoo.

Qualquer pessoa ou empresa com tempo e conhecimentos suficientes pode desenvolver uma distribuição. O mais comum é usar uma distribuição já existente como ponto de partida e ir incluindo novos recursos a partir daí. No mundo open-source não é preciso reinventar a roda, os trabalhos anteriores são respeitados e reutilizados, aumentando radicalmente a velocidade de desenvolvimento de novos projetos.

A distribuição mais antiga ainda ativa é o Slackware, que em julho de 2006 completou 13 anos. O Slackware é uma das distribuições mais espartanas, que tem como objetivo preservar a tradição dos sistemas Unix, provendo um sistema estável, organizado, mas com poucas ferramentas automatizadas, que te obriga a estudar e ir mais a fundo na estrutura do sistema para conseguir usar. Muita gente usa o Slackware como ferramenta de aprendizado, encarando os problemas e deficiências como um estímulo para aprender.

Temos aqui o famoso instalador em modo texto, que é usado por todas as versões do Slackware:

Pouco depois, em novembro de 1994, foi lançado o Red Hat, que foi desenvolvido com o objetivo de facilitar a configuração e automatização do sistema, incluindo várias ferramentas de configuração. Apesar de sua alma comercial, todas as ferramentas desenvolvidas pela equipe do Red Hat tinham seu código aberto, o que possibilitou o surgimento de muitas outras distribuições derivadas dele, incluindo o Mandrake (França) e o Conectiva (Brasil). Devido à sua origem comum, estas distribuições preservam muitas semelhanças até hoje, sobretudo na estrutura do sistema e localização dos arquivos de configuração.

O Red Hat foi a primeira distribuição a usar um sistema de gerenciamento de pacotes, onde cada programa incluído no sistema é transformado em um pacote compactado, que pode ser instalado através de um único comando. O sistema guarda as informações dos pacotes instalados, permitindo que você possa removê-los completamente depois (sem deixar restos de bibliotecas e chaves de registro, como no Windows). O uso do gerenciamento de pacotes é uma das diferenças mais visíveis entre o Linux e o Windows: no Windows você clica no executável do programa e é aberto um instalador; no Linux você usa o gerenciador de pacotes para instalar os programas que quer usar. Aqui temos o venerável Red Hat 9, lançado em 2003:

Voltando à História, a partir de 2003 a Red Hat mudou seu foco, concentrando seus esforços no público empresarial, desenvolvendo o Red Hat Enterprise e vendendo pacotes com o sistema, suporte e atualizações.

O Red Hat Desktop foi descontinuado em 2004, pouco depois do lançamento o Red Hat 9. A partir daí, passou a ser desenvolvido o Fedora, combinando os esforços de parte da equipe da Red Hat e vários voluntários que, com a maior abertura, passaram a contribuir com melhorias, documentações e suporte comunitário nos fóruns. O Fedora herdou a maior parte dos usuários do Red Hat Desktop, tornando-se rapidamente uma das distribuições mais usadas.

O Mandrake começou de uma forma modesta, como uma versão modificada do Red Hat, lançada em julho de 1998, cuja principal modificação foi a inclusão do KDE (ainda na versão 1.0). O KDE e o Gnome são os dois ambientes gráficos mais usados no Linux, dividindo a preferência dos usuários e das distribuições. Ambos rodam sobre o X, usando os recursos oferecidos por ele. O X cuida do acesso à placa de vídeo, teclado, mouse e outras funções “base”, enquanto o KDE ou Gnome cuidam da interface que é mostrada a você.

Superando todas as expectativas, o Mandrake conquistou rapidamente um grande número de usuários. A partir de um certo ponto, ele passou a ser desenvolvido de forma independente, sempre com o foco na facilidade de uso. Muita gente começou a usar Linux justamente com o Mandrake 10 e 10.1 :).

O Conectiva foi a primeira distribuição Linux nacional e por muito tempo foi uma das mais usadas por aqui, atendendo tanto usuários domésticos, quanto empresas:

Em 2005 aconteceu a fusão entre o Mandrake e o Conectiva, que deu origem ao atual Mandriva, uma evolução do Mandrake, que passou a ser desenvolvido combinando os esforços dos desenvolvedores das duas distribuições.

A história do SuSE é um pouco mais complicada. As primeiras versões foram baseadas no SLS, uma das primeiras distribuições Linux de que se tem notícia. Em 1995 os scripts e ferramentas foram migrados para o Jurix, que por sua vez era baseado no Slackware. A partir da versão 5.0, lançada em 1998, o SuSE passou a utilizar pacotes RPM, o formato do Red Hat e passou a incorporar características e ferramentas derivadas dele. Todas estas ferramentas foram integradas no Yast, um painel de controle central que facilita bastante a administração do sistema.

Devido a todas estas mudanças, o SuSE é difícil de catalogar, mas atualmente o sistema possui muito mais semelhanças com o Fedora e o Mandriva do que com o Slackware; por isso é mais acertado colocá-lo dentro da família Red Hat.

Em 2003, a SuSE foi adquirida pela Novell, dando origem ao Novell Desktop (uma solução comercial) e ao OpenSuSE, um projeto comunitário, que usa uma estrutura organizacional inspirada no exemplo do Fedora.

Ao contrário do Mandriva, do Kurumin e do Ubuntu, o OpenSuSE tem uma base de usuários relativamente pequena aqui no Brasil. Parte disto se deve ao fato de, no passado, o SuSE ter sido uma distribuição fortemente comercial. O sistema não era disponibilizado para download e mesmo a compra das caixinhas era complicada, já que não existia uma filial nacional. Só com a abertura do sistema depois da compra pela Novel é que o OpenSuSE passou a recuperar o terreno perdido.

Finalmente, temos o Debian, cuja primeira versão oficial (chamada Buzz) foi lançada em 1996. O Debian deu origem a uma grande linhagem de distribuições, que incluem de produtos comerciais, como o Linspire e o Xandros a projetos comunitários, como o Ubuntu, Kubuntu, Knoppix, Kanotix e o próprio Kurumin.

As principais características do Debian são a grande quantidade de pacotes disponíveis (atualmente, mais de 25 mil, se incluídos alguns dos repositórios não-oficiais) e o apt-get, um gerenciador de pacotes que permite baixar, instalar, atualizar e remover os pacotes de forma automática.

O Debian utiliza um sistema de desenvolvimento contínuo, onde são desenvolvidas simultaneamente 3 versões, chamadas de Stable (estável), Testing (teste) e Unstable (instável). A versão estável é o release oficial, que tem suporte e atualizações de segurança freqüentes. A versão estável atual é o Etch (4.0), lançado em dezembro de 2006. Antes dele vieram o Sarge (3.1), lançado em junho de 2005; o Woody (3.0), lançado em julho de 2002, e o Potato (2.2), lançado em agosto de 2000. Atualmente, novas versões estáveis do Debian são lançadas a cada 18 meses, sendo que a próxima, chamada de Lenny, está planejada para junho de 2008.

A versão instável do Debian (chamada Sid) é a mais peculiar. Ela é uma eterna versão de testes, que não é finalizada nunca. Ela serve como um campo de testes para novos programas e novas versões dos pacotes já existentes, permitindo que os problemas sejam detectados e corrigidos. Ao usar o Sid, você tem acesso às versões mais recentes de todos os programas, mas, em compensação, não existe garantia de estabilidade. Um programa que funciona perfeitamente hoje pode deixar de funcionar amanhã e ser novamente corrigido na versão seguinte. Um erro em algum dos pacotes base pode fazer com que o sistema deixe de inicializar depois de atualizado e assim por diante ;).

Usar o Sid é viver no limite, com garantia de fortes emoções. É apenas questão de tempo para que você tenha problemas, de forma que a experiência só é recomendável para quem não se importa de colocar a mão na massa, abrir o navegador e sair pesquisando soluções para eles :). Em algumas épocas, o uso do Unstable é impraticável, pois muitas alterações são feitas simultaneamente, fazendo com que muitos pacotes fiquem quebrados e apareçam problemas diversos.

As versões estáveis do Debian são tão estáveis justamente porque ficam congeladas, recebendo apenas atualizações de segurança e correções de bugs. Diz a teoria que se você continuar corrigindo bugs em um programa, sem adicionar outros no processo, em um determinado momento você chegará a um programa livre de falhas.

O maior problema é que, devido ao longo intervalo entre os lançamentos das versões estáveis, os pacotes acabam ficando defasados em relação a outras distribuições, que utilizam um ciclo de releases mais curto. Para amenizar o inconveniente, existe a opção de usar o Testing, que é uma prévia da próxima versão estável. Como o Testing é uma versão “incompleta”, que ainda está em desenvolvimento, normalmente o utilizamos em conjunto com o Unstable, de forma que pacotes que ainda não estejam disponíveis no Testing, possam ser instalados a partir dele.

Tipicamente, os pacotes começam no Unstable, onde recebem uma primeira rodada de testes e, depois de algumas semanas, são movidos para o Testing. Periodicamente, os pacotes no Testing são congelados, dando origem a uma nova versão estável. Além destes, existe o Experimental, usado como um laboratório para a inclusão de novos pacotes.

O Debian em si é bastante espartano em termos de ferramentas de configuração e por isso é reservado a usuários mais avançados. Entretanto, por ser incrivelmente completo, o Debian é usado como base para o desenvolvimento de muitas outras distribuições.

Esta é mais uma peculiaridade do Linux: novas distribuições raramente são criadas do zero; quase sempre é usada uma distribuição já existente como base, o que permite que os desenvolvedores se concentrem em adicionar novos recursos e corrigir problemas.

Dentro do mundo open-source, ser “independente” é, na maioria dos casos, sinônimo de ser “ineficiente”. Ao invés de ficar duplicando ferramentas de configuração e reempacotando programas, é muito mais inteligente aproveitar a base desenvolvida por outras distribuições e usar suas horas de trabalho para corrigir problemas e adicionar novos recursos. Com isto, você consegue chegar a um produto melhor com o mesmo número de horas de trabalho e beneficia indiretamente outras distribuições que podem aproveitar as ferramentas desenvolvidas por você. Quando alguém argumentar que a distribuição x é melhor que a distribuição y porque “foi desenvolvida do zero”, perdoe-o, pois ele provavelmente não sabe do que está falando.

Alguns exemplos de distribuições derivadas do Debian são o Ubuntu, Kubuntu, Knoppix, Kanotix, Mephis e, claro, o próprio Kurumin. Você pode ver uma tabela mais completa com as origens de cada distribuição neste link do Distrowatch:
http://distrowatch.com/dwres.php?resource=independence

Veja que dentre as distribuições cadastradas no site, a grande maioria é baseada no Debian (129) ou no Knoppix (50). Naturalmente, as distribuições baseadas no Knoppix também são indiretamente derivadas do Debian e, de fato, muitas distribuições são incluídas dentro das duas categorias. Em seguida temos as distribuições derivadas do Fedora (63), do Slackware (28) e do Mandriva (14). Até o Kurumin já entrou na lista, com 5 filhos.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X