Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa

Gentoo Linux

Gentoo logo

Gentoo Linux é uma metadistribuição gratuita do sistema operacional Linux baseada no sistema gerenciador de pacotes portage. A nomenclatura usada no desenvolvimento do sistema e seus produtos é inspirada na espécie de pingüim Gentoo. O gerenciamento de pacotes no gentoo é desenhado para ser modular, portátil, fácil de manter, flexível e otimizado para a máquina usuária. Normalmente os pacotes são compilados a partir do código fonte, mantendo a tradição dos ports nos sistemas BSD, embora por conveniência, alguns pacotes grandes são disponibilizados também como binários pré-compilados para várias arquiteturas.

História

O Gentoo foi criado, inicialmente, por Daniel Robbins como a Distribuição Enoch. O seu objetivo era criar uma distribuição que fosse compilada a partir do código fonte, otimizada ao Hardware, incluísse apenas os programas necessários, e diminuísse o trabalho de manutenção através de scripts. Pelo menos uma versão do Enoch foi distribuída: 0.75 em Dezembro de 1999.

Problemas de compilação revelaram problemas com o GNU Compiler Collection (gcc), usado para compilar o código fonte. Daniel Robbins e outros voluntários tentaram com um fork do gcc conhecido como egcs desenvolvido por cygnus que produziu binários com um ganho mínimo real de 10% de sobre o gcc, em termos de velocidade. Neste ponto, Enoch ganhara reputação devido a sua velocidade, levando a mudança de nome para Gentoo Linux, sendo Gentoo o nome da espécie de pingüim capaz de nadar mais rápido. As modificações logo se tornaram parte da versão oficial do gcc 2.95, e outras distribuições Linux também obtiveram tiveram ganhos na velocidade.

Após sofrer problemas com relação a um bug no seu próprio sistema, Robbins interrompeu o desenvolvimento do Gentoo e migrou para o FreeBSD por vários meses, depois dizendo "Eu decidi adicionar várias características do FreeBSD para fazer o nosso sistema auto-compilador (agora conhecido como Portage) uma verdadeira nova geração do sistema ports."

Robbins queria que o Gentoo se tornasse um projeto comercialmente bem-sucedido, mas teve dificuldades em encontrar um modelo de negócios correto. Em 2004 montou a Fundação Sem Fins Lucrativos Gentoo, transferindo todos os direitos autorais e marcas registradas para ela, e se tornou arquiteto chefe do projeto.

O atual Conselho Diretivo é composto por cinco membros que foram anunciados (após uma eleição) em 2 de Março de 2008 There is also a subsidiary seven-member Gentoo Council whose members decide on technical issues and policies. Há também um Conselho subsidiário composto por sete membros, cujos membros decidem sobre problemas técnicos e políticas. Os membros atuais do Conselho foram eleitos durante o período de 17 de Agosto de 2007 a 17 de Setembro de 2007, por 117 desenvolvedores ativos do projeto Gentoo.

Até recentemente, a Fundação Gentoo era uma 501(c)(6) non-profit foundation (uma Fundação Sem Fins Lucrativos), registrada no Estado norte-americano do Novo México. Mais tarde em 2007, a autorização da Fundação foi revogada. Em 19 de Maio de 2008 o Estado do Novo México declarou que a Fundação Gentoo está em situação regular e livre para negócios.

Portabilidade

Embora originalmente desenhado para a arquitetura x86, o Gentoo foi portado para muitas outras e atualmente roda nas arquiteturas x86, x86-64, IA-64, PA-RISC; PowerPC, PowerPC 970, UltraSparc, MIPS, DEC Alpha, System Z/s390, PS3 Microprocessador Cell, ARM e SuperH. O suporte oficial para hardware Sparc 32bits foi abandonado. O Gentoo foi a primeira distribuição a oferecer um ambiente de computação Linux 64 bits totalmente funcional (Espaço de usuário e kernel).

Há também um Projeto "Gentoo para Mac OS X" que permite que usuários do Mac OS X usem o Portage do Gentoo para instalar pacotes, simila ao modo disponibilizado pelo Fink. Embora ainda seja um trabalho em progresso, o projeto pode coexistir com o Fink por que utiliza o mesmo ambiente que o Mac OS X, ao invés de criar um novo.

