O sistema operacional é provavelmente o software mais importante em qualquer computador. Ele é o responsável por ativar todos os periféricos e criar o ambiente sobre o qual todos os outros programas rodam. O Windows é o sistema mais usado, por isso ele acaba sendo a plataforma mais familiar para muitos de nós. Como qualquer sistema, o Windows possui sua dose de problemas, entretanto (como mais gente usa) é normalmente mais fácil conseguir ajuda.
O domínio da Microsoft na área de sistemas operacionais começou em 1981, com o lançamento do primeiro PC e da primeira versão do MS-DOS. Embora não tivesse nada de especial com relação a outros sistemas da época, o DOS cresceu em popularidade junto com os PCs, seguido pelas diversas versões do Windows. Contudo, a Microsoft é uma página recente na história da informática. Enquanto o MS-DOS ainda dava seus primeiros passos, o Unix já era um sistema maduro, usado na maioria dos computadores de grande porte e em estações de trabalho. A história do Unix começa em 1969, na frente de um computador igual a este:
Este é um PDP-7, que, na década de 60, era um minicomputador de “baixo custo” (custava 72.000 dólares da época), equipado com apenas 8 kbytes de memória RAM. Hoje mesmo as agendas de bolso, das mais baratas, possuem bem mais memória do que ele.
Devido às pesadas limitações do equipamento, o sistema operacional deveria ser extremamente enxuto e otimizado, de forma a extrair o máximo do equipamento, consumindo um mínimo de memória. A combinação da criatividade dos desenvolvedores, a necessidade e as limitações impostas pelo equipamento, resultaram em um sistema bastante otimizado e elegante. Muitas das idéias surgidas nesta época continuam sendo usadas até hoje.
O Unix evoluiu durante a década de 70, passando a ser usado em cada vez mais equipamentos e ganhando mais recursos. Quase sempre ele era usado em aplicações “sérias”, incluindo instalações militares, bancos e outras áreas onde não existe margem para falhas. Devido a tudo isso o sistema se tornou muito robusto e estável.
Os primeiros sistemas Unix foram desenvolvidos de forma colaborativa, dentro de universidades e centros de pesquisas. Embora naquela época ainda não existisse a internet como a conhecemos hoje, existia uma grande colaboração entre os desenvolvedores.
Isso mudou na década de 1980, quando empresas como a AT&T, Sun e SCO, que detinham os direitos sobre o sistema, passaram a desenvolver versões proprietárias e a concorrerem entre si. A colaboração deixou de acontecer e a plataforma foi fragmentada em versões incompatíveis.
Outro fator importante foi a falta de investimentos em versões destinadas a micros PCs. Na época, os PCs eram vistos como computadores muito limitados, incapazes de rodar sistemas Unix completos. Lembre-se de que estou falando do início da década de 80, quando ainda eram usados micros XT e 286 :). Somados, estes dois fatores fizeram com que a plataforma definhasse, deixando o caminho livre para o crescimento da Microsoft. Chegamos, então, ao Linux.
Tudo começou em 1991, quando Linus Torvalds começou a trabalhar no desenvolvimento de um sistema Unix para rodar em seu 386. Na época, o único sistema similar era o Minix, um sistema para uso acadêmico, que era bastante limitado. No início, Linus usava o Minix para rodar os programas de desenvolvimento, mas, a partir de um certo ponto, ele passou a usar o próprio Linux.
De início, o Linux era um projeto muito pequeno, o hobby de um único programador. Entretanto, ele tinha uma grande vantagem em relação aos sistemas UNIX que o precederam: o simples fato de ser disponibilizado sob a licença GPL. Isso permitiu que outros programadores adotassem o projeto, passando a contribuir com melhorias e correções. O sistema passou a crescer em um ritmo cada vez mais acelerado, chegando ao que temos nos dias de hoje.
Ao ver micros com Linux em exposição nas lojas e em mercados, tenha em mente que esta é apenas a ponta do iceberg. O uso do Linux em micros domésticos, pelo grande público, é uma coisa relativamente recente. Antes de chegar aos desktops, o Linux cresceu entre os desenvolvedores e usuários avançados, dominou os servidores, invadiu o mundo dos dispositivos embarcados (celulares, roteadores, pontos de acesso wireless e até mesmo modems ADSL) e se tornou o sistema dominante no mundo dos supercomputadores.
Segundo o http://www.top500.org/ (que mantém um rank atualizado dos 500 supercomputadores mais poderosos do mundo) em julho de 2006 tínhamos 370 dos 500 supercomputadores mais poderosos rodando diferentes versões do Linux. Dos restantes, 125 rodavam outros sistemas Unix, 4 rodavam o Mac OS X e apenas um (um dos últimos da lista) rodava o Windows Cluster Server 2003, uma versão do Windows especialmente otimizada para a tarefa.
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.
Deixe seu comentário