FAT16 e FAT32

Por:
O FAT16 é uma espécie de “pau pra toda obra”, já que é compatível com praticamente todos os sistemas operacionais e também dispositivos como câmeras, palmtops, celulares e MP3players. Ele é o sistema de arquivos usado por padrão nos cartões SD e também nos pendrives de até 2 GB. Só recentemente os cartões passaram a utilizar FAT32, com a introdução do padrão SDHC.

No sistema FAT, o HD é dividido em clusters, que são a menor parcela do HD vista pelo sistema operacional. Cada cluster possui um endereço único, que permite ao sistema localizar os arquivos armazenados. Um grande arquivo pode ser dividido em vários clusters, mas não é possível que dois arquivos pequenos sejam gravados dentro do mesmo cluster. Cada cluster pode ser composto por de 1 a 64 setores (ou seja, de 512 bytes a 32 KB), de acordo com o tamanho da partição.

A principal limitação é que, como o nome sugere, o FAT16 usa endereços de 16 bits para endereçar os clusters dentro da partição, permitindo um máximo de 65536 clusters, que não podem ser maiores que 32 KB. Isso resulta num limite de 2 GB para as partições criadas.

No caso de HDs (e também pendrives ou cartões) maiores que 2 GB, é possível criar várias partições de 2 GB cada uma, até utilizar todo o espaço disponível. Esta pode ser uma solução no caso de dispositivos com 4 ou 5 GB, por exemplo, mas naturalmente não é uma opção realística no caso de um HD de 60 GB, por exemplo, onde seria necessário criar 30 partições!

Numa partição de 2 GB, cada cluster possui 32 KB, o que acaba resultando num grande desperdício de espaço ao gravar uma grande quantidade de arquivos pequenos. Imagine que gravássemos 10.000 arquivos de texto, cada um com apenas 300 bytes. Como um cluster não pode conter mais do que um arquivo, cada arquivo iria ocupar um cluster inteiro, ou seja, 32 kbytes! No total, os 10.000 arquivos ocupariam um total de 10.000 clusters, ou seja, um total de 320 MB!

O tamanho dos clusters varia de acordo com o tamanho da partição. Quanto maior o tamanho da partição, maior o tamanho dos clusters:
tab1
Como em toda regra, existe uma excessão. O Windows NT permitia criar partições FAT de até 4 GB usando clusters de 64 KB, mas este foi um recurso pouco usado, devido ao desperdício de espaço.

A versão original do Windows 95 suportava apenas o FAT16, obrigando quem possuía HDs maiores que 2 GB a dividi-los em duas ou mais partições e a lidar com o desperdício de espaço causado pelos clusters de 32 KB.

A solução foi a criação do sistema FAT32, que foi incorporado no Windows 95 OSR/2 e continuou sendo usado nas versões seguintes.

A principal evolução foi o uso de endereços de 32 bits para o endereçamento dos clusters, o que possibilita a criação de partições muito maiores, de até 2 terabytes. Isto foi possível por que o Windows 95 era um sistema de 32 bits, ao contrário do MS-DOS e do Windows 3.1, que eram sistemas de 16 bits.

A princípio, o uso de clusters de 32 bits permitiriam o uso de clusters de 4 KB mesmo em partições muito grandes, mas por questões de desempenho, ficou estabelecido que por default os clusters de 4 KB seriam usados apenas em partições de até 8 GB. Acima disto, o tamanho dos clusters varia de acordo com o tamanho da partição:
tab2
Usando clusters de 4 KB, os 10.000 arquivos do exemplo anterior ocupariam apenas 40 MB, uma economia considerável. De fato, ao converter uma partição FAT16 para FAT32, é normal conseguir de 10 a 20% de redução no espaço ocupado, devido à redução do espaço desperdiçado.

O Windows 98 inclui um conversor, que permite converter partições FAT16 para FAT32 sem perda de dados. Atualmente ele não possui muita utilidade, já que o FAT16 é raramente usado fora dos pendrives e cartões de memória, mas de qualquer forma, caso precise dele, o ícone está disponível no Iniciar > Ferramentas de Sistema.

A grande limitação do sistema FAT32 está relacionado ao tamanho máximo dos arquivos. Mesmo usando uma grande partição, não é possível armazenar arquivos com mais de 4 GB, o que é um grande problema para quem trabalha com arquivos grandes, como vídeos em formato RAW (sem compressão). Não é possível sequer armazenar um ISO de DVD, já que a cópia ou transferência será sempre abortada depois de transferidos os primeiros 4 GB.