Portabilidade com relação a outros sistemas operacionais, como derivados BSD, está sob desenvolvimento ativo pelo Projeto Gentoo/ALT. O Projeto Gentoo/FreeBSD ja possui um lançamento funcional, enquanto que Gentoo/NetBSD, Gentoo/OpenBSD e Gentoo/DragonFly estão sendo desenvolvidos. Há também um projeto para fazer o Portage funcionar no GNU Hurd, apesar do próprio GNU Hurd estar sob desenvolvimento, e no OpenSolaris.

Portage

Portage é o sistema de gerenciamento de pacotes do Gentoo. Ele é similar ao ports do BSD: o design original foi baseado no ports do FreeBSD. Em contraste, a árvore do Portage não contém diretórios com makefiles, mas com as chamadas ebuilds, scripts bash que descrevem funções separadas para baixar, configurar, compilar, instalar e remover um pacote, além de adicionas funções que pódem ser utilizadas no ambiente operacional para um pacote.

Portage também é o nome da ferramenta padrão de gerenciamento de pacotes do Gentoo. Este pacotes trás, junto com outras scripts úteis, a ferramenta emerge, escrita em Python e pode ser usada por usuários privilegiados para inspecionar e alterar facilmente o conjunto de pacotes no Gentoo. O emerge pode ser utilizado para operar de modo similar ao modo como outras coleções do ports funcionam, ao entrar em um diretório da árvore e utilizar o emerge (ao invés do make) para realizar operações relacionadas ao gerenciamento de pacotes. O portage lê configurações no arquivo /etc/make.conf, mantendo a sua similaridade com o ports, e pode ser usado por exemplo, para determinar onde a(s) árvore(s) do Portage são mantidas.

Recentemente, gerenciadores de pacotes alternativos como o Paludis e o pkgcore estiveram sobre intenso desenvolvimento. Ambos pretendem ser utilizados em conjunto ou como alternativa ao conjunto Oficial de Ferramentas Portage para desenvolvimento e praticidade. Como ambos são projetos competidores que pretendem substituir ferramentas Oficiais, um esforço foi feito para tentar padronizar a Application programming interface das ebuilds para todos os gerenciadores de pacote, em um projeto chamada Especificação do Gerenciamento de Pacotes ou PMS (Package Manager Specification)

Sistema Init

O sistema init do Gentoo é outra característica importante. Ele é similar ao init do System V que a maioria das distribuições Linux utilizam, mas usa scripts baseadas em dependência e os run levels nomeados ao invés dos numerados. Ele também inclui um comando chamado rc-update que gerencia os run levels.

As Scritps de Inicialização do Gentoo utilizam o interpretador shell runscript, ao invés de uma shell mais tradicional.

Originalmente o systema rc do Gentoo foi compilado no baselayout 1 e escrito inteiramente em bash. Isto trouxe severas limitações, por exemplo, certas chamas de sistema precisavam ser acessadas durante o boot e isto exigia que calltous baseadas em C fossem adicionadas. Essas callouts eram linkadas estaticamente, fazendo com que o sistema rc inchasse ao longo do tempo.

Além do mais, conforme o Gentoo se expandia para outros plataformas como o Gentoo/FreeBSD e Gentoo Embedded, ficou impossível querer um systema rc baseado em bash. Isto levou ao desenvolvimento do baselayout 2, escrito em C e precisa somente de uma shell compatível com POSIX. Durante o desenvolvimento do baselayout 2, foi determinado que seria melhor se o baselayout apenas providenciasse os arquivos base e o layout do systema de arquivos para o Gentoo e que o ssistema rc fosse colocado em seu próprio pacote - OpenRC.

O OpenRC é desenvolvido primeiramente por Roy Marples e suporta o Gentoo e todas as suas variantes, Gentoo/FreeBSD, Gentoo Embedded, Gentoo Vserver e outras plataformas como FreeBSD e NetBSD.

Instalação

O Gentoo pode ser instalado de várias formas. A mais comum é utilizar o minimal cd do Gentoo com uma tarball do stage 3. Como muitas distribuições Linux, ele também pode ser instalado pela maioria dos Live Cds e instalações existentes do Linux.

A instalação do Gentoo pode ser completada seguindo o Gentoo Handbook. Além disso, vários outros métodos de instalação estão listanos no Alternative Installation Method HOWTO ; a maioria dos quais está focada em usuários experientes ou usuários incapazes de fazer o processo de boot utilizando o Live Cd do Gentoo.

