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

< BIOS: O Programa que não para >


Canseira. A gente para de digitar, toma um cafezinho e pensa que é bom mesmo dar um descanso ao micro, trabalhando pesado nas últimas horas. E lá fica ele, imóvel. Toda sua atividade se resume em fazer piscar o cursor, certo ? Errado !!!

Durante nosso repouso a máquina continua inabalável sua faina incessante. A cada segundo o relógio interno do XT ajusta 18 vezes um lote de parâmetros, a tela é re-desenhada 60 vezes, uma série de portas são checadas um sem número de vezes (inclusive o teclado para verificar se não acabamos nosso descanso) e, literalmente, milhões e outras instruções são executadas. A verdade crua é essa: ligado, o micro jamais para de trabalhar sequer um nanossegundo.

Para o micro, "trabalhar" significa executar um programa. Logo, há um que roda permanentemente, mesmo quando nada parece ocorrer. Quem será esse ser onipresente ?

Esse incansável operário eletrônico é o BIOS, Sistema Básico de Entrada e Saída. Ele é o programa que controla diretamente o conjunto de circuitos e dispositivos que nós chamamos de micro. E o acesso nunca é direto - há sempre que se contar com um intermediário, seja um programa, seja o próprio DOS.

O BIOS é a parte do sistema operacional que cuida das coisas básicas que lidam diretamente com os circuitos da máquina. Como uma figura mitológica é um ente híbrido, meio hardware meio software. Uma parte é gravada em ROM: o ROM-BIOS ou BIOS permanente, fornecido pelo fabricante e incrustrado na placa mãe do micro. O restante vem em disco - o místico arquivo oculto Io.Sys do MS/DOS ou o mais prosaico Ibmbio.Com do IBM/DOS - fornecido juntamente com o sistema operacional.

A natureza híbrida do BIOS se deve justamente à sua função de integrar a máquina com os programas. A parte permanente perfaz serviços que dependem somente dos circuitos internos, que variam com o fabricante. Coisas ligadas apenas ao hardware, como transformar o toque numa tecla na exibição de um caractere no vídeo, ler um bit numa porta serial, ajustar o relógio ou pesquisar a lista de equipamentos instalados.

A parte que vem em disco também acessa a máquina diretamente, porém de uma forma dependente do DOS - que por sua vez usa o BIOS para grande parte de suas funções. Como é ligada à maneira pela qual o sistema operacional acessa a máquina, ela integra esse sistema e por isso é fornecida com ele.

Dizer que o BIOS trabalha desde o exato momento em que ligamos a máquina não é uma imagem retórica, mas a pura expressão da verdade: é ele o responsável pelo POST, Power On Self Test, ou autoteste de partida: aquela coisa chata que o micro teimosamente insiste em fazer toda vez que é ligado, nos informando que os tantos Kbytes de memória estão OK, nosso disco rígido é do tipo que já sabemos e tudo o mais. Mas não pense que isso é uma reles demonstração de exibicionismo barato ou mera gentileza para nos informar aquilo que já sabemos. Na verdade ele só põe aquelas mensagens na tela para nos distrair enquanto celeremente vasculha o interior da máquina para se informar, verificando se não nos aproveitamos de sua impotência enquanto desligado para solertemente trocar ou acrescentar algum dispositivo. E testa tudo o que encontra - daí as luzes de todos os drives se acenderem durante o POST.

Depois do POST, a inicialização. Como ser híbrido que é, o BIOS se sente pouco à vontade, indagando reaganeanamente onde estaria o resto dele mesmo - a parte que está em disco. Como lida somente com o hardware, não sabe o que é um "arquivo". Coisas assim complexas ficam para seu irmão mais sábio, o DOS. Mas, diligente, sabe muito bem o que é um disco, uma trilha e até mesmo um setor. E, rapidamente, tenta carregar na memória o primeiro setor da trilha zero do disco que está no drive A. Se não acha lá o que procura, tenta o drive C.

E qual é o objetivo desta sôfrega busca ? O "boot sector", ou setor de carga. Todo disco que contém o sistema operacional tem um programinha gravado nesse setor, que é carregado na memória pelo BIOS permanente e executado imediatamente. Não espere demais de um programa que cabe em um setor: ele apenas carrega um arquivo do disco e passa o controle para ele. Adivinhou que arquivo é esse ? Parabéns: é o "resto" do BIOS, o Io.Sys (ou Ibmbio.Com).

Incidentalmente, não reclame da aparente perda de tempo em procurar o sistema no drive A e só depois no C, onde qualquer ignorante sabe que ele está. No dia em que os perversos deuses dos discos rígidos amaldiçoarem os primeiros setores de sua winchester, você vai render homenagens aos sábios que lhe permitiram carregar o sistema a partir do drive A...

Depois que completou a si mesmo, sob a aparente calma de uma tela imóvel, o BIOS prossegue em sua frenética atividade. Relocando memória, se "ajeita" nas entranhas da máquina, e somente então carrega o Msdos.Sys (ou Ibmdos.Com), esse sim, o DOS ou Sistema Operacional de Disco. E, obediente, passa o controle para ele. Como seu trabalho de inicialização já terminou, carrega o DOS exatamente em cima do trecho de memória ocupado por suas rotinas destinadas àquele fim. Um pungente exemplo de autoimolação para lhe proporcionar mais memória.

E daí em diante o BIOS põe suas habilidades à disposição do DOS e de seus programas até o desligar da máquina. Discreto e invisível como os velhos mordomos, permanece cuidando das tarefas rotineiras e aparentemente desimportantes de manutenção da máquina. Quase desapercebido, avesso a notoriedades, permite que os louros das grandes realizações sejam galhardamente colhidos pelo DOS. Que sem o BIOS não seria capaz nem mesmo de acender um mísero ponto em sua tela...

B. Piropo