Não existe qualquer sinal de que futuras versões do sistema de arquivos derrubarão esta limitação, já que a Microsoft vem recomendando o uso do NTFS desde a primeira versão do Windows XP, de forma que a melhor opção, para quem usa Windows, é seguir a recomendação e migrar para ele.

Outra limitação é que o particionador usado durante a instalação do Windows XP se recusa a formatar partições FAT 32 maiores do que 32 GB. Este é um limite do software e não do sistema de arquivos em si. A solução para criar partições FAT maiores é utilizar o Partition Magic, Gparted ou outro particionador para criar a partição e em seguida apenas instalar o sistema na partição criada.

Uma curiosidade é que, antes do FAT16, existiu o FAT12, um sistema ainda mais primitivo, utilizado em disquetes e também nas primeiras versões do MS-DOS. Nele, são usados endereços de apenas 12 bits para endereçar os clusters, permitindo um total de 4096 clusters de até 4 KB, o que permitia partições de até 16 MB.

Em 1981, quando o IBM PC foi lançado, 16 MB parecia ser uma capacidade satisfatória, já que naquela época os discos rígidos tinham apenas 5 ou 10 MB. Claro que, em se tratando de informática, por maior que seja um limite, ele jamais será suficiente por muito tempo. Um excelente exemplo é a célebre frase “Por que alguém iria precisar de mais de 640 KB de memória RAM?” dita por Bill Gates numa entrevista, no início da década de 80. Logo começaram a ser usados discos de 40, 80 ou 120 MB, obrigando a Microsoft a criar a FAT 16, e incluí-la na versão 4.0 do MS-DOS.

Apesar de obsoleto, o FAT12 ainda continua vivo até os dias de hoje, fazendo compania para outro fantasma da informática: os disquetes. Por ser mais simples, o FAT12 é o sistema padrão para a formatação dos disquetes de 1.44, onde são usados clusters de apenas 512 bytes.

Estruturas Lógicas

Todos os vários sistemas de arquivos são constituídos de um conjunto de estruturas lógicas, que permitem ao sistema operacional organizar os dados gravados e acessá-los com a maior velocidade e confiabilidade possíveis.

Tudo começa com o setor de boot, que é lido pelo BIOS da placa mãe no início do boot, logo após a contagem de memória e outros procedimentos executados durante o POST.

O setor de boot, também chamado de MBR ou trilha zero, contém dois componentes essenciais. O primeiro é um bootstrap, o software responsável por iniciar o carregamento do sistema operacional. Tipicamente, é utilizado um gerenciador de boot, como o NTLDR (usado pelo Windows XP) ou o Grub (usado pela maior parte das distribuições Linux). A função do gerenciador de boot é mostrar uma lista com os sistemas operacionais instalados no início do boot e carregar o sistema escolhido.

O bootstrap ocupa os primeiros 446 bytes do MBR. Os 66 bytes restantes são usados para armazenar a tabela de partições, que guarda informações sobre onde cada partição começa e termina. Alguns vírus, além de acidentes em geral, podem danificar os dados armazenados na tabela de partição, fazendo com que pareça que o HD foi formatado. Mas, na maioria dos casos, os dados continuam lá, intactos, e podem ser recuperados.

Depois que o disco rígido foi formatado e dividido em clusters, mais alguns setores são reservados para guardar a FAT (“file allocation table” ou “tabela de alocação de arquivos”). A função da FAT é servir como um índice, armazenando informações sobre cada cluster do disco. Através da FAT, o sistema sabe se uma determinada área do disco está ocupada ou livre, e pode localizar qualquer arquivo armazenado.

Cada vez que um novo arquivo é gravado ou apagado, o sistema operacional altera a FAT, mantendo-a sempre atualizada. A FAT é tão importante que, além da tabela principal, é armazenada também uma cópia de segurança, que é usada sempre que a tabela principal é danificada de alguma maneira.

Todos os demais sistemas de arquivos utilizam algum tipo de índice, similar à FAT. Quando o o HD é reformatado, este índice é apagado e substituído por uma tabela em branco. Apesar disso, os arquivos continuam gravados nas mesmas posições, embora inacessíveis. Enquanto eles não forem realmente subscritos por outros, é possível recuperá-los usando um programa de recuperação de dados, como veremos em detalhes mais adiante.

