Distribuições Linux: Os LiveCDs

Distribuições Linux: Os LiveCDs

Embora o Debian “puro” seja bastante espartano em termos de ferramentas de configuração, ele oferece um repositório de pacotes incrivelmente completo, o Debian e é por isso usado como base para o desenvolvimento de inúmeras outras distribuições, que combinam os pacotes dos repositórios do Debian com personalizações, scripts e componentes adicionais, de forma a atingirem nichos específicos.

Um exemplo de destaque é o Knoppix, cuja versão 3.0 (a primeira a ganhar notoriedade) foi lançada em julho de 2002.

O Knoppix acabou se tornando um marco dentro da história do Linux por dois motivos. O primeiro é que ele foi a primeira distribuição Linux live-CD realmente utilizável, oferecendo um bom desempenho e um excelente script de autoconfiguração, que detectava o hardware da máquina durante o boot, gerando os arquivos de configuração de forma automática e entregando um sistema funcional no final do processo. Distribuições live-CD anteriores, como o DemoLinux eram muito mais lentas e impráticas de usar.

O segundo motivo e talvez o mais importante era a possibilidade de remasterizar o CD, gerando uma distribuição personalizada. Graças a isso, o Knoppix deu origem a um enorme número de novas distribuições, como o Kanotix (que deu origem ao atual Sidux), o Morphix (que, devido à sua arquitetura modular, ajudou a criar toda uma nova família de distribuições) e o Kurumin, que desenvolvi de 2003 a 2007.

Um live-CD é, em poucas palavras, uma versão pré-instalada do sistema, que utiliza um conjunto de truques para rodar diretamente a partir do CD-ROM. Tradicionalmente, qualquer sistema operacional precisa ser instalado no HD antes de ser usado. Você dá boot usando o CD ou DVD de instalação e é aberto um instalador (que, por sua vez, roda sobre algum sistema minimalista), que se encarrega de instalar e configurar o sistema principal. Depois de algum tempo respondendo perguntas e vendo a barra de progresso da cópia dos arquivos, você reinicia o micro e pode finalmente começar a usar o sistema. Isso é válido tanto para o Windows quanto para a maior parte das distribuições Linux.

Para quem já se acostumou com a idéia, pode parecer natural rodar o sistema a partir do CD e até mesmo instalar novos programas sem precisar modificar as informações salvas no HD, mas, em 2002, quando o Knoppix começou a ganhar popularidade, a idéia de rodar uma distribuição Linux completa a partir do CD-ROM era considerada uma idéia exótica. Muitas pessoas só acreditavam depois de desconectar o cabo flat do HD e ver que o sistema realmente dava boot apenas com o CD-ROM. :O

Apesar de receberam críticas por parte de alguns puristas, os live-CDs cresceram rapidamente em popularidade. O Ubuntu passou a ser um live-CD instalável a partir da versão 6.06, o Mandriva aderiu à idéia com o Mandriva Discovery (que foi sucedido pelo atual Mandriva One) e até mesmo o Fedora ganhou uma versão live-CD, o Fedora Live, sem contar o gigantesco volume de distribuições baseadas neles. Apesar do início tímido, os live-CDs dominaram o mundo.

A base de tudo é um módulo de Kernel chamado SquashFS (nas primeiras versões do Knoppix era usado o cloop, baseado no mesmo princípio), um hack que permite que o sistema rode a partir de um sistema de arquivos compactado, gravado no CD-ROM. Os dados são descompactados “on-the-fly”, conforme são necessários.

O uso da compressão oferece duas vantagens: permitir que o sistema fique muito menor, colocando até 2 GB de dados em um CD-ROM de 700 MB, e melhorar o desempenho do sistema, aumentando a taxa de transferência efetiva do CD-ROM.

A idéia é que um CD-ROM de 52x é capaz de ler a, em média, 5.8 MB/s, pois como o CD gira sempre na mesma velocidade, as informações gravadas nas trilhas da parte externa do CD (mais longas) são lidas a mais ou menos o dobro da velocidade das do centro (que são mais curtas). Um CD-ROM de 52x lê a 7.8 MB/s nas trilhas externas mas a apenas 3.9 MB/s nas internas. Como o CD-ROM é gravado a partir do centro, na maior parte do tempo ele lê os dados a 5 ou 6 MB/s.

