Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
12/10/1992

< Pedaços do DOS I: >
< Comandos Externos e Internos >


Recentemente, na faina de responder cartas, deparei-me com esta jóia de concisão da Glória Serrano, de Niterói:

"Caro Piropo: Adorei seu livro sobre o XTree. Mas o eterno problema é o espaço no winchester: que arquivos do DOS 5 podem ser apagados, como por exemplo o DosShell que não uso e não gosto? Tenho pouca experiência e fico com medo de apagar um arquivo fundamental ao sistema. Obrigada e um abraço"

Puxa, que simpática! Já ia começar a resposta, agradecendo o elogio sobre o livro e fazendo a listinha dos arquivos imprestáveis, quando derrepentemente me ocorreu perguntar a mim mesmo como me sentiria se recebesse uma resposta assim singela. Fui dar uma olhada no meu diretório DOS: Se um piropo qualquer me mandasse apagar metade daquilo, será que eu apagaria assim sem mais nem menos? Se não me fosse explicado o como e o porque, nem morta!

Se você é pessoa organizada, provavelmente os arquivos de seu sistema operacional estão todos juntos em um mesmo diretório, o C:\DOS. Verifique o que lá está: oitenta e tantos arquivos, mais de 2Mb. Aquele monte de código não está lá por acaso: cada arquivo deve servir para alguma coisa. Mas será que todos eles são de fato úteis para você? Se não, e se não sobra espaço em seu disco rígido, porque mantê-los lá?

Por isso vamos começar uma viagem pelos arquivos do DOS. Veremos o que cada um deles faz, para que serve, como, quando e se poderão um dia ser úteis. Depois, cada um de nós será juiz de seu próprio DOS: o bicho não presta? Lixo. Mas antes é preciso saber o que se está jogando fora.

Mas antes se faz necessário discutir alguns pontos. Começando pela diferença entre comandos "internos" e "externos". Pois todos os manuais e livros sobre o DOS os mencionam, e as explicações que tenho encontrado em geral lançam mais trevas que luz sobre a escuridão. Tentemos iluminar.

O DOS, sabemos todos, é um sistema operacional: um conjunto de rotinas e programas que controlam a máquina e permitem interagir com ela. Parte dele é carregado ao se ligar a máquina, fica lá tomando conta de tudo e permanece carregado enquanto a máquina está ligada. Se um programa necessita interagir com a máquina, basta pedir ao sistema operacional o "serviço" correspondente.

Mas os "serviços" são prestados aos programas. E nós? Como fazer para copiar um arquivo ou formatar um disco quando não há nenhum aplicativo carregado? Bem, para isto existem os "comandos". Que nada mais são que um meio de permitir ao usuário acessar os serviços do sistema. Quer copiar um arquivo? Use o comando "copy". Formatar um disco? Comando "Format".

Para isto não foi necessário modificar a estrutura do DOS: os serviços continuam sendo prestados aos programas. O que se faz é algo muito mais simples: carregar um programa auxiliar que solicita os serviços. Este programa é o Command.Com, o processador de comandos. Serve para acessar as rotinas do sistema operacional, ou "processar" os comandos que o usuário solicita diretamente da linha de comando. O Command.Com é automaticamente carregado toda a vez que a máquina é ligada. Se você carrega outro programa, ele sai, dá lugar ao programa e depois é carregado novamente (se você já trabalhou com um PC sem disco rígido, agora sabe porque toda a vez que se termina um programa a máquina vai procurar pelo Commmand.Com no drive A e reclama se não encontra).

O Command.Com, portanto, contém chamadas às rotinas internas que executam os comandos. Tudo funcionava muito bem enquanto o DOS era mais simples. Depois, a medida que mais comandos iam sendo acrescentados, a coisa ficou mais complicada. Se todas as chamadas fossem incorporadas ao Command.Com, ele ficaria enorme. Então decidiu-se o seguinte: os comandos usados mais freqüentemente, ou essenciais ao sistema, teriam suas chamadas mantidas no Command.Com. Outros, funcionariam como programas independentes. Por exemplo: o comando "format" nada mais é que um programa em si mesmo. Procure seu arquivo executável no diretório DOS: lá está ele, o Format.Com. Quer formatar um disco? Comande "format". O Command.Com sai, o programa Format.Com é carregado, o disco formatado, Format.Com descarregado e Command.Com carregado novamente. Parece complicado mas funciona tão bem que a gente nem percebe.

Pois bem: agora fica fácil entender que comandos internos são aqueles como "copy", "dir", que fazem parte do Command.Com. Os externos são programas independentes, como " format", "mode" e "attrib". Portanto, não é preciso ser gênio para perceber que a cada comando externo corresponde um arquivo executável no diretório DOS.

Agora já podemos discutir que tipos de arquivos existem neste diretório. Grande parte deles são arquivos executáveis correspondentes aos comandos externos. Como bons executáveis que são, têm a extensão .Com ou .Exe. Não espere uma explicação detalhada sobre cada um deles: afinal, o manual do DOS 5 é basicamente isto e tem mais de setecentas páginas. Portanto, serei sucinto.

Outros são gerenciadores de dispositivos, ou drivers. Em geral, mas não necessariamente, têm a extensão .Sys. Outros ainda são pequenos utilitários, ou programas auxiliares.

Finalmente, há os arquivos auxiliares e os de informações. E, evidentemente, os de sistema - embora os mais importantes sejam justamente aqueles que não ficam no diretório DOS, mas no raiz.

Por último, um ponto importante: a lista de arquivos varia com o sistema operacional (MS-DOS, DR-DOS ou IBM-DOS, por exemplo) e com a versão. Não teria sentido discutir diferenças entre sistemas ou entre versões. Por isto, vamos nos fixar na versão 5.0 do MS-DOS. Apenas pelo fato de ser a mais popular.

Pois é isto. Preparem-se para a longa discussão que o assunto exige. Afinal, são mais de oitenta arquivos. Mas tenho certeza que vai ser muito útil, e não apenas para economizar espaço em disco: vocês verão como, depois de examinar seus arquivos, o DOS parecerá menos misterioso.

B. Piropo