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