Micro Cosmo - Sítio do Piropo
17/04/95
< Diretório e Raiz >
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.