Micro Cosmo
Volte
01/01/96

< Estendendo o BIOS >


Como vimos, o sistema operacional nada mais é que um programa que controla a máquina. Ora, ainda não sabemos exatamente o que significa esse negócio de “controlar a máquina” (tenha paciência que logo chegaremos lá) mas, seja o que for, deve ser capaz de “controlar” todos os componentes - pois eles também fazem parte da máquina. Inclusive aqueles que vierem a ser adicionados mais tarde, como por exemplo os hoje tão comuns “kits multimídia” com suas placas de som e drives CD- ROM.

Semana passada vimos que o sistema básico de entrada e saída, ou BIOS, é um conjunto de rotinas que integram o sistema operacional. E que parte dele, justamente a parte que corresponde às rotinas que se entendem diretamente com o hardware, vem gravada em um chip de memória ROM incrustado na placa-mãe. O mesmo chip que contém as rotinas do POST e que, justamente por conter também parte do BIOS, é conhecido pelo nome de ROM-BIOS.

Pois bem: um belo dia você resolveu incrementar sua máquina e, seguindo rigorosamente as instruções do fabricante, enfiou um kit multimídia dentro dela e instalou o software correspondente. A partir de então ela passa a fazer coisas que antes jamais sonhara, como tocar as músicas daquele grupo de intelectuais chamado Mamonas Assassinas. Controlada, é claro, pelo sistema operacional. Mas como foi que um sistema operacional antes tão bem comportado aprendeu repentinamente a fazer uma coisa tão estranha?

Bem, parte das rotinas necessárias ao controle da placa de som e do drive CD-ROM recém incorporados à máquina é carregada da forma convencional, lendo-as do disco e transferindo-as para a memória durante o processo de boot (que afinal examinaremos semana que vem) através de um engenhoso expediente denominado “gerenciadores de dispositivos” (ou device drivers), capaz de incorporar rotinas adicionais ao sistema operacional quando elas são necessárias para controlar um novo dispositivo.

Mas as rotinas contidas nos gerenciadores de dispositivos em geral são genéricas, capazes de controlar quaisquer placas de som e drivers CD-ROM do mesmo tipo. As rotinas específicas daquela marca de placa e de drive, rotinas capazes de lidar com suas idiossincrasias, estas são fornecidas pelo fabricante da placa e do drive e vêm gravadas em um chip de memória ROM. Um chip que não é encaixado na placa-mãe, mas sim naquela placa que espetamos em uma das fendas (ou “slots”) da placa-mãe. Que no caso do kit multimídia chamamos de “placa de som” mas que, além dos componentes eletrônicos necessários para gerar os maviosos sons produzidos pelos sisudos cavalheiros do conjunto musical supracitado, contém também todos os circuitos de controle do drive CD-ROM. E que, por isso mesmo, tecnicamente é conhecida pelo nome de “placa controladora de dispositivo”, ou mais simplesmente “controladora”.

Esses chips de memória ROM que fazem parte das placas controladoras de dispositivos são chamados “extensões do BIOS” (BIOS extensions) e contém não apenas as rotinas necessárias para controlar os dispositivos a que estão conectados mas também as utilizadas para inicializá-los (ou seja, torná-los aptos para o trabalho quando são ligados, acordando-os de seu estado de torpor eletrônico). É por isso que a luz de seu CD-ROM pisca quando a máquina é ligada: são as rotinas gravadas na extensão do BIOS da placa que controla o drive CD-ROM testando-o e inicializando-o durante o boot (não, o POST não “sabe” fazer isso: o POST nada entende de CD- ROM; é justamente por isso que existem as extensões de BIOS - entendeu agora?).

Em resumo: também quando se incorpora um novo dispositivo a um micro já existente, as rotinas necessárias para troca de dados entre o micro e o dispositivo (ou seja, rotinas de controle do dispositivo) são incorporadas ao sistema operacional parte através do método clássico, lendo-as no disco e transferindo-as para a memória (as rotinas contidas nos gerenciadores de dispositivos ou “device drivers”), e parte integrando-as ao sistema via extensões de BIOS.

As rotinas gravadas em chips de memória ROM, como o ROM-BIOS encaixado na placa-mãe e as extensões de BIOS das placas controladoras, ocupam determinados endereços de memória. Endereços diferentes, evidentemente. Pois se duas extensões de BIOS tentarem usar os mesmos endereços de memória a máquina simplesmente se recusa a funcionar quando é ligada - um caso típico de conflito de endereços e que pode ser evitado mudando-se o endereço de uma das extensões de BIOS conforme as instruções do manual que acompanha a placa controladora (por isso recuse-se terminantemente a aceitar qualquer placa que não venha acompanhada de um manual - pode ser um simples e vagabundo papelucho que, se contiver as informações necessárias para evitar conflitos com outras placas em um procedimento chamado “configuração” da placa, serve; mas se for um grosso livro em papel couché, maravilhosamente ilustrado, porém sem as informações necessárias, não serve).

Pois bem: semana que vem examinaremos afinal o processo de boot e veremos como nossa máquina consegue detectar e identificar as extensões de BIOS incorporadas ao sistema. O que tem que ser feito toda a vez que a máquina é ligada, pois nada impede que um novo dispositivo seja instalado depois da última vez que ela foi desligada.

Até lá e feliz ano novo.

B. Piropo