3. FAT
Muitos usuários de Windows já ouviram falar em partições FAT ou FAT32. Essas siglas identificam os sistemas de arquivos para o Windows. Para este mesmo sistema operacional, há também o sistema de arquivos NTFS, que será visto mais adiante no conteúdo.
FAT – File Allocation Table (Tabela de alocação de arquivos). O primeiro FAT surgiu em 1977 para funcionar com a primeira versão do DOS. Trata-se de um sistema que funciona através de uma espécie de tabela que contém indicações para onde estão as informações de cada arquivo. Quando um arquivo é salvo num disquete, por exemplo: o FAT divide a área do disco em pequenos blocos. Assim, um arquivo pode (e ocupa) vários blocos, mas eles não precisam estar numa seqüência. Os blocos de determinados arquivos podem estar em várias posições diferentes. Daí a necessidade de uma tabela para indicar cada bloco.
Com o surgimento de dispositivos de armazenamento com mais capacidade e mais sofisticados, o sistema FAT foi ganhando alterações (identificadas pelos nomes FAT12 e FAT16). Isso foi necessário porque o FAT era limitado a determinada capacidade de armazenamento. Por exemplo, ele só operava com tamanho máximo de 2 GB. Assim, num disco de 5 GB, seria necessário dividi-lo em 3 partições. Fora o fato de que o FAT apresentava problemas com informações acima de 512 MB. Diante de tantos problemas, em 1996, a Microsoft lançou um novo FAT: o FAT32, que é compatível com os Windows 9x/Me/2000 e XP, sendo que o Windows 2000 e XP podem trabalhar com o NTFS que é mais avançado que o FAT32.
3.1 Funcionamento do sistema FAT
Ao trabalharmos com HDs (e disquetes) é necessário prepará-los, fazendo uma formatação física. Este processo divide os discos em trilhas (uma espécie de caminho circular) e setores (subdivisões de cada trilha, com geralmente 512 bytes). Um conjunto de trilhas recebe o nome de cilindro. A formatação física já vem de fábrica e pode ser alterada se o usuário quiser dividir o disco em partições, após deve-se fazer uma formatação lógica, que nada mais é do que "instalar" o sistema de arquivos no dispositivo de armazenamento.
O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com um grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se por exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 5 clusters, se cada cluster ocupar dois setores, quando o FAT precisar acessar um determinado setor, primeiro ele descobre em qual cluster ele se encontra. É válido citar que tanto o FAT quanto o FAT32 trabalham de acordo com este princípio.
3.2 Tamanho de cluster
O sistema FAT exige que cada cluster do disco seja usado somente para um único arquivo, ou seja, num mesmo cluster, não pode haver informações sobre mais de um arquivo. Isso pode até parecer óbvio, mas gera um problema, desperdício. Para mostrar isso, vamos supor que desejamos guardar num disquete um arquivo de 5 KB. Imaginemos que este disquete tenha 8 KB de espaço e dois clusters de 4 KB. Um cluster ocuparia 4 KB do arquivo, enquanto o outro cluster ocuparia apenas 1 KB. Como o cluster só pode trabalhar com um arquivo, haveria desperdício de 3 KB. Vamos imaginar agora que em vez de termos clusters com 4 KB, teremos clusters com 2 KB. Assim, 3 cluster seriam usados, sendo que um ainda apresentaria desperdício de 1 KB. No entanto, sobrou um cluster com 2 KB, que pode ser usado por outro arquivo.
Percebe-se, com isso, que o tamanho do cluster deve ser o máximo que o FAT consegue manipular. Aliás, a principal diferença entre FAT e FAT 32 é que, este último, consegue trabalhar com um número maior de clusters.
3.3 Diferenças entre FAT e FAT32
O sistema FAT (ou FAT16) consegue trabalhar com 65536 clusters. Esse número é obtido elevando o número 2 a 16 (daí a terminologia FAT16). Mas, na verdade, o sistema FAT16 usa apenas 65525 clusters por disco (ou partição). É importante frisar que o tamanho do cluster deve obedecer também uma potência de 2: 2 KB, 4 KB, 8 KB, 16 KB e 32 KB, ou seja, não é possível ter cluster de 5 KB, 7 KB, e assim por diante. O tamanho dos clusters no sistema FAT também é uma potência de 2. O limite máximo de tamanho para uma partição em FAT16 é de 2 GB (correspondente a 2 elevado a 16).
Já no caso do sistema de arquivos FAT32, seu nome se deve ao tamanho dos clusters determinados através da relação entre os comandos FDISK e FORMAT, apesar de que é possível determinar o tamanho do cluster do FAT32, também, por programas de terceiros, com o Partition Magic. Ressalta-se que não é possível ter clusters de diferentes tamanhos.
O tamanho máximo da partição em FAT32 é de 2 TB. Mas se você fizer a conta, notará que 2 elevado a 32 é equivalente a 128 TB. Então por que o FAT32 usa somente 2 TB? Pode parecer confuso, mas o número máximo de clusters, no caso do FAT32, não é de 2 elevado a 32. Apesar de seu endereçamento ser de 32 bits, na verdade, são usados apenas 28 bits. Com isso, a quantidade máxima de clusters seria 2 elevado a 28, que corresponde a 8 TB.
Então, o FAT32 tem tamanho máximo de espaço de 2 TB? Segundo a Microsoft, o número máximo de setores (setores, não clusters!) que um disco pode ter é de 2 elevado a 32. Como cada setor tem 512 bytes, o tamanho máximo de um disco no FAT32 acaba sendo de 2 TB.
As diferenças entre FAT (ou FAT16) e FAT32 não param por aí. O FAT32 também é mais confiável. Esse sistema também consegue posicionar o diretório principal em qualquer lugar do disco. Fora o fato de que, no sistema FAT, havia uma limitação no número de entradas que podiam ser alocadas no diretório principal (512 arquivos e/ou pastas). Não há essa limitação no FAT32.
Algo curioso de se colocar, é que o FAT32 pode mudar o tamanho da partição sem perder dados. Apesar dessa capacidade, a Microsoft, por alguma razão misteriosa, não implementou tal característica no FAT 32. Hoje em dia, programas particionadores, como o Partition Magic, ou então particionadores de disco de distribuições Linux, conseguem redimensionar uma partição FAT32, "inserindo" esse poder ao sistema de arquivos.
3.4 Mais sobre FAT32
O sistema FAT32 precisa de alterações para trabalhar perfeitamente com discos (ou partições) maiores que 8,4 GB de tamanho. Discos que possuam esse limite de tamanho usam a forma de endereçamento CHS (Cylinder-Head-Sector), onde cada setor do disco é unicamente endereçado, usando-se o Cilindro (Cylinder), a cabeça de leitura (Head) e o setor (Sector) da trilha definida pelo cilindro e cabeça anteriores. Para contornar isso, foi criado o método LBA (Logical Block Addressing) onde cada setor do disco é endereçado através de um número único fornecido pelo BIOS. Com o LBA é possível trabalhar com discos de dezenas de GB.
O Windows consegue trabalhar com discos reconhecidos por LBA. No entanto, pode haver problemas quando o HD (ou a partição) possui mais de 1024 cilindros. Para contornar isso, foi criado o sistema FAT32X, em que a tabela de alocação de arquivos é deslocada para o fim do disco. Essa técnica evita o problema porque, com mais de 1024 cilindros, o FAT não consegue armazenar todas as informações sobre o disco. Jogando-a para o final do disco, a limitação é burlada, já que a mantendo no início do disco, por uma série de razões, não é possível aumentar o tamanho da tabela.
3.5 O que é VFAT
VFAT é a sigla para Virtual File Allocation Table. Trata-se de um sistema introduzido no Windows 95. Ele possui as mesmas características do sistema FAT, mas pode suportar nome de arquivos longos. O sistema de arquivos FAT só trabalha com nomes no estilo 8.3 (8 caracteres para o nome e 3 para a extensão, como "palavras.txt").Com o VFAT, é possível ter nomes de arquivos com até 256 caracteres mais 3 para a extensão. O sistema FAT32 herdou todas as características do VFAT.
3.6 FAT16 X FAT32
Fat 16 (1977) - Utilizado com a primeira versão do DOS, o funcionamento do Fat indica em que cluster um arquivo começa, ou seja, onde está o primeiro byte de um arquivo. Um cluster é formado por um ou mais setores físicos, geralmente em cada setor de 512 bytes. (depende do tamanho do disco).
Exemplo 1: Ao criar um arquivo de 1Kb e armazená-lo em um cluster de tamanho 2Kb, estaríamos ocupando a sua totalidade. Como um cluster pode ser ocupado por apenas um arquivo, você estaria desperdiçando 1KB. Logo o problema apresentado seria o desperdício de espaço.
Exemplo 2: Quando um arquivo é maior que o tamanho do cluster, ele tem de ser dividido em múltiplos pedaços, uma vez que o arquivo aumentará o tempo de leitura. Logo o problema apresentado seria a diminuição do desempenho do disco.
Fat 32 (1996)
A tabela faz referência ao maior tamanho de partição e ao menor tamanho de cluster disponível.
Tamanho da partição |
Tamanho de Cluster de Fat 16 |
Tamanho de Cluster de Fat 32 |
32 MB |
2 KB |
- |
128 MB |
2 KB |
- |
256 MB |
4 KB |
- |
512 MB |
8 KB |
4 KB |
1 GB |
16 KB |
4 KB |
2 GB |
32 KB |
4 KB |
3 GB – 7GB |
- |
4 KB |
8GB – 16 GB |
- |
8 KB |
16 GB – 32 GB |
- |
16 KB |
Maior que 32 GB |
- |
32 KB |