-3

Из того, что я понимаю, FAT32 использует 32-битное число для каждого файла, чтобы сохранить размер его файла (и, следовательно, FAT32 ограничен в файлах ~ 4 ГБ). В FAT каждый файл имеет запись корневого каталога, и именно эти записи хранят значение для размера файла. На этой странице показана структура записи каталога для FAT32. Этот ресурс предполагает, что FAT12 использует 25-битное значение для размера файла, а FAT16 - 31-битное значение.

Правильна ли информация во втором связанном ресурсе? Если нет, то каков истинный максимальный размер файла для FAT12 и FAT16? Если это правда, то почему нерегулярное количество бит используется для хранения размера файла для этих файловых систем?

РЕДАКТИРОВАТЬ: Почему они ограничены размером тома, в то время как FAT32 имеет установленный размер? Это потому, что размер файла, который он хранит, превышает любой поддерживаемый размер тома, или FAT12 и FAT16 не используют размер файла в качестве поля в записи каталога?

2 ответа2

3

Размер файла в FAT хранится в 32-битном поле.

В FAT32 поле обрабатывается как беззнаковое, что позволяет использовать файлы размером до 4294967294 байт (по-видимому, 4294967295 по какой-то причине недопустимо, возможно, где-то в качестве флага использовался «-1»).

В FAT16 поле ограничено диапазоном 32-разрядного числа со знаком. Я ожидаю, что причиной этого является устаревший код, который был записан обратно, когда 2 ГБ считался бы безумным размером для файла. Файловые системы FAT16 за пределами 2 ГБ были странностью в любом случае *.

AIUI на FAT12 размер файла ограничен 32 МБ (не 32 КБ!) не из-за каких-либо ограничений, специфичных для размера файла, а просто потому, что это максимальный размер тома, и вы не можете иметь файл больше, чем том. То же самое относится и к ранним версиям FAT16.

* Версия FAT16, используемая в DOS 4 через windows 95, была ограничена 64 секторами на кластер, что на типичных 512-байтовых секторах означало размер тома примерно 2 ГБ. NT удвоил максимальное число секторов на кластер, позволив ~ 4 ГБ томам с 512 байтовыми секторами, а 98 добавил поддержку чтения / записи, но не создавая и не восстанавливая такие волюмы. Большие объемы были бы теоретически возможны, если бы базовое устройство имело более крупные сектора, но я не видел доказательств того, что это на самом деле произошло на практике.

0

Часть этого будет зависеть от размера кластера.

В то время как диск имеет (для большинства реализаций) секторы по 512 байт, сектора были сгруппированы в кластеры, чтобы обеспечить более крупные файлы с большей емкостью хранения.

Для FAT12 максимальная емкость и размер файла составляли 16 МБ (с кластерами 4 КБ) и 32 МБ (с кластерами 8 КБ).

Для FAT16 начальная версия не изменила емкость, но по мере ее развития размер файла был разрешен до 2 ГБ, 4 ГБ и, наконец, ограничен объемом, с максимальными объемами от 2 ГБ до 16 ГБ, в зависимости от версии FAT16. это было реализовано операционной системой

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .