Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
15/04/1991

< DOS: O Dono da Máquina >


Meus primeiros tempos de micreiro eram cheios de sobressaltos. Tudo era mistério. Palavras místicas, prenhes de significados ocultos - algumas sem sentido aparente - permeavam minha vida. Da primeira vez que ouvi falar em joystick, mesmo sem ter a mínima idéia do que fosse, tive a certeza de que com um nome desse, não podia ser coisa que prestasse...

Dentre os mistérios da máquina, um sobretudo me intrigava: quais seriam os tenebrosos desígnios do sistema operacional? Para que sinistro fim teria sido desenvolvida aquela coisa diabólica, se tudo que ela fazia poderia ser feito do BASIC residente da máquina? Se "files" me mostrava os arquivos do disco, para que "dir"? Se renomear, copiar, apagar e mais o que me desse na telha fazer com arquivos poderia ser feito depois do OK do BASIC, por que complicar e faze-lo do C:>? A mim parecia que aquela coisa não tinha a menor serventia exceto atazanar a minha pobre vida de micreiro ignorante.

Pois ignorância era o que não me faltava. Mas, felizmente, e citando P. J. Plauger , enquanto a estupidez é um estado permanente, a ignorância é apenas falta de conhecimento e tem um caráter eminentemente transitório. E com algum aprendizado, compreendi a imensa tolice embutida naquele raciocínio. Para entender porquê, vamos retroagir para a época das primeiras máquinas.

No princípio era o caos. Micros pessoais, nem pensar. Os computadores, mais conhecidos pelo intimidante apodo de cérebros eletrônicos, eram máquinas imensas e mal humoradas. Vídeo e teclado eram sonhos futuristas: entrava-se dados com cartões penosamente perfurados e resultados eram vomitados em longas e cabalísticas folhas impressas. E os programadores, senhores, eram senhores programadores! Pois nada havia que facilitasse seu trabalho. Cada operação, por mínima que fosse, havia que ser laboriosamente incorporada ao programa, desde a leitura dos cartões até a impressão de cada caractere do resultado final. E isso não ocorreu na pré-história: eu mesmo vi operar um desses colossos - há menos de três décadas.

As coisas evoluíram. Teclados e vídeos tornaram mais fácil a interação com as máquinas. Os micros pessoais foram desenvolvidos. E vieram os mouses, modems, scanners e esse mundo de penduricalhos que circundam nossas máquinas. E que trouxeram com eles um novo universo de complexidades.

Imaginem se para usar toda essa parafernália, cada programador tivesse que introduzir em seus programas todas as rotinas necessárias para acessar a cada uma dessas bugigangas, incluindo teclado, vídeo e discos. Com tanto trabalho braçal, onde iriam eles buscar alguma criatividade?

Porém como evita-lo se, com raras exceções, qualquer programa que se preze deve permitir um mínimo de interação com o usuário e alguns periféricos? Mas se houvesse um programa que permanecesse sempre residente e fosse capaz de prover as rotinas básicas de acesso a disco e demais periféricos, além de oferecer serviços gerais como gerenciar memória, carregar os outros programas e cuidar do funcionamento básico da máquina enquanto eles estivessem rodando, o programador seria poupado dessas tarefas para se dedicar apenas a seu programa...

Pois não é que essa maravilha existe? E, claro, você já adivinhou seu nome: sistema operacional. No PC, Sistema Operacional de Disco ou, para os íntimos, apenas DOS.

Na verdade DOS é o nome do sistema operacional introduzido pela IBM para gerir os seus primeiros PCs. Antes, a maioria dos micros pessoais era controlada pelo vetusto CP/M, de quem o DOS herdou a maior parte de suas funções e até mesmo seu prompt. Mas, infelizmente, não o nome, bastante mais apropriado: Programa de Controle de Microcomputadores. Pois esse "disco" aí no nome do DOS só serve para confundir e fazer crer que suas funções se limitam somente aquilo que diz respeito a discos. Mesmo estando de fato a maioria das ações do DOS ligadas a isso - pois discos ainda são o principal periférico de nossos micros - o DOS faz muito mais.

A coisa funciona mais ou menos assim: o DOS é um programa residente que consiste em um enorme número de rotinas capazes de perfazer uma infinidade de pequenas tarefas necessárias a maioria dos programas. Que se chamam, muito apropriadamente, "serviços". Se o seu programa precisa, digamos, de apagar um arquivo do disco, ele pede ao DOS que o faça. Essa solicitação é feita de uma forma previamente determinada pelo sistema operacional, acionando ao que se convencionou chamar de "interrupção". E com propriedade: o programa, de fato, interrompe sua execução, passa os dados - no exemplo, o nome do arquivo a ser removido - e o controle do micro ao DOS que disciplinadamente atende ao pedido e devolve o controle ao programa. Que prossegue então do ponto em que solicitou a interrupção. Aos detalhistas, no exemplo acima o programa acionou o serviço 65 da interrupção 33. E o arquivo desaparece do disco sem que o programador tenha que se preocupar com os maçantes detalhes de modificar diretório, tabela de alocação de arquivos e coisas afins. O próprio DOS se encarrega disso.

Se você tiver a pachorra de consultar um guia de referência do DOS, vai verificar que ele usa doze diferentes interrupções e oferece mais de 150 serviços e sub-serviços distintos que abarcam desde todas as tarefas que você puder imaginar envolvendo acesso a discos até coisas como o controle do mouse, envio de dados para a impressora, tela e leitura do teclado. Cujo escopo, evidentemente, vai muito além deste livro. E com detalhes que interessam apenas aos programadores.

Aos micreiros em geral, porém, deve interessar a forma pela qual se dá essa interação. E agora nós podemos ter uma idéia bastante concreta da coisa toda, pois já dispomos de informações que nos permitem traçar uma hierarquia dentro da máquina. O que faremos logo.

B. Piropo