Como o Kurumin funciona

Por:
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 sistema compacto, que roda o instalador e 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.

Os live-CDs são distribuições Linux que rodam diretamente a partir do CD-ROM, sem necessidade de instalar. Um dos pioneiros nesta área é o Knoppix (derivado do Debian), que até hoje é um dos live-CDs de maior sucesso.

O Kurumin é um descendente direto dele, desenvolvido com base no Knoppix 3.1 (a versão mais recente no início de 2003) e desenvolvido de forma mais ou menos autônoma a partir daí, utilizando como base os pacotes do Debian, combinados com atualizações provenientes do Knoppix, Kanotix e de várias outras distribuições, além de um conjunto próprio de scripts e ferramentas de configuração, centralizadas na forma do Clica-aki:
k7_html_m48b7bd
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 na época o aparecimento do Knoppix foi considerado um verdadeiro marco dentro do mundo Linux.

A base de tudo é um módulo de Kernel chamado cloop, 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. É algo que funciona de forma similar às partições compactadas pelo smartdrive no Windows 95/98 (ainda lembrado pelos saudosistas :), mas com um desempenho melhor e otimizado para CD-ROMs.

Graças à compressão, uma distribuição como o Kurumin pode incluir cerca de 1.6 GB de programas em uma imagem ISO com menos de 600 MB. Além de reduzir o tamanho do sistema, comprimir os arquivos melhora também a taxa de transferência do CD-ROM, diminuindo a perda de desempenho causada pela baixa taxa de leitura.

A idéia é que um CD-ROM de 40X é capaz de ler a em média 4 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 40x lê a 6 MB/s nas trilhas externas mas a apenas 3 MB/s nas internas. Como o CD-ROM é gravado a partir do centro, na maior parte do tempo ele lê os dados a 3, 4 ou 5 MB/s.
k7_html_29160fe6
No entanto, ao ler 4 MB/s de dados compactados a uma razão de 3x, ele estará lendo, na prática, a quase 12 MB/s, quase a mesma taxa de transferência de um HD de uma década atrás. Naturalmente ainda existem outros problemas, como o tempo de busca, que é muito mais alto em um CD-ROM, mas o problema principal é bastante 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 outras distribuições, o desempenho (ao rodar do CD) 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.

Durante o boot, o sistema exibe vários detalhes sobre os componentes da máquina e mostra como eles estão sendo detectados pelo sistema. Estas mensagens são úteis para 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:
k7_html_m34b2bcc
Este trabalho de detecção é justamente o grande trunfo. Em poucos segundos o sistema é capaz de detectar, configurar e ativar todos os periféricos suportados na máquina, baseado nos códigos de identificação dos dispositivos, sem nenhuma intervenção do usuário.

Claro, sempre existem casos de problemas. Algumas placas-mãe travam durante a detecção do ACPI, alguns notebooks travam durante a etapa inicial, quando o sistema procura por placas SCSI e assim por diante. Mas, na grande maioria dos casos, estes problemas podem ser resolvidos desativando as partes da detecção que causam problemas, usando opções de boot.

Durante o boot, o Kurumin tenta sempre configurar automaticamente a rede, obtendo o IP e outros dados a partir de um servidor DHCP disponível na rede. Se a máquina acessar a internet através de uma conexão compartilhada dentro da rede local ou através de um modem ADSL configurado como roteador, ele já será capaz de acessar a web logo após o boot, caso contrário você pode configurar a rede manualmente, usando o painel de controle. Existem inclusive opções para ativar softmodems e placas wireless que não possuem suporte nativo no Linux, neste caso usando o ndiswrapper, que permite ativar a placa usando o driver do Windows XP.

Uma questão importante ao usar qualquer live-CD é a questão da memória RAM. Como o sistema por padrão não utiliza as partições do HD, tudo é feito usando a memória RAM, incluindo a instalação de novos programas. O ramdisk que é criado durante o boot vai crescendo conforme são feitas modificações. 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.

A instalação de novos programas é possibilitada pelo UnionFS, mais um hack que monitora tentativas de alterações nos arquivos do CD (originalmente impossíveis, já que o CD é somente-leitura) e engana os programas, fazendo-as no ramdisk, permitindo que você altere arquivos e instale novos programas, mesmo ao rodar o sistema a partir do CD. Este recurso está disponível a partir do Kurumin 5.0.