Na versão 2006.0, a Fundação Gentoo lançou um instalador baseado em GTK+ para simplificar drasticamente o processo de instalação do Gentoo a partir do zero. Usuários mais avançados também podem notar que o novo instalador trás de volta a instalação usando o stage 1 (veja abaixo) como um método de instalação comum.

Catalyst

A partir da versão 2004.0, Gentoo trouxe uma ferramenta chamada Catalyst, que é usada para compilar todos os lançamentos do Gentoo e pode ser usado para criar uma mídia customizada de instalação.

Stages

Tradicionalmente uma instalação pode ser iniciada a partir de um dos três stage (estágios) básicos:

  • Stage1: O sistema deve ser bootstrapped e o sistema base deve ser compilado.
  • Stage2: O sistema já foi bootstrapped, mas o sistema base deve ser compilado.
  • Stage3: O sistema ja foi bootstrapped e o sistema base ja foi compilado.

Desde Novembro de 2005, apenas instalações no stage3 são oficialmente suportadas. Entretanto tarballs para o stage1 e stage2 ainda são distribuidas, mas as instruções para instalar a partir deles foram removidas do handbook e colocadas na FAQ do Gentoo.

Live USB

Um Live USB do Gentoo Linux pode ser criado manualmente ou com o UNetbootin.

Histórico de Versões

Versão Data Observações
1.0 31 de Março de 2002  
1.2 12 de Junho de 2002  
1.4 5 de Agosto de 2003 Gentoo Reference Platform adicionada
1.4-r1 11 de Setembro de 2003  
2004.1 1 de Março de 2004 lançamentos viram quatro por ano
2004.2 28 de Abril de 2004  
2004.3 15 de Novembro de 2004  
2005.0 27 de Março de 2005 lançamentos passam a semi-anuais
2005.1 8 de Agosto de 2005  
2005.1-r1 21 de Novembro de 2008 primeira revisão da versão
2006.0 27 de Fevereiro de 2006  
2006.1 30 de Agosto de 2006  
2007.0 7 de Maio de 2007  
2008.0_beta1 1 de Abril de 2008  
2008.0_beta2 29 de Abril de 2008  
2008.0 6 de Julho de 2008  
2008.0-r1 7 de Julho de 2008 primeira revisão da versão

Uma vez instalado, o Gentoo se torna "sem versão"; isto é, uma vez feito emerge update, o sistema está na ultima versão, com os pacotes mais atualizados disponíveis, mas sujeitos a qualquer restrições especificadas pelo usuário ao Portage. Por exemplo, se um sistema, foi instalado por um CD da versão 2005.0, então quando a versão 2005.1 for lançada, um emerge update do sistema atualiza o sistema Gentoo instalado da forma que deve resultar uma instalação limpa baseada na versão 2005.1 do mesmo sistema.

Em 22 de Setembro de 2008, foi anunciado que a versão 2008.1 foi cancelada e que um novo modelo de lançamentos esta sendo considerado. Este novo modelo de lançamentos vai resultar em compilações automáticas (stage 3 e minimal cd), Live CD e DVD provavelmente irão manter seu ciclo anual de lançamentos.

Vantagens

Dependências leves

Já que os pacotes são compilados pelo código-fonte, dependências entre os pacotes são mais flexíveis do que as de distribuições binárias, e podem ser explicitamente ativadas ou desativadas em muitos dos casos. Distribuições binárias tipicamente oferecem flexibilidade similar ao fornecer várias versões do mesmo pacote com apelidos diferentes, ou dividindo pacotes em componentes mais modulares quando possível. Já que o número de configurações possíveis se torna combinatória conforme o número de opções no momento de compilação aumenta, não é viável manter binários para todas as possíveis combinações. Por isso o Gentoo é capaz de oferecer uma variedade muito maior de opções de pacotes no momento da compilação, onde outras distribuições famosas não são.

Pacotes Mais Atuais