No entanto, ao ler 5 MB/s de dados compactados a uma razão de 3x, ele estará lendo, na prática, a quase 15 MB/s, um valor muito mais próximo do da taxa de transferência oferecida por um HD. Naturalmente ainda existem outros problemas, como o tempo de busca, que é muito mais alto em um CD-ROM, mas o problema principal é amenizado. Se não fosse o sistema de compressão, os live-CDs seriam três vezes maiores e três vezes mais lentos ao rodar do CD, o que os tornariam sistemas muito menos atrativos.

Em contrapartida, por causa da compressão o trabalho do processador passa a ser maior, pois, além de processar os dados referentes aos programas, ele tem que, ao mesmo tempo, descompactar os dados lidos pelo CD-ROM. Por isso, mais do que em distribuições instaladas, o desempenho aumenta de acordo com o poder de processamento da máquina.

A primeira etapa do boot é a tela de boas-vindas e uma linha onde você pode fornecer parâmetros para o boot. Logo depois é carregado o Kernel, que por sua vez inicializa o hardware, cria um ramdisk usando uma parte (pequena) da memória RAM onde são armazenados arquivos de configuração e outros dados que precisam ser alterados durante o uso. Depois disso entra em ação o hwsetup, o programa de detecção que, junto com um conjunto de outros scripts, se encarrega de detectar a placa de vídeo, som, rede, modem e outros periféricos suportados, exibindo mensagens que ajudam a identificar a configuração da máquina e já saber de antemão detalhes como o processador, quantidade de memória RAM e placa de vídeo instalada (imagine o caso de um técnico que instala o sistema em vários micros diferentes, por exemplo).

Nas primeiras distribuições live-CD, era utilizado um pequeno ramdisk (um disco virtual criado utilizando parte da memória RAM) para armazenar arquivos de configuração, o diretório home e outros arquivos do sistema que precisam ser alterados durante sua execução. Entretanto, a maior parte dos arquivos do sistema eram acessados diretamente a partir do CD-ROM, de forma que você não podia instalar novos programas nem fazer alterações em componentes do sistema enquanto ele estivesse rodando a partir do CD, devido à limitação óbvia de que o CD-ROM é uma mídia somente-leitura.

O solução para esta última barreira veio com o UnionFS, que passou a ser usado em larga escala a partir de 2005. O UnionFS funciona de uma forma bastante engenhosa, uma daquelas idéias aparentemente simples, que resolvem problemas complexos.

O UnionFS permite juntar dois (ou mais) diretórios em um, estabelecendo uma hierarquia entre eles. O “Union” vem justamente de “união”. Temos então o arquivo compactado do CD em um nível hierárquico mais baixo, montado como somente leitura e um ramdisk, que originalmente está quase vazio, mas que vai armazenando todas as alterações. Os dois são montados em uma única pasta, que contém o conteúdo do arquivo compactado e do ramdisk.

Na hora de ler um arquivo, o sistema verifica se existe uma versão mais recente armazenada no ramdisk, caso contrário lê no arquivo principal. Na hora de gravar, as alterações são sempre armazenadas no ramdisk, de forma automática e transparente.

No final, você acaba podendo instalar programas via apt-get e fazer qualquer tipo de alteração no sistema, praticamente da mesma forma que se ele estivesse instalado. Naturalmente, todas as alterações são salva na memória RAM, de forma que, para realmente instalar um volume significativo de novos pacotes ou manipular grandes arquivos, você precisa ter um PC com pelo menos 1 GB de memória RAM. Em micros com pouca RAM você verá uma mensagem de “disco cheio” (quando na verdade o que acabou foi o espaço no ramdisk) ou até mesmo efeitos diversos por falta de memória RAM disponível.

O UnionFS é usado por padrão em quase todas as distribuições live-CD atuais, incluindo o Ubuntu Desktop. Isso permite que você teste novos programas, ou até mesmo configure servidores como o Samba e o Squid com o sistema rodando a partir do CD-ROM, sem qualquer alteração nos arquivos do HD. Isso permite uma liberdade muito grande para fuçar e brincar com o sistema, já que, em caso de problemas, basta reiniciar o micro e começar de novo.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X