Você pode rodar o Kurumin tranqüilamente em micros com 196 MB de RAM, mas para usar o apt-get e instalar novos programas enquanto o sistema está rodando do CD, você precisa ter 512 MB. Em máquinas mais modestas, é recomendável instalar o sistema assim que possível, já que depois de instalado o sistema fica mais rápido e consome menos memória, por não precisar mais do ramdisk.

Outro recurso importante é o acesso às partições do HD, incluindo, naturalmente, o acesso às partições do Windows.

Muitas vezes existe a falsa impressão de que os aplicativos Linux utilizam formatos de arquivos próprios e você teria que começar tudo de novo. Isto não poderia estar mais longe da verdade :). Todos os formatos de arquivos padronizados, como imagens em .jpg, .png, .gif. .bmp, arquivos de áudio e vídeo em .mp3. .avi., etc., documentos em vários formatos e assim por diante são abertos sem problemas dentro do Linux. O sistema já vem configurado para abrir as extensões mais comuns nos programas apropriados quando você clica sobre os arquivos, de forma que acabam não existindo tantas diferenças assim em relação ao Windows. Mesmo os arquivos do Word e Excell são abertos sem grandes problemas no OpenOffice/BrOffice.

O maior problema são os formatos proprietários, usados por alguns programas. Arquivos .cdr, por exemplo, podem ser abertos apenas no próprio Corel Draw, mas você tem a opção de exportar seus trabalhos para um formato neutro (como o .svg), de forma que possa abri-los no Inkscape. É por questões como esta que é sempre recomendável manter o Windows em dual-boot nos primeiros meses (ou rodá-lo dentro do VMware), de forma que você possa converter seus documentos quando necessário.

Voltando à questão do acesso aos arquivos, o Kurumin detecta as partições disponíveis no HD durante o boot e adiciona ícones para elas dentro do “Meu Computador”, que pode ser acesso através do ícone no Desktop:
k7_html_m3b7f6e5c
Por padrão, ao clicar sobre o ícone de uma partição, ela é montada em modo somente leitura, onde você consegue acessar os arquivos, mas não consegue fazer alterações. Para mudar o modo de acesso, clique com o botão direito sobre o ícone e acesse a opção “Ações > Mudar para o modo leitura e escrita ou voltar para somente leitura”:
k7_html_297d6098
Para que todas as partições sejam acessadas em modo leitura e escrita por padrão, clique no ícone “Montar as partições em leitura e escrita” dentro do “Meu Computador”. Ele muda automaticamente o modo de acesso de todos os ícones. Você precisa clicar nele apenas uma vez para que a alteração se torne definitiva.

Um problema clássico do Linux era a falta de suporte à escrita em partições do Windows formatadas em NTFS. Isso foi resolvido no Kurumin 7, com a inclusão do NTFS-3G, um novo driver que derruba esta limitação, oferecendo acesso completo aos arquivos.

Ao clicar sobre o “Montar as partições em leitura e escrita”, o script detecta que você possui partições NTFS no HD e exibe uma mensagem perguntando se você deseja ativar o NTFS-3G. Como de praxe, é exibido um alerta avisando que existe uma pequena possibilidade de perda de arquivos (afinal, você pode perder arquivos até mesmo utilizando o próprio Windows…) e confirmando se você quer continuar:
k7_html_42998f0d
Respondendo “Sim”, a alteração é feita e você passa a ter acesso completo às partições NTFS do Windows. Muita gente utiliza este recurso para dar manutenção em máquinas Windows quando o sistema (Windows) deixa de dar boot. Afinal, você pode dar boot com o Kurumin, acessar a partição do Windows, modificar ou substituir arquivos danificados, fazer backup dos dados ou até mesmo usar o Clamav para remover os vírus.

Aproveitando que estamos aqui, vou falar um pouco mais sobre como o sistema identifica as partições do HD:

Cada dispositivo ou partição é acessado pelo sistema através de um device, um arquivo especial criado dentro do diretório “/dev”. Para entender a ordem usada para nomear estes dispositivos é preciso usar algumas noções de hardware.

