Semana passada vimos que, quando queremos saber o que se esconde
em um disco, basta emitir o comando “DIRETÓRIO” para que, em um
piscar de olhos, o sistema exiba uma lista dos arquivos e outras
tantas informações sobre o conteúdo do disco.
Informações
tão detalhadas fornecidas assim tão depressa dificilmente poderiam
ser “apuradas” na hora. E, de fato, não são. Na verdade, uma das
funções básicas do sistema operacional é justamente manter atualizado
o inventário do conteúdo de cada disco. Ele funciona como um cuidadoso
almoxarife: trata os discos como se fossem depósitos e mantém minuciosas
anotações sobre cada arquivo ali guardado. Essas anotações se desdobram
em duas partes: informações genéricas sobre todos os arquivos e
informações detalhadas sobre a localização de cada um dos setores
que compõem os diversos arquivos. Conhecer tudo isso em detalhes
não é essencial para que nos tornemos micreiros espertos. Mas ter
uma idéia sobre como e onde o sistema armazena essas informações
sempre ajuda. Então vamos lá. Começando pelas genéricas. Que são
muitas. Vejamos quais, em ordem de importância.
A
primeira, evidentemente, é o nome completo do arquivo - sem o qual
seria impossível identificá-lo. E por “nome completo” me refiro
a nome e extensão. Sem entrar em detalhes sobre os critérios usados
no DOS para nomear arquivos, fiquemos por enquanto no básico, ou
seja, no “sistema 8.3”: os nomes podem ter no máximo oito caracteres
e são separados por um ponto da extensão que, por sua vez, não pode
ter mais que três caracteres. Como cada caractere corresponde a
um byte e seria estupidez gastar um byte adicional para guardar
sempre o mesmo ponto, para armazenar o nome completo bastam onze
bytes.
Depois,
o tamanho do arquivo em bytes. Para isso o sistema reservou quatro
bytes, espaço suficiente para armazenar tamanhos de até 4Gb (quatro
Gigabytes, ou aproximadamente quatro milhões de Mb). No que mostrou
uma respeitável capacidade de previsão, considerando-se que quando
o DOS foi concebido os discos de maior capacidade não armazenavam
mais que 320K. Em contrapartida, hoje em dia qualquer arquivinho
de imagem fotográfica come fácil dezenas de Mb...
Em
seguida, a data da criação ou da última modificação do arquivo.
Uma informação que a primeira vista não parece importante mas que
na medida que começamos a escarafunchar os arquivos de nossos discos,
revela-se essencial. O sistema codificou esse dado de forma que
ele ocupe apenas dois bytes. E fez o mesmo com a hora. Portanto,
para data e hora bastam quatro bytes, dois para cada.
Depois
o sistema reservou um byte para armazenar algumas informações adicionais
sobre o tipo do arquivo, que chamou de atributos (e que talvez um
dia destrinchemos aqui). E mais dois bytes que armazenam a posição
do primeiro setor que o arquivo ocupa no disco. O que parece um
tanto estranho: por que só a do primeiro setor? Mas é isso mesmo:
nas informações genéricas é o que basta. A localização dos demais
é armazenada em outro local - e de forma muito engenhosa, diga-se
de passagem
Somando
os bytes gastos para as informações genéricas sobre cada arquivo,
chega- se a exatos vinte e dois. Mas como seguro morreu de velho,
prevendo que algum dia poderia ser necessário guardar alguma informação
adicional, o sistema deu dez bytes de lambuja e reservou trinta
e dois bytes para isso. Um número especialmente interessante porque
é divisor exato de 512. O que faz com que em cada setor de 512 bytes
caibam informações genéricas sobre dezesseis arquivos. Cada vez
que um novo arquivo é gravado ou que um arquivo existente é modificado
ou removido do disco, o sistema operacional diligentemente atualiza
as informações pertinentes ao arquivo.
Pois
muito bem: é justamente ao conjunto dessas informações genéricas
que se dá o nome de diretório. E, como vimos, o comando DIR exibe
apenas parte delas.
Agora
só falta saber que elas são armazenadas em um grupo de setores especialmente
dedicados a esse fim. E que se chamam, em conjunto, “Diretório Raiz”
(mais tarde veremos o porquê desse nome aparentemente exótico mas
que na verdade até faz sentido). O número de setores ocupados pelo
diretório raiz varia com o tipo de disco. Nos de 3,5” e alta densidade
são catorze setores. Como em cada um deles cabem dezesseis conjuntos
de 32 bits, o diretório raiz de um desses discos comporta 224 “entradas
de diretório”, ou informações sobre 224 arquivos (o que não quer
dizer que o disco somente pode armazenar 224 arquivos: um mecanismo
engenhoso que discutiremos mais tarde, os “subdiretórios”, permite
aumentar muito esse número).
Os
setores que formam o diretório raiz ocupam sempre a mesma posição
relativa no disco (logo veremos que posição é essa). O que resolve
nosso pequeno mistério: porque as informações aparecem tão depressa
na tela ao se digitar o comando “DIR”. É que, para obtê-las, o sistema
não precisa levantar os dados esquadrinhando todo o disco: basta
lê-las nos poucos setores que formam o diretório raiz.
B.
Piropo