Todos os sites em que vou procurar informações no FAT16 afirmam declarativamente que ele não pode alocar mais de 2 GB. ESTÁ BEM. Ótimo. Eu acredito em você. Mas como você chega a essa conclusão (além de apenas testá-la)?
Existe algum tipo de fórmula que se pode usar para determinar quanto um sistema FAT16 pode conter?
file-storage
allocation
SangoProductions
fonte
fonte
Respostas:
O FAT16 usa 16 bits para identificar clusters. Portanto, há um máximo de 65536 clusters antes de você ficar sem identificadores, e alguns identificadores são reservados para usos que não são de arquivo. Cada arquivo ocupa pelo menos um cluster. Clusters maiores aumentam a alocação mínima por arquivo, aumentando a sobrecarga de arquivos pequenos.
O tamanho do cluster informa o volume máximo identificável. Para clusters de 32KiB, isto é 32 * 1024 * 65536 B = 2GiB.
Você pode aumentar o tamanho do cluster indefinidamente, aumentando o tamanho dos setores em disco, mas permanece limitado ao número máximo de arquivos. Você também enfrentaria problemas com o software que assumia o tamanho padrão do setor (512B)
No momento em que havia volumes físicos de ~ 2GiB prontamente disponíveis, processadores e sistemas operacionais tinham 32 bits, portanto, mudar para o FAT32 era uma escolha sensata, permitindo muito mais arquivos em pequenos agrupamentos
fonte
Na verdade, havia várias variantes do "FAT16" ao longo dos anos com limites diferentes, mas vamos considerar a versão que persistiu do "compaq DOS 3.31" até o Windows 95.
Os volumes FAT são divididos em clusters. Cada cluster é composto de uma potência de dois números de setores. O número de setores por cluster no FAT16 é armazenado como um número assinado de 8 bits. Portanto, o máximo de setores possíveis por cluster é 64.
Os números de cluster foram armazenados como um valor não assinado de 16 bits. Limitando o total de clusters para 65536. Multiplique pelo número máximo de setores por cluster e você obterá um limite de 4194304 setores.
O tamanho (lógico) do setor dos discos rígidos é de 512 bytes. Multiplique isso pelo limite do número de setores mencionado acima e você obterá o seu limite de 2GiB. Em princípio, um meio com tamanhos de setor maiores pode suportar um volume FAT16 maior, mas não acho que isso tenha acontecido na prática.
O Windows NT alterou a interpretação do campo "setores por cluster" para não ter sinal de 8 bits. Isso permitiu uma partição 4GiB FAT16 com setores de 512 bytes (e teoricamente maior em unidades com setores maiores). O AIUI windows 98 adicionou suporte para leitura e gravação de tais partições, mas não foi possível criá-las e seus utilitários de disco não puderam repará-las.
Certamente teria sido possível fazer ajustes relativamente pequenos no formato do sistema de arquivos para suportar clusters maiores e, portanto, volumes maiores. No entanto, a MS decidiu optar pela opção mais radical de migrar para um índice de cluster de 32 bits com o Windows 95 OSR2 produzindo FAT32.
Acredito que a razão de optar pela opção mais radical foi a eficiência do espaço. Dado o tamanho típico dos arquivos na época, os clusters de 32kiB já eram um grande desperdício e os maiores teriam sido movidos.
fonte