Na placa-mãe você encontra duas portas IDE (primária e secundária), que são usadas para instalar o HD e CD-ROM. Cada uma das duas permite conectar dois dispositivos, de forma que podemos instalar um total de 4 HDs ou CD-ROMs na mesma placa. Os drives IDE “tradicionais”, que usam os cabos de 40 ou 80 vias, são chamados de “PATA”, contração de “parallel ATA”.
k7_html_73b0f9a8
Cada par de drives é instalado na mesma porta. Para diferenciar os dois é usado um jumper, que permite configurar cada drive como master (mestre) ou slave. O mais comum é usarmos apenas um HD e mais um CD-ROM ou DVD, cada um instalado em sua própria porta e ambos configurados como master. Ao adicionar um segundo HD, você poderia escolher entre instalar na primeira ou segunda porta IDE, mas de qualquer forma precisaria configurá-lo como slave, mudando a posição do jumper. Independentemente de ser um HD, CD-ROM ou qualquer outro tipo de dispositivo, os drives são detectados pelo sistema da seguinte forma:

IDE primária, master: /dev/hda
IDE primária, slave: /dev/hdb
IDE secundária, master: /dev/hdc
IDE secundária, slave: /dev/hdd

Os HDs Serial ATA (SATA) são vistos pelo sistema da mesma forma que HDs SCSI. Isso também se aplica a pendrives e outros dispositivos USB. Aqui entra uma história interessante: como o código é aberto, é muito comum que novos módulos sejam baseados ou utilizem código de outros módulos já existentes. O suporte a drives SCSI no Kernel é tão bom que ele passou a ser usado (com pequenas adaptações) para dar suporte a outros tipos de dispositivos. Na época do Kernel 2.4, até os gravadores de CD eram vistos pelo sistema como drives SCSI.

O primeiro dispositivo SCSI é detectado como “/dev/sda”, o segundo como “/dev/sdb” e assim por diante. Se você tiver um HD SATA ou pendrive, o drive é visto como “/dev/sda” e não como “/dev/hda”, como seria se fosse um drive IDE.

Se você tiver um HD SATA e um pendrive instalados na mesma máquina, então o HD será visto como “/dev/sda” (pois é inicializado primeiro, logo no início do boot) e o pendrive como “/dev/sdb”. Se você plugar um segundo pendrive, ele será visto como “/dev/sdc” e assim por diante. Ao contrário dos dispositivos IDE, os devices são definidos seqüencialmente, conforme o sistema vai detectando os dispositivos. Quem chega primeiro leva.
k7_html_m453a3745
Se você tiver um HD IDE e um pendrive, então o HD será visto como “/dev/hda” e o pendrive como “/dev/sda”. Uma observação é que em muitas placas você encontrará uma opção dentro do Setup que permite colocar as portas SATA em modo de compatibilidade (Legacy Mode ou Compatibility Mode, dependendo da placa). Ao ativar esta opção, seu HD SATA passará a ser visto pelo sistema como “/dev/hda”, como se fosse um HD IDE normal. Esta opção é útil ao instalar distribuições antigas, que ainda não oferecem um bom suporte a HDs SATA.

Em seguida vem a questão das partições. Ao invés de ser um espaço único e indivisível, um HD é como uma grande sala comercial, que pode ser dividida em vários escritórios e ambientes diferentes. Ao instalar o sistema operacional, você tem a chance de particionar o HD, onde é feita esta divisão. É sempre recomendável usar pelo menos duas partições separadas, uma para o sistema e outra para seus arquivos. Isto permite reinstalar o sistema sempre que necessário, sem perder seus arquivos e configurações.

No Linux existe ainda a necessidade de criar uma partição separada para a memória swap. Esta partição utiliza uma organização própria, otimizada para a tarefa. Embora um pouco mais complicada, esta abordagem faz com que o acesso seja mais rápido que no Windows, onde o swap é feito dentro de um arquivo, criado na partição de instalação de sistema.

