Micro Cosmo
Volte
15/05/95

< Setor de Boot >


Semana passada vimos que o processo de inicialização do computador chama-se boot. Que consiste no POST, um teste de todos os periféricos, e na carga do sistema operacional. Vimos também que o responsável pelo boot é um programa que vem gravado em um chip de memória ROM, um tipo de memória semelhante à memória RAM, cujo conteúdo, porém, não pode ser alterado (mas em compensação não se esvai quando a máquina é desligada). É fácil perceber como um programa gravado em ROM é executado automáticamente: basta estar armazenado em um trecho de memória para o qual o ponteiro de instruções “aponta” quando a máquina é ligada. O difícil e entender como ele consegue ler no disco e carregar na memória os arquivos que contêm o sistema operacional sem fazer a menor idéia do que seja um “arquivo”, já que o conceito de arquivo só tem sentido para o próprio sistema operacional.

Bem, o programa responsável pelo boot não sabe o que é um arquivo mas sabe muito bem o que é um disco (tem que saber, senão não poderia testá-lo durante o POST). Portanto, sabe o que é um setor. É verdade que seu conhecimento não vai muito além disso: ele não seria capaz, por exemplo, de localizar um determinado setor perdido lá pelo meio do disco. Mas encontrar o primero de todos, o setor número um da trilha zero, é bem mais fácil. E se consegue encontrá-lo, pode lê-lo para a memória.

Pronto, problema resolvido: no que toca à carga do sistema operacional, tudo o que o boot precisa fazer após o POST é procurar pelo primeiro setor do disco que está no drive A: (a não ser que você expressamente o instrua a procurar no primeiro setor do disco rígido C:), carregá-lo na memória e apontar para ele o ponteiro de instruções da CPU. Esse primeiro setor, que se chama muito apropriadamente “setor de boot”, contém um programa. Pequenino (tem que ser, senão não caberia em um único setor que, como sabemos, tem apenas 512 bytes), mas poderoso. Tanto, que contém todas as informações necessárias para encontrar no disco e carregar na memória todo o restante do código do sistema operacional, que pode ocupar desde algumas dezenas de Kbytes até poucos Mbytes. O que transforma o aparente milagre da ressureição do micro cada vez que é ligado em um processo relativamente simples, que se desdobra em dois passos: no primeiro, um programa gravado em ROM executa o auto-teste de partida (POST), carrega na memória e executa o programeto contido no setor de boot. No segundo, esse programa procura no disco, carrega na memória e inicia a execução de um outro programa, o sistema operacional. Que, como veremos mais adiante, permanece sendo executado enquanto a máquina estiver ligada.

Agora, já podemos ter uma idéia precisa da anatomia dos discos (pelo menos dos disquetes; os discos rígidos são um pouco diferentes, mas a estrutura básica é essencialmente a mesma). Assim, todo disco começa pelo setor de boot, o primeiro setor da trilha zero da face zero (note que em qualquer disco, rígido ou flexível, alta ou baixa densidade, há apenas um único setor de boot de 512 bytes seja qual for a capacidade do disco). Imediatamente depois dele estão as duas cópias da FAT, cujo tamanho varia conforme o tipo ou capacidade do disco: no caso dos discos de 3,5” e alta densidade que temos usado como exemplo, cada cópia da FAT ocupa nove setores. E, depois da FAT, o diretório raiz, cujo tamanho também depende do tipo do disco: no nosso exemplo, o diretório raiz ocupa exatos catorze setores. Somente então aparece o primeiro setor destinado aos arquivos que serão gravados no disco.

Agora nosso novo conhecimento pode ser usado para algo de prático: determinar com exatidão a capacidade real de um disco conhecidas suas características básicas, como número de faces, trilhas e setores, além do tamanho da FAT e do diretório raiz.

Vejamos ainda nosso exemplo do disco de 3,5” e alta densidade, hoje em dia, de longe, os mais comuns. Como sabemos, ele tem duas faces com oitenta trilhas de dezoito setores cada. Portanto há nele 2880 setores. Para calcular o espaço disponível para arquivos, o primeiro impulso seria multiplicar esse número por 512, o número de bytes de cada setor. Mas sabemos que, do total de setores, há que subtrair 33: os catorze usados pelo diretório raiz, os dezoito das duas cópias da FAT e o setor de boot. Sobram, portanto, 2847 setores. Que, agora sim, multiplicados por 512, resultam em 1457664 bytes, a capacidade de fato disponível para arquivos em um disco de 3,5” e alta densidade.

Em matéria de erudição, não é lá grande coisa. Mas, saber como as coisas são de fato não dá uma gratificante sensação de quem conhece o chão onde pisa?

B. Piropo