Ao sincronizar regularmente a sua árvore do portage, usuários Gentoo são capazes de usar a versão mais recente dos pacotes disponíveis, ao invés de ficarem fixos a uma data de lançamento em particular. Geralmente isso resulta em versões mais novas de software disponíveis no gerenciador de pacotes do que as disponibilizadas em outras distribuições Linux em qualquer momento específico, particularmente aquelas que são presas a um determinado lançamento, apenas com atualizações de segurança. Isto também pode ser considerado um inconveniente; ao utilizar um sistema Gentoo, não há garantias com relação a compatibilidade com versões anteriores na atualização pacotes, já distribuições que fazem apenas um combo reduzido de lançamentos para os pacotes disponíveis são capazes de gerenciar melhor a compatibilidade entre cada lançamento. O Gentoo Linux dá um passo além, oferecendo aos próprios desenvolvedores a opção de utilizar um overlay, que é nome dado a árvores secundárias, mas relativas à árvore principal do Portage. Isso permite que os usuários testem novas funções antes mesmo de serem lançadas, ou seja, no exato momento em que estão sendo feitas. Overlays são uma excelente maneira de testar a estabilidade e o progresso de determinados projetos, e muito comuns no Gentoo, oferecendo um controle privilegiado sobre a própria distribuição, sobre quais e quando pacotes podem ou não ser disponibilizados sob a premissa de serem estáveis.

Clareza e Flexibilidade

O Sistema Portage mostra, comparado com outras distribuições Linux, muito do que eles está fazendo. Para muitos passos de instalação, os comandos executados são mostrados, enquanto muitas distribuições Linux apenas descrevem o que elas estão tentando conseguir. Fato relacionado é o fato de qualquer usuário pode modificar o comportamento do sistema por inteiro de forma relativamente simples, já que grande parte dos programas no gerenciamento de pacotes são scripts. Devido tudo isso, o Gentoo pode ser útil para desenvolvedores de código, por que eles podem fazer uma instalação completa com o código-fonte nos seus servidores (por exemplo servidores de revisão) usando um simples comando.

Construa o sistema dos seus sonhos

A estrutura atual do Gentoo é basicamente modular, constituída de muitos meta-dados, tornando extremamente fácil escolher entre uma enorme variedade de opções, entre softwares e suas configurações. Essa modulização usa entre outros conceitos, o sistema de overlays do Gentoo, criando árvores paralelas e interligadas à árvore central, com pacotes constituídos unicamente de meta-dados, capazes selecionar, compilar e configurar pacotes, utilizando determinadas opções, pré-definidas ou não. Essa estrutura possui inúmeras vantagens, por exemplo, uma vez que os projetos são autônomos, eles ficam responsáveis pelo seu próprio ambiente, precisam se focar apenas em coisas menores, isto também acaba com a necessidade de possuir uma autoridade central e reguladora, limitando-a apenas à árvore principal, contendo o núcleo do sistema, e que determina quais projetos são oficialmente mantidos. Utilizando essa alta modulização, também torna-se mais simples executar forks, assim, se, por qualquer motivo alguém achar que o mozilla não está sendo mantido corretamente, ele pode criar a sua própria árvore e aplicar os patches e correções que acredita serem necessários, e, com o tempo, se este novo projeto realmente for melhor, ele irá lentamente substituir o primeiro, se tornando um projeto oficial.

Empecilhos

Instalação lenta de pacotes

Compilar a partir do código-fonte significa que alguns pacotes são mais demorados para instalar. Demoras na instalação levam a uma instalação inicial mais longa se muitos pacotes são instalados. Em casos extremos como KDE e OpenOffice.org, a instalação de pacotes pode levar horas, ou até mesmo dias em hardware antigo. A compilação destes pacotes também vai exigir bastante espaço em disco, enquanto estiver sendo feita (4–6 GB para o OpenOffice.org – dê uma olhada na ebuild do app-office/openoffice para mais detalhes). No geral, usuários do Gentoo aceitam os custos do tempo de compilação para poderem usar suas próprias configurações na compilação, apesar de agora binários pré-compilados para aplicações muito usadas como o KDE, OpenOffice.org, e Mozilla Firefox estarem disponíveis. Usar estes binários, você perde a chance de personalizar a escolha de características e otimizações para estes pacotes, mas o tempo de instalação dos pacotes é reduzido para alguns minutos.

Numa instalação padrão, as críticas acima são basicamente válidas. Porém, deve-se notar que há várias ferramentas/soluções para evitar parcialmente problemas de compilações longas. Elas podem ser usadas separadamente ou em qualquer combinação entre uma e outra:

