10

Что ограничивает максимальный размер файла в зависимости от операционной системы?

С этой страницы:

альтернативный текст

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

5 ответов5

19

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

Если вы разрешите слишком много битов для размера, каждый файл будет занимать немного больше места, а каждая операция - немного медленнее. С другой стороны, если вы разрешите слишком мало бит для размера, то однажды люди будут жаловаться, потому что они пытаются сохранить файл размером 20EB, а ваша файловая система дерьма не позволит им.

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

Другое дело, что до конца прошлого века большинство потребительских (и даже серверных) аппаратных средств могли выполнять только быстрые вычисления с 32-разрядными значениями, а операционные системы обычно использовали 32-разрядные значения для большинства вещей, включая размеры файлов. 32 бита означают 4 ГБ, поэтому операционные системы, как правило, ограничиваются файлами 4 ГБ независимо от файловой системы, часто даже 2 ГБ, поскольку они используют целые числа со знаком. Любая серьезная настольная или серверная операционная система в настоящее время использует 64-битные размеры файлов и смещения, что устанавливает ограничение в 8EB.

8

Структуры данных на диске обычно являются пределом. Изучите, как эти операционные системы форматируют свои диски и как они отслеживают части файлов на диске, и вы поймете, почему у них есть эти ограничения. Файловая система FAT довольно хорошо документирована в режиме онлайн (см., Например, Википедию ), и вы можете видеть, что их выбор целочисленных размеров для некоторых полей структуры диска в конечном итоге ограничивает общий размер файла, который вы можете сохранить с этим форматом диска.

1

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

Я думаю, что в настоящее время ограничения в новых системах подачи документов, как правило, направлены на то, какое ожидаемое использование.

... Любой технической команде было бы сложно выпустить систему хранения и заявить, что она поддерживает 500-петабайтные жесткие диски, даже не проводя тестирование на ней.

Мой первый ноутбук был 286 с жестким диском на 40 МБ ... Я никогда бы не подумал, что когда-либо нуждаюсь (или нарушаю ограничения) FAT в то время!

Я думаю, что текущее ограничение NTFS составляет около 16 ТБ на том, 2 ТБ на файл ... откровенно говоря, это (и должно быть) хорошо в течение некоторого времени - все, что способно (или нуждается) в записи файлов размером более 2 ТБ, обычно имеет возможность разбивать файлы и / или аналогичные административные функции (например, сервер SQL).

1

Простой ответ: вам нужно уметь читать файл, поэтому вы должны уметь обращаться к файлу. Этот доступ будет осуществляться через структуры данных, которые имеют ограничения. Вы застрянете с наименьшим общим знаменателем; физические (диск, SD-карта и т. д.) ограничения, ограничения файловой системы и ограничения ОС.

0

Знание размера каждого файла - это просто упрощение, к которому мы привыкли. Так не должно быть и не всегда.

Старые мэйнфреймы никогда не знали, насколько большим был ленточный файл, пока он не прочитал до конца (и даже тогда он, возможно, не отслеживал размер). Даже к дисковым файлам часто обращались последовательно, и они только увеличивались по мере их расширения. Их размеры (в байтах) не были записаны и, в общем, не могли быть рассчитаны без их полного чтения из-за переменных размеров секторов и других странных особенностей.

Не составит труда спроектировать файловую систему, которая не отслеживала бы размер файла и позволяла им расти неограниченно.

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