Todos los sitios a los que voy a buscar información sobre FAT16 solo declaran declarativamente que no puede asignar más de 2 GB. OKAY. Excelente. Te creo. Pero, ¿cómo llegas a esa conclusión (aparte de solo probarla)?
¿Existe algún tipo de fórmula que se pueda usar para determinar cuánto puede contener un sistema FAT16?
file-storage
allocation
SangoProductions
fuente
fuente
Respuestas:
FAT16 utiliza 16 bits para identificar grupos. Por lo tanto, hay un máximo de 65536 clústeres antes de que se acaben los identificadores, y algunos identificadores están reservados para usos que no sean archivos. Cada archivo ocupa al menos un clúster. Los clústeres más grandes aumentan la asignación mínima por archivo, lo que aumenta la sobrecarga de archivos pequeños.
El tamaño del clúster le indica el volumen máximo identificable. Para los clústeres de 32 KB, es decir 32 * 1024 * 65536 B = 2GiB.
Usted podría aumentar el tamaño del clúster de forma indefinida, al aumentar el tamaño de sus sectores en el disco, pero que siguen siendo limitados al número máximo de archivos. También tendría problemas con el software que asumía el tamaño de sector predeterminado (512B)
En el punto donde había volúmenes físicos de ~ 2GiB fácilmente disponibles, los procesadores y los sistemas operativos eran de 32 bits, por lo que pasar a FAT32 fue una elección sensata, ya que permitió una gran cantidad de archivos en pequeños grupos
fuente
En realidad, a lo largo de los años hubo varias variantes de "FAT16" con límites diferentes, pero consideremos la versión que persistió desde "compaq DOS 3.31" hasta Windows 95.
Los volúmenes FAT se dividen en grupos. Cada grupo está compuesto por una potencia de dos números de sectores. El número de sectores por clúster en FAT16 se almacena como un número con signo de 8 bits. Entonces, el máximo de sectores posibles por clúster es 64.
Los números de clúster se almacenaron como un valor sin signo de 16 bits. Limitar el total de clústeres a 65536. Multiplique eso por los sectores máximos por clústeres y obtendrá un límite de 4194304 sectores.
El tamaño del sector (lógico) de los discos duros es de 512 bytes. Multiplique eso por el límite en el número de sectores mencionados anteriormente y obtendrá su límite de 2GiB. En principio, un medio con tamaños de sector más grandes puede soportar un volumen FAT16 más grande, pero no creo que esto haya sucedido en la práctica.
Windows NT cambió la interpretación del campo "sectores por clúster" a 8 bits sin signo. Esto permitió una partición 4GiB FAT16 con sectores de 512 bytes (y teóricamente más grande en unidades con sectores más grandes). AIUI Windows 98 agregó soporte para leer y escribir tales particiones, pero no pudo crearlas y sus utilidades de disco no pudieron repararlas.
Ciertamente habría sido posible realizar ajustes relativamente menores en el formato del sistema de archivos para admitir clústeres más grandes y, por lo tanto, volúmenes más grandes. Sin embargo, MS decidió optar por la opción más radical de pasar a un índice de clúster de 32 bits con Windows 95 OSR2 que produce FAT32.
Creo que la razón para optar por la opción más radical fue la eficiencia del espacio. Dado los tamaños de archivo típicos en ese momento, los clústeres de 32 kB ya eran un desperdicio y los más grandes incluso se habrían movido.
fuente