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

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

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

Но это все еще не вдаётся в детали о том, почему. (Что SCANDISK имеет к этому отношение?)

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

Ответы

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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