Em seguida, temos o diretório raiz. Se fôssemos comparar um disco rígido, formatado em FAT16 ou FAT32 com um livro, as páginas seriam os clusters, a FAT serviria como as legendas e numeração das páginas, enquanto o diretório raiz seria o índice, com o nome de cada capítulo e a página onde ele começa.

O diretório raiz ocupa mais alguns setores no disco, logo após os setores ocupados pela FAT. Cada arquivo ou diretório do disco rígido possui uma entrada no diretório raiz, com o nome do arquivo, a extensão, a data de quando foi criado ou quando foi feita a última modificação, o tamanho em bytes e o número do cluster onde o arquivo começa.

Um arquivo pequeno pode ser armazenado em um único cluster, enquanto um arquivo grande é “quebrado” e armazenado ocupando vários clusters. Neste caso, haverá no final de cada cluster uma marcação indicando o próximo cluster ocupado pelo arquivo. No último cluster ocupado, temos um código que marca o fim do arquivo.
hd_html_3f5f3b5d
Quando um arquivo é deletado, simplesmente é removida sua entrada no diretório raiz, fazendo com que os clusters ocupados por ele pareçam vagos para o sistema operacional. Ao gravar um novo arquivo no disco, o sistema simplesmente procura o primeiro setor livre, continuando a gravá-lo nos setores livres seguintes, mesmo que estejam muito distantes uns dos outros. Surge então o problema da fragmentação, que reduz consideravelmente a a velocidade de acesso, já que dados espalhados, significam mais movimentos da cabeça de leitura.

Ao contrário de outros sistemas de arquivos mais modernos, o sistema FAT não possui nenhum mecanismo que impeça, ou pelo menos diminua a fragmentação, daí a necessidade de rodar o defrag ou outro programa desfragmentador periodicamente. A função deles é mover os arquivos, de forma que eles fiquem gravados em clusters seqüenciais.
hd_html_79694d87
Uma curiosidade é que a fragmentação é um problema apenas nos HDs, já que eles trabalham com tempos de acesso muito altos. Nos cartões de memória, o tempo de acesso é comparativamente muito baixo, de forma que a fragmentação possui um impacto muito pequeno sobre a performance.

Continuando, além do nome, cada arquivo recebe também uma extensão de até três caracteres, como “EXE”, “DOC”, etc. Através da extensão, o sistema operacional sabe que um determinado arquivo deve ser executado ou aberto usando o Word, por exemplo.

A extensão não tem nenhuma influencia sobre o arquivo, apenas determina como ele será visto pelo sistema operacional. Se você abrir o Notepad, escrever um texto qualquer e salvá-lo como “carta.exe”, por exemplo, conseguirá abrir e editar este arquivo sem problemas, mas se você chamar o arquivo clicando duas vezes sobre ele dentro do Windows Explorer, o sistema operacional verá a extensão “EXE” e tentará executar o arquivo, ao invés de tentar abri-lo usando o Notepad, como faria caso o arquivo tivesse a extensão “TXT”.

Inicialmente, as extensões de arquivo eram utilizadas apenas no Windows, enquanto os sistemas Unix em geral se baseavam no conteúdo do arquivo. Mas, recentemente isso vem mudando, com o KDE e o Gnome utilizando associações de arquivos também baseadas nas extensões.

Depois da extensão, existe mais um byte reservado para o atributo do arquivo, que pode ser “somente leitura”, “oculto”, “sistema”, “volume label”, “diretório” ou “arquivo”. O atributo permite instruir o sistema operacional e demais aplicativos sobre como lidar com o arquivo. Os atributos suportados mudam de acordo com o sistema de arquivos. Como veremos adiante, o NTFS suporta um conjunto de atributos que não existem no sistema FAT. O mesmo pode ser dito em relação aos sistemas de arquivo usados no Linux.

O atributo “somente leitura” indica que o arquivo não deve ser modificado ou deletado. Se você tentar deletar ou modificar um arquivo somente leitura pelo DOS, receberá a mensagem “Access Denied”. Tentando apagar o arquivo através do Windows Explorer você receberá um aviso explicando que o arquivo é somente para leitura, perguntando se você tem certeza que deseja deletá-lo. O atributo “sistema” possui uma função parecida, indicando apenas que, além de ser oculto, o arquivo é utilizado pelo sistema operacional.

