Tiny Core

O Tiny Core é uma mini-distribuição relativamente nova, desenvolvida por um time de desenvolvedores dissidentes do Damn Small Linux. Ele eleva o termo “minimalista” a um novo patamar, com inacreditáveis 10 MB.

Diferente do que poderia parecer à primeira vista, não se trata de alguma mini-distribuição em modo texto, apenas com alguns utilitários básicos, mas sim de um sistema relativamente completo, com ambiente gráfico e um gerenciador de pacotes que permite instalar aplicativos adicionais. A ideia é oferecer um sistema minimalista, que rode com desenvoltura em qualquer máquina, no qual você possa adicionar os softwares desejados através de módulos. A página oficial é a http://www.tinycorelinux.com/.

Uma das vantagens de ser tão pequeno é que ele roda inteiramente a partir da memória RAM. Diferente de outras distribuições, onde o kernel (o arquivo /boot/vmlinuz) é copiado para a memória RAM no início do boot e o restante do sistema é inicializado a partir do HD ou CD-ROM, no Tiny Core todo o sistema é armazenado em um arquivo compactado que, assim como o kernel, também é descompactado na memória RAM logo no início do boot.

Como pode imaginar, isso faz com que ele seja extremamente rápido, já que o único gargalo é o barramento entre o processador e a memória, mas, por outro lado, também exige diversas concessões. Em vez de utilizar o X.org, por exemplo o Tiny Core é baseado no Tiny X, um servidor gráfico que utiliza os modos VESA (com alguns tweaks para aumentar o volume de resoluções suportadas) para acesso direto ao vídeo. Ele inclui também apenas um pequeno conjunto de módulos de kernel, o que limita o suporte a dispositivos.

Por default, o Tiny Core não inclui praticamente nenhum aplicativo (afinal, se viesse com o Firefox e o OpenOffice, não poderia ser chamado de “Tiny Core” :p), de forma que a primeira coisa a fazer é abrir o appbrowser e instalar alguns módulos de aplicativos. Para isso, clique no “Connect > TCZ” e escolha entre os módulos da lista:

O gerenciador é surpreendentemente competente, baixando também as eventuais dependências das extensões, tudo automaticamente. Embora a facilidade de uso não esteja entre as prioridades, o Tiny Core é bastante intuitivo. Conforme você vai instalando módulos, são criados ícones para os aplicativos na barra inferior, que faz o papel de lançador de programas:

O ponto fraco da abordagem é que os módulos precisam ser desenvolvidos especialmente para o Tiny Core e, como não é possível (pelo menos nas versões iniciais) instalar pacotes de outras distribuições, você fica limitado aos módulos existentes. Entretanto, não deve demorar para que alguém apareça com alguma maneira de converter pacotes do Slackware ou do Debian em módulos do Tiny Core, o que resolveria o problema.

Muitos componentes que damos certos em outras distribuições, precisam ser instalados através do gerenciador. Para adicionar o suporte a placas wireless, por exemplo, você precisa instalar os módulos “wireless”, “wireless_tools” e “wpa_supplicant”.

O gerenciador de janelas é o JWM (o mesmo usado no Puppy), configurado para se comportar de maneira similar ao Fluxbox, onde o iniciar é acessado clicando com o botão direito sobre uma área vazia da área de trabalho.

Para poupar espaço, o Tiny Core utiliza o BusyBox como interpretador de comandos (no lugar do Bash), mas você perceberá que a maioria dos comandos básicos estão disponíveis. O ícone para o terminal na barra abre um terminal em modo de usuário, mas você pode abrir um terminal de root no “XShells > Root Access > Light”.

Como de praxe, o Tiny Core suporta diversas opções de boot, que podem ser usadas para configurar o sistema e solucionar problemas. Você pode ver a lista pressionando as teclas F2 e F3 na tela de boot. Para que ele pergunte a resolução (em vez de usar o default de 1024×768), por exemplo, use a opção “tinycore xsetup“.

É possível também fazer com que ele salve os módulos instalados e os arquivos salvos no diretório home em um pendrive ou em uma partição do HD usando as opções “tce=” e “home=”, como em “tce=sda1 home=sda1“. Isso faz com que ele crie dois diretórios na partição selecionada e passe a montá-los automaticamente nos boots seguintes.

