Micro Cosmo
Volte
04/03/96

< Gerenciador de Boot II >


Semana passada vimos que o boot manager é um programa. E um programinha que nada teria de especial exceto o fato de rodar em uma máquina na qual o sistema operacional ainda não foi carregado. Como ele consegue realizar esta proeza?

Bem, realmente a coisa é meio estranha, já que o sistema operacional serve justamente para cuidar dos programas, carregando-os na memória e cuidando de coisas como acesso a disco, exibição de informações no vídeo e recepção de dados via teclado. Mas não é impossível. Na verdade você mesmo conhece um outro programa capaz de rodar em um micro sem sistema operacional. Não atina qual seja? Ora, meu amigo, o POST. Que é um conjunto de rotinas com um propósito determinado (portanto é um programa) e roda antes mesmo do boot manager. E que, depois que testou o vídeo, pode até exibir mensagens na tela. A única diferença entre um programa que se apoia no sistema operacional e outro que roda em uma máquina sem sistema é que este último tem que cuidar de tudo, inclusive acessar diretamente o hardware, usando para isto exclusivamente as poucas rotinas disponíveis no ROM- BIOS. Ou seja, não pode apelar para os serviços do sistema operacional. Uma tarefa difícil, mas não impossível. Pelo menos para um programa simplezinho como o boot manager.

Desfeito mais este mistério, vamos ao que interessa, quer dizer, ao boot manager propriamente dito. Que, como já descobrimos, é um programa. Cuja função é permitir que o usuário escolha, dentre um máximo de três opções, o sistema operacional com o qual a máquina dará boot. Vejamos de que forma isto é possível.

A primeira coisa a chamar nossa atenção quando instalamos o boot manager é que, para fazê-lo, é necessário particionar o disco rígido onde ele se acomodará (ou seja: se você pretender usar o boot manager e desejar preservar os dados existentes no disco, faça antes uma cópia de todo o seu conteúdo, pois o disco rígido, ao ser particionado, deita a perder tudo o que lá estava gravado). E este particionamento é feito de uma maneira bastante peculiar. Vejamos qual.

A primeira partição ocupa apenas um megabyte do disco e será usada pelo próprio boot manager, não podendo ser compartilhada com mais nada. Na verdade, grande parte dela permanecerá vazia, pois o boot manager não precisa de tanto espaço em disco. O problema é que um Mb é o tamanho mínimo permitido para uma partição.

Depois, será necessário uma partição adicional para cada sistema operacional que se pretenda usar (o que explica o limite máximo de três sistemas operacionais, já que o padrão PC não admite mais de quatro partições em um disco rígido e uma delas deve necessariamente ser ocupada pelo próprio boot manager). Na maioria dos casos, por exigência dos próprios sistemas operacionais e não do boot manager, elas devem ser obrigatoriamente partições primárias do primeiro disco rígido. E, por exigência do BIOS, precisam estar todas contidas nos primeiros 1024 cilindros do disco rígido. A exceção é o OS/2, que exige uma partição para si mesmo, mas que não precisa ser necessariamente ser uma partição primária. Nem estar obrigatoriamente no primeiro disco rígido. Esta máquina que vos fala, por exemplo, usa o boot manager para alternar entre Windows 95 e OS/2 e nela o OS/2 se aconchega em uma partição estendida do segundo disco rígido. A única exigência - por sinal, não do OS/2, mas do BIOS, cujas rotinas são usadas para dar início ao processo de boot - é que a partição esteja toda contida nos primeiros 1024 cilindros do disco rígido (se você quiser saber o porquê desta exigência, dê uma olhada na série sobre discos ATA lá na Trilha Zero).

Pronto. Agora ficou fácil entender como a coisa toda funciona. Pense um pouco, que você mesmo deduzirá. Pois fica claro que o “setor de boot”, aquele onde está gravado o código do bootstart e que recebe o controle logo após o POST, ao invés de carregar os arquivos de sistema de um sistema operacional, como de hábito, carrega os arquivos que constituem o próprio boot manager. Que, logo após, baseado na escolha do usuário ou usando a opção default caso nenhuma seleção seja feita, desvia o processo de boot para a partição onde se aconchega um dos sistemas operacionais. De onde, então, serão carregados os arquivos de sistema e de configuração correspondentes ao sistema escolhido. Uma coisa muito menos complicada do que parecia a princípio.

E com ela encerramos nossas discussões sobre o bot. Como você vê, conhecidas as noções elementares, em informática não há mistérios. Até um processo aparentemente complexo como a carga de um sistema operacional acaba se mostrando uma sucessão de ações perfeitamente previsíveis. E todas muito simples.

B. Piropo