Por padrão, o Windows XP não mostra arquivos marcados com o atributo “sistema”, nem os arquivos ocultos. É necessário configurar o Windows Explorer para exibi-los, marcando a opção marcar a opção “Mostrar todos os arquivos” no menu Exibir/Opções. Outra opção é usar o comando “DIR /AH” através da linha de comando.

Para nomear um disquete ou a uma partição de um disco rígido, usamos o atributo “volume label”. O nome dado é armazenado em uma área reservada do diretório raiz.

De todos os atributos, o mais importante é o atributo de “diretório”, pois ele permite a existência de subpastas. As pastas, mesmo quando vazias, são vistas pelo sistema operacional como arquivos. Dentro deste arquivo ficam armazenadas informações sobre o nome da pasta, atributos como somente leitura, oculto, etc., a posição da pasta na árvore de diretórios (C:WindowsSystem, por exemplo) e informações sobre quais arquivos ou subpastas estão guardados dentro dela, assim como a localização destes arquivos no disco.

Como o diretório raiz ocupa (no sistema FAT) um espaço equivalente a apenas 16 KB no disco rígido (32 setores), podemos ter apenas 512 entradas de arquivos ou diretórios. Cada sub-pasta funciona mais ou menos como um novo diretório raiz, permitindo que tenhamos mais arquivos no disco. Como uma pasta (que nada mais é do que um arquivo, marcado com o atributo especial) pode ocupar o espaço que quiser, não temos a limitação de 512 arquivos, como no diretório raiz.

Qualquer arquivo com o atributo “diretório”, passa a ser visto pelo sistema operacional como uma pasta, mas a tentativa de transformar um arquivo qualquer em pasta não daria certo, pois apesar de em essência as pastas também serem arquivos, elas possuem um formato específico.

Uma curiosidade sobre as subpastas é que elas só passaram a ser suportadas a partir da versão 2.0 do DOS. Os usuários do DOS 1.0 tiveram que conviver durante algum tempo com um sistema que permitia armazenar arquivos apenas no diretório raiz, com a conseqüente limitação de 512 arquivos no HD.

Finalizando, o atributo “arquivo” indica um arquivo que raramente é modificado, ou é uma cópia de backup de algum arquivo importante. Muitos programas de backup verificam este atributo quando fazem um backup incremental (quando são salvos apenas os arquivos que foram alterados desde o último backup). Neste caso, o programa de backup retira o atributo após salvar o arquivo. Ao ser alterado por algum outro programa, o arquivo novamente recebe o atributo, permitindo ao programa de backup saber quais arquivos foram modificados.

Para alterar os atributos de um arquivo através do Windows Explorer, basta clicar sobre ele com o botão direito do mouse e abrir a janela de propriedades. Também é possível alterá-los via linha de comando, usando o comando ATTRIB.

Concluindo, temos o VFAT, uma extensão incluída a partir do Windows 95. Inicialmente, o sistema FAT possuía uma grave limitação quanto ao tamanho dos nomes de arquivos, que não podiam ter mais que 11 caracteres, sendo 8 para o nome do arquivo e mais 3 para a extensão, como em “formular.doc”.

O limite de apenas 8 caracteres era um grande inconveniente para os usuários do MS-DOS. O “Boletim da 8º reunião anual de diretoria”, por exemplo, teria de ser gravado na forma de algo como “8reandir.doc”.

Através do VFAT, arquivos com nomes longos são gravados no diretório raiz respeitando o formato 8.3 (oito letras e uma extensão de até 3 caracteres), sendo o nome verdadeiro armazenado numa área reservada. Se tivéssemos dois arquivos, chamados de “Reunião anual de 1998” e “Reunião anual de 1999”, por exemplo, teríamos gravados no diretório raiz “Reunia~1” e “Reunia~2”. Se o disco fosse lido a partir do DOS, o sistema leria apenas este nome simplificado. Lendo o disco através do Windows, é possível acessar as áreas ocultas do VFAT e ver os nomes completos dos arquivos. Isso permitiu que a Microsoft derrubasse a limitação, sem com isso quebrar a compatibilidade com os softwares antigos.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X