Все файловые системы имеют различные ограничения, почему этот случай с технической точки зрения? Действительно, что позволяет одной файловой системе иметь больший размер файла или больший размер раздела, чем другая файловая система?

Одна из моих теорий проистекала из использования inode и того, как файловые системы создают заданное количество inode при форматировании раздела; однако это только объясняет максимальное количество файлов в файловой системе.

1 ответ1

4

Многие такие ограничения исходят из структур данных, содержащих поля фиксированного размера, в которых будет храниться счетчик (байтов, секторов и т.д.).

Например, таблица разделов MBR (как ее используют современные операционные системы) имеет 32-битные поля для подсчета секторов. Это четыре байта, "удобный" размер для процессоров. (Более поздний формат разделения GPT использует 64-битные значения.)

Наибольшее число, которое может уместиться в 32 двоичных разрядах, равно 2 32 -1, или 4294967295 в десятичном виде. Для дисков с 512-байтовыми секторами это означает 2199023255040 байт - всего лишь сектор, не превышающий 2 ТиБ.

Вы можете найти похожие проблемы везде - файловая система FAT32 может иметь только до 2 32 -1 кластеров (хотя кластер в FAT может различаться по размеру; это "единица выделения", которую вы видите при форматировании) и хранить файлы до 2 32 -1 байт (4 ГиБ) из-за того же предела размера поля.

В то время, когда создавались различные файловые системы, их максимальный предел, скорее всего, казался совершенно нелепым и "маловероятным", и было бы совершенно неэффективно работать с 64-битными или, возможно, даже с 32-битными числами в работающей системе. MS-DOS. (Ранние версии MS-DOS даже не поддерживали папки!)

В настоящее время файловые системы используют 64-битные счетчики, что опять-таки "вряд ли является проблемой" (2 64 - это много).


Но кроме того, современные файловые системы сильно изменились. Вместо статических таблиц inode или линейных записей каталога они теперь растут по мере необходимости и используют такие структуры, как деревья B+. (Я говорю о NTFS, ZFS, возможно XFS ...)

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