¿Por qué es el tamaño máximo posible para un archivo en un FAT32 4 GiB?

Hay dos factores en juego aquí. En primer lugar, FAT utiliza un registro de dónde comienza cada archivo y su longitud. Esto se llama una tabla de asignación de archivos.

Luego, la longitud en ese registro se almacena como un número de 32 bits, siempre usa 32 bits, ni más ni menos (es decir, un valor entero de tamaño fijo de 32 bits – 4 bytes de longitud). Esto significa que es capaz de almacenar 32 dígitos binarios. Lo mismo que 3 dígitos decimales puede contener cualquiera de 10 ^ 3 = 1000 valores (000 hasta 999), en binario 32 dígitos puede contener 2 ^ 32 (es decir, 32 ceros hasta 32 unos – equivalentes a alrededor de 4000 millones, o 4 Gigs) .

La ubicación se almacena de forma ligeramente diferente. Toda la unidad se divide en sectores, y el archivo siempre comienza al comienzo de uno de estos sectores. Por lo tanto, toda la ubicación se almacena es el número de sector. Y dado que el sector puede tener muchos bytes en secuencia, puede tener más de 4 GB.

Si cualquiera de estos dos se manejara de alguna otra manera, no tendría esa limitación. Por ejemplo, podría haber usado un número de 64 bits, o podría usar otros medios para marcar el final del archivo. Muchos otros sistemas de archivos hacen exactamente eso, o usan números más grandes para realizar un seguimiento de la longitud del archivo, o marcan el final de alguna otra manera. Es por eso que cosas como NTFS / ExFAT / Ext4 / etc. pueden manejar tamaños de archivo mucho más grandes.

Gracias por preguntar. En realidad no sabía la respuesta a su pregunta, pero después de buscar en Google, obtuve algo para usted, aunque no estoy seguro de mi estructuración.

De todos modos, aquí vamos, FAT32 es una tabla de asignación de archivos con elementos llamados entradas, más aquí: Tabla de asignación de archivos – Wikipedia. Cada entrada tiene 32 “ranuras” (para FAT 32 ) donde puede escribir 1 o un 0. Por lo tanto, cada entrada tiene 2 ^ 32 configuraciones posibles, es decir, combinaciones de 1 y 0. La configuración con las 32 “ranuras” llenas (solo 1), asciende a 4 GB (2 ^ 32–1). Entonces el 4GB es un número binario de 32 uno.

Espero haber respondido a su pregunta. Si encuentra algún error o una mejor explicación, comparta conmigo.

El 32 en FAT32 significa 32 bits. El valor más grande que puede almacenar en un entero de 32 bits es 2 ^ 32, que es 4 GB (técnicamente es 1 byte menos que eso).

Si hubiera un archivo> 4 GB en un sistema FAT32, no habría forma de acceder a la parte superior a 4 GB porque no tendría forma de decirle al sistema de archivos que acceda al desplazamiento necesario.