Почему диски FAT32 ограничены файлами 4GB?

Я не ищу решение, я хотел бы получить объяснения. Большинство ссылок, которые я нашел через Google, просто говорят мне, что предел файла-4GB, но не почему.

Я знаю объяснение Википедии:http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

но это все еще не вдается в подробности о том, почему. (При чем тут СКАНДИСК?)

может быть, тогда я пойму, можно ли преодолеть 4GB ограничение размера файла.

3 ответов


чтобы расширить этот ответ, FAT32 происходит от FAT16 и FAT12. Когда FAT12 был представлен, ПК запускали 16-битную ОС, и не было дисков больше десяти мегабайт. Я не думаю, что кто-то ожидал, что кому-то на ПК когда-либо понадобится файл, который был в четыреста раз больше самого большого доступного диска. Кроме того, даже если Microsoft предусмотрительно выделила дополнительный байт для каждой записи каталога для хранения битов 32-39 размера файла (позволяя файлам до одного терабайта каждый) сомнительно, чтобы его использовали программисты. Ни один язык не обеспечивал удобной поддержки целочисленной математики больше 32 бит; даже 32-битная математика считалась довольно причудливой.

больший вопрос в моем уме, почему я не знаю о каких-либо усилиях по переходу к стандартному интерфейсу хранения без FAT32, который не основан на последовательно пронумерованных секторах. Как флэш-накопители, так и жесткие диски могут извлечь выгоду из знания логического значения различных секторных записей (в в случае flash, поскольку это устранит необходимость копирования удаленных секторов при выполнении управления износом; в случае жестких дисков, поскольку это позволит перезаписывать записи способами, которые не будут нарушать требования к согласованности данных).


потому что FAT32 хранит 32-битные размеры файлов, а максимум, который вы можете хранить в 32 битах, - 2^32-1 ~= 4.29e9. 2^32-1 байт = 4 ГБ - 1 байт.

(Это, по сути, объясняется в статье Википедии.)


У меня такие же сомнения, и, наконец, понял, что каждый файл имеет свои собственные метаданные содержит 4 байта для размера файла. Таким образом, максимальный размер файла составляет 4G - 1 байт.