Existem diversos programas de particionamento, os mais usados no Linux são o cfdisk, o gparted e o qtparted. Muitas distribuições incluem particionadores próprios. O Mandriva, por exemplo, inclui o diskdrake.
k7_html_m4b7b26b0
Acima temos um screenshot do Gparted. Como pode ver, cada partição recebe um número e é vista pelo sistema como um dispositivo diferente. A primeira partição do “/dev/hda” é vista como “/dev/hda1” e assim por diante. O mesmo acontece com os pendrives, que do ponto de vista do sistema operacional são uma espécie de HD em miniatura.

O sistema nunca acessa os dados dentro da partição diretamente. Ao invés disso, ele permite que você “monte” a partição em uma determinada pasta e acesse os arquivos dentro da partição através dela, o que é feito usando o comando “mount“. Por baixo dos panos, é justamente isso que acontece quando você clica sobre os ícones das partições dentro do “Meu Computador”.

A sintaxe básica inclui o dispositivo e a pasta onde ele será acessado, como em:

# mount /dev/hda2 /mnt/hda2

O mais comum é que as partições “extras” sejam montadas dentro da pasta “/mnt”, que é própria para a tarefa, mas isso não é uma regra; você pode montar as partições em qualquer pasta vazia. Não se esqueça de criar a pasta desejada (se necessário), usando o comando “mkdir”.

No caso do CD-ROM, citamos apenas o dispositivo, sem incluir a partição (já que um CD-ROM não pode ser particionado, como um HD). Você pode tanto usar o dispositivo correto, como “/dev/hdc” ou “/dev/hdd”, quanto usar o “/dev/cdrom”, um link que é criado pelo sistema apontando para a localização correta:

# mount /dev/cdrom /mnt/cdrom

Se quiser trocar o CD que está na bandeja, você deve primeiro “desmontar” o CD-ROM, com o comando “umount /mnt/cdrom“. O mesmo se aplica a pendrives e HDs externos: é sempre necessário desmontar antes de remover o dispositivo. No caso dos pendrives e HDs, desmontar é fundamental, pois as alterações não são necessariamente salvas imediatamente por causa do cache de disco. Removendo sem desmontar, existe uma probabilidade muito grande das últimas alterações serem perdidas. É muito comum as pessoas gravarem arquivos no pendrive, desplugarem logo depois (sem desmontar) e, ao tentar acessá-los depois, perceberem que os arquivos simplesmente não foram gravados.

Um problema comum em relação ao CD-ROM é que o sistema (por segurança) não permite que você ejete o CD enquanto qualquer programa o estiver acessando. Isto é frustrante às vezes, pois muitas vezes você está com muitas janelas abertas e não se lembra qual programa usou para acessá-lo.

O ícone “Ejetar o CD-ROM” dentro do “Meu Computador” é justamente uma forma emergencial de ejetar o CD, “custe o que custar”. Ele procura e encerra todos os programas que estiverem acessando o CD-ROM e em seguida desmonta e ejeta o CD. Os comandos executados por ele, caso queira fazer manualmente, são:

# fuser -k /mnt/cdrom
# umount /mnt/cdrom
# eject /mnt/cdrom

Se por acaso você tiver um drive de disquetes (em que século você vive? :), o comando para montá-lo manualmente é “mount /dev/fd0 /mnt/floppy” e, para desmontá-lo, “umount /mnt/floppy”. Assim como no caso dos pendrives, é importante desmontar antes de remover o disquete do drive.

Os pontos de montagem, ou seja, as pastas onde as partições serão montadas, podem ser configurados através do arquivo “/etc/fstab“. Quase sempre este arquivo é configurado durante a instalação, incluindo referências a todas as partições e CD-ROMs disponíveis, de forma que você pode montar as partições digitando apenas “mount /mnt/hda6” (por exemplo), sem precisar usar o comando completo.

Uma observação importante sobre as partições (já prevendo que talvez você leia este tutorial bem depois de publicado) é que, a partir do Kernel 2.6.20, teremos uma grande mudança no conjunto de drivers para partas IDE. Os drivers para HDs IDE serão integrados dentro do mesmo conjunto de drivers que são usados para os HDs SATA. Isso fará com que todos os HDs passem a ser nomeados como “/dev/sda” e “/dev/sdb”, como se fossem HDs SATA.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X