Você pode também criar versões modificadas do CD, incluindo diretamente os módulos desejados (afinal, chega a ser um desperdício usar uma mídia para gravar apenas 10 MB 🙂 de forma bastante simples.

Comece (a partir de outra distribuição Linux) copiando o arquivo ISO para uma pasta qualquer e crie duas subpastas:

# mkdir tinyiso
# mkdir novo

Em seguida, monte o arquivo ISO na primeira pasta e copie os arquivos para a segunda:

# mount -o loop tinycore_1.3.iso tinyiso
# cp -a tinyiso/* novo/
# mkdir novo/tce/

Como pode imaginar, a pasta “novo” contém os arquivos do nosso novo ISO. A pasta “tce” que criamos no último comando é a pasta onde o sistema procura os módulos durante o boot. Basta colocar todos os módulos desejados dentro dela para que o sistema os ative automaticamente. Você pode baixar os módulos no:
http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/tce.html

Muitos dos módulos dependem de outros módulos (a maioria dos aplicativos gráficos precisam do “gtk+-2” e do “glib2”, por exemplo), por isso é importante checar o arquivo de informações de cada um e baixar também as dependências, citadas no campo “requires”.

Depois de terminar, use o comando a seguir para gerar o novo ISO. O “MeuTiny” especifica o nome do projeto, o “tiny.iso” é o arquivo que será gerado e o “novo/” é o diretório onde estão os arquivos:

mkisofs -l -J -V MeuTiny -no-emul-boot -boot-load-size 4 \
-boot-info-table -b boot/isolinux/isolinux.bin -c \
boot/isolinux/boot.cat -o tiny.iso novo/

Uma observação é que os arquivos “.tce” são descompactados na memória no início do boot (assim como o kernel) por isso eles acabam consumindo um volume três vezes maior (aproximadamente) de memória que os arquivos originais. Em outras palavras, se você colocar 50 MB de módulos dentro da imagem, o sistema vai consumir 150 MB a mais de RAM no boot.

Para reduzir o consumo de memória ao usar muitos módulos, existe a opção de usar os módulos TCZ, que são montados diretamente (rodando a partir do CD), reduzindo o uso de memória.

Existe também a possibilidade de instalar o sistema no HD ou em um pendrive. Nesse caso, você precisa copiar a pasta “boot” e a pasta “tce” (caso usada) para o diretório raiz da partição e fazer uma instalação simplificada do grub, para que ela se torne inicializável (como detalhado no http://tinycorelinux.com/install.html).

É possível também instalar o Tiny Core em “dual boot” com outra distribuição Linux já presente no HD. Nesse caso, a instalação consiste em apenas copiar os arquivos “bzImage” e “tinycore.gz” para dentro da pasta “/boot” e adicionar uma seção adicional no final do arquivo “/boot/grub/menu.lst” da distribuição instalada, como em:

title TinyCore
uuid 77e43f2e-063f-4e4f-8708-be403c49a492
kernel /boot/bzImage quiet xsetup
initrd /boot/tinycore.gz

A opção “uuid” é usada no caso de distribuições que usam UUIDs para identificar as partições, como no caso do Ubuntu. Basta copiar o valor do UUID a partir da entrada principal. A opção “xsetup” faz com que ele exiba o configurador do Tiny X no boot, permitindo que você ajuste a resolução do vídeo.

Para completar, crie os diretórios “/tce” e “/home/tc” no diretório raiz da partição, para permitir que o Tiny Core salve os módulos instalados e os arquivos do home:

# mkdir /tce
# mkdir /home/tc

Opcionalmente, você pode criar o arquivo “mydata.tgz”, que é usado pelo Tiny Core para salvar os arquivos e configurações ao marcar a opção “backup” no menu de desligamento:

# touch mydata.tgz

Essa instalação em “dual boot” do Tiny Core funciona muito bem como um sistema de instant-on, para quando quiser apenas fazer alguma tarefa rápida ou ouvir música (instale o “audacious” pelo gerenciador). O boot é mesmo muito rápido.

Concluindo, o Tiny Core é um dos projetos mais interessantes que vi nos últimos anos. Entre tantas distribuições criadas apenas para serem remasterizações de outras distribuições existentes, mudando apenas o papel de parede e o elenco de aplicativos instalados, o Tiny Core é um exemplo de como alguém pensando fora da caixa pode aparecer com conceitos revolucionários.

É cedo para dizer se algum dia o Tiny Core vai deixar de ser apenas uma mini-distribuição para uso como sistema de emergência e instalação em pendrives, mas existe uma chance de que ele venha a ser usado em netbooks (já que é incrivelmente leve e ocupa pouco espaço) ou como um sistema de boot instantâneo para vir pré-instalado em placas-mãe, similar ao SplashTop, que vem pré-instalado em algumas placas da Asus. Ele é também uma boa plataforma para o desenvolvimento de sistemas de recuperação, terminais leves e sistemas especializados em geral.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X