A primeira é alterar o número de instâncias paralelas do make que podem estar em execução. Iso pode ser especificado globalmente no arquivo /etc/make.conf ou utilizando a diretriz MAKEOPTS="-jX". Setando o valor de X = 1 + "# de núcleos de CPU", funcionando bem em muitas configurações. Note que esta configuração deve refletir o número de núcleos através de todas as máquinas ao utilizar o distcc (veja a terceira opção abaixo).

A segunda, aplicável para configurações com >512-1024MB de RAM, é um script envoltório para o comando emerge chamado temerge que move o diretório temporário do emerge para no tmpfs (um RAM drive). Isto pode reduzir substancialmente o tempo de compilação para muitos pacotes, especialmente aqueles com atividade intensa de I/O nos discos da área de compilação.

A terceira, aplicável a usuários com múltiplas máquinas Linux, através do uso da ferramenta distcc, que é capaz de distribuir os tempos de compilação através de múltiplas máquinas. Isto é especialmente benéfico ao compilar sistemas a partir de imagens do "stage1" ou "stage2", quando a compilação de pacotes é exigida consideravelmente.

A quarta é a opção buildpkg do portage para tarballs binários de pacotes compilados. Estes podem ser unidos numa máquina de arquitetura compatível e make.conf configurado de maneiras similares a de uma Distribuição Linux (binária). Isto também pode ser usado para a recuperação do sistema ou usado para compilar pacotes em uma máquina potente para depois instalar em outras menos potentes.

A promessa de otimização

O Gentoo foi muito criticado por sua suposta promessa de executar programas mais rapidamente, por design ele permite que usuários especifiquem suas flags de compilação. Alguns websites foram criados especialmente para satirizar esta aproximação falsa a computação. Na realidade, otimizações nem sempre beneficiam a execução de um programa a tal ponto que importe recompilar todo o sistema e seus softwares, ao invés de usar pacotes pré-compilaods como outras distribuições Linux normalmente fazem. A verdade é que o gerenciamento de pacotes do Gentoo, no entando, oferece mais opções, que permitem também a seus usuários, instalar menos bibliotecas do que aqueles aplicativos normalmente instalariam, o que pode resultar em um ambiente operacional mais magro e limpo, capaz de executar aplicativos (ou pelo menos durante a inicialização) mais rapidamente do que qualquer sistema com bibliotecas e serviços desnecessários em execução em segundo plano.

Requer uma boa conexão com a internet

Isto está mais relacionado a downloads do que a compilar pacotes. Logo, qualquer outra distribuição Linux que possui atualizações na internet precisa baixar pacotes binários ao invés, e o tamanhos de pacotes binários e códigos geralmente é comparável. Atenuando este inconveniente há a possibilidade de fazer o download de arquivos necessários em segundo plano utilizando as flags -f ou --fetchonly do emerge, ou o download pode ser feito automaticamente, também em segundo plano, durante a compilação, ao ativar a característica parallel-fetch. Outro modo de se fazer isto é realizar os downloads em outra máquina utilizando o comando emerge e mover o código-fone para o diretório /usr/portage/distfiles correspondente na máquina desejada, deste modo se o usuário possuir uma velocidade de conexão baixa, ele pode realizar os downloads em outro lugar.

O logotipo Oficial do Gentoo é o G estilizado lembrando um magatama. Como mascote oficial, Knurt o pires voador. Mascotes não oficials incluem Larry a vaca. Na verdade, como Larry apareceu no site oficial, ela pode ser ser considerada como semi-official.

Distribuições baseadas no Gentoo

  • Bintoo
  • Calculate Linux
  • Gentoox
  • iloog
  • Knopperdisk
  • Kororaa
  • Librix
  • Litrix
  • Navyn OS
  • Pentoo
  • Phaeronix
  • Sabayon Linux
  • Saxana
  • SystemRescueCD
  • Tin Hat Linux
  • Ututo
  • VidaLinux

GNU Free Documentation License
Este é um artigo adaptado que pertence ao site Wikipédia
e está sob licença GNU Free Documentation License.
Para vê-lo na íntegra, acesse:
http://pt.wikipedia.org/wiki/Gentoo_Linux

Veja também

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 2665 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog