Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
03/01/94

< Coragem >


Antigamente os programas se espremiam em um único arquivo Exe ou Com e temos conversado. Quando queríamos nos livrar de um, bastava apagar seu arquivo do disco. Do disco flexível, bem entendido, pois as pesquisas arqueológicas indicam que naqueles dias, conhecidos como a era do byte lascado, para se comprar um disco rígido havia que se ter mais grana que anão do orçamento. Era a pré-história da informática pessoal, há pouco mais uma década... Depois, discos rígidos se tornaram mais baratos, e por conseguinte menos raros.

O primeiro que vi, há quase dez anos, era uma vetusta trapizonga do tamanho de uma caixa de sapatos repousando solene ao lado do micro, onde cabiam espantosos dez Mb. Eu, pasmo diante de tal milagre da tecnologia, o examinei com o devido respeito, quase veneração, externando minha profunda admiração pelo fato de tanto conteúdo caber em tão exíguo continente. Hoje, mais de cem Mb cabem em uma coisica do tamanho de uma caixa de fósforos e ninguém mais se admira. Sinal dos tempos... Os programas, evidentemente, diante de tanto espaço, aproveitaram-se.

Os de extensão Com, limitados a 64K por uma característica congênita, escassearam. E os Exe cresceram. Quando chegaram perigosamente próximos do limite de 640K que o DOS destina aos programas, espalharam-se em arquivos auxiliares. Cada programa vinha com mil penduricalhos: programetos de instalação, arquivos de configuração, programas de conversão de formatos, o diabo. Os programas fragmentaram-se em dezenas de arquivos: meu XTree, por exemplo, tem quase cem arquivos, e não instalei todos os auxiliares. Mas ainda assim era possível alguma organização, desde que se copiassem todos os arquivos do programa em um único diretório. Todo o necessário para fazer um bicho desses desaparecer sem deixar traços era remover seu diretório e, no máximo, apagar algumas linhas dos arquivos Autoexec.Bat e Config.Sys. Aí apareceram as interfaces gráficas, como Windows e a Workplace Shell do OS/2 com suas DLL e arquivos Ini. E tudo se complicou. DLL é o acrônimo de "Dynamic Link Library", ou "biblioteca de ligação dinâmica". Simplificadamente, é um conjunto de funções que, como os livros de uma biblioteca pública, ficam à disposição de qualquer freguês. São chamadas "de ligação dinâmica" por somente serem "ligadas" ao programa no momento da execução. A coisa funciona assim: imagine Windows como um super-programa que, ao ser carregado, toma conta da máquina, sobrepondo-se ao sistema operacional. Ao ser chamado do prompt do DOS, ele carrega um bocado de código na memória. Inclusive um punhado de DLLs. Elas ficam lá, pondo suas funções à disposição dos programas. Por exemplo: a maior parte das funções relativas à impressão fazem parte de uma delas, a Unidrv.Dll (Universal Printer Driver Library). Qualquer programa pode usá-la para enviar a saída para a impressora. Há DLLs com funções de vídeo, de troca de informações entre programas (via DDE ou OLE) e mais dezenas de outras atividades. Até aí, tudo bem.

É justamente através das DLLs, entre outras maneiras de compartilhar recursos, que Windows consegue padronizar aplicativos. O problema é que qualquer programa pode ter suas próprias DLLs, cujos arquivos são copiados para o disco rígido durante a instalação. Muitas delas para o próprio diretório do programa. Mas algumas, por exigência do sistema, vão diretamente para o diretório Windows ou seu sub-diretório System. Já arquivos Ini são arquivos texto contendo informações sobre a configuração de programas Windows. Os dois mais importantes são o Win.Ini e System.Ini, com informações que o próprio Windows precisa conhecer ao ser carregado. Mas quase todo programa Windows usa seu próprio arquivo Ini, criado durante a instalação, em geral no diretório Windows. Além de modificar os arquivos Win.Ini e System.Ini para que Windows tome conhecimento de sua existência. Pronto: com isso, ao se instalar um programa Windows, instala-se também o caos. Pois além de criar seus diretórios, pode espalhar arquivos Ini e DLLs em outros diretórios e modificar Win.Ini, System.Ini, Autoexec.Bat e Config.Sys. Enquanto está em uso, tudo bem.

O problema surge quando se desiste dele. Remover o diretório, o arquivo Ini e seu ícone da tela, é fácil. Remover a seção correspondente do arquivo Win.Ini, assim como desfazer as alterações do Autoexec.Bat e Config.Sys requer algum engenho e arte, mas também não mata ninguém. Porém como identificar as mudanças no System.Ini e saber que DLLs do diretório Windows e System "pertencem" só ao programa e podem ser removidas sem fazer falta? Resultado: em uma máquina como a minha que, embora familiar, é de alta rotatividade (pois como avaliar programas sem instalá-los, e como abrir espaço para avaliar outros sem desinstalá-los?), acumulam-se linhas desnecessárias nos arquivos Win.Ini e System.Ini que só servem para retardar a carga de Windows e desnecessários arquivos Dll que só servem para congestionar o disco rígido. O problema é tão sério que as nossas primeiras dicas Windows buscavam justamente identificar as alterações depois da instalação de cada programa Windows.

E há um programa, o Uninstaller, cuja única função é remover programas Windows sem deixar traços no HD. Mas, mesmo sabendo de tudo isso, já perdi a conta dos programas Windows que instalei e desinsntalei "na marra", sem tomar os cuidados necessários para identificar as mudanças e desfazê-las depois. E tudo o que foi dito sobre Windows vale também para o OS/2, tanto no que toca às DLLs quanto aos arquivos Ini. Nos meus dois HD há setecentos e vinte e oito arquivos DLL ocupando mais de cinqüenta Mb e cento e cinqüenta e um arquivos Ini ocupando mega e meio - incluindo os de Windows e OS/2. Quantos são desnecessários? Não faço a menor idéia. Na sua máquina, você sabe? E agora, como desfazer a bagunça?

Na sua máquina, não sei. Pois depende da quantidade de programas desinstalados, de mudanças não desfeitas e de coragem. Por que coragem? Porque a única solução decente que conheço é fazer um backup dos arquivos de dados, reformatar o HD, instalar de novo o DOS, Windows, OS/2, os programas, reconfigurar tudo e restaurar os arquivos de dados.

Estou me preparando para, um dia destes, fazer isso na minha máquina. Não fiz ainda justamente por falta de coragem.

B. Piropo