Чому операційні системи мають обмеження розміру файлів?


10

Що обмежує файл, який має якийсь максимальний розмір залежно від операційної системи?

З цієї сторінки :

alt текст

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

Відповіді:


19

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

Якщо ви дозволяєте занадто багато бітів для розміру, ви змушуєте кожен файл займати трохи більше місця, а кожна операція трохи повільніше. З іншого боку, якщо ви дозволите занадто мало біт для розміру, то одного дня люди будуть скаржитися, оскільки вони намагаються зберегти файл 20EB, і ваша файна система crap не дозволить їм.

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

Інша справа, що до кінця минулого століття більшість споживчих (і навіть серверних) апаратних засобів могли вміщувати тільки швидкі обчислення з 32-бітовими значеннями, а операційні системи мали тенденцію використовувати 32-бітні значення для більшості речей, включаючи розміри файлів. 32 біта означає 4 Гб, тому операційні системи мали тенденцію обмежуватися файлами 4 Гб незалежно від файлової системи, часто навіть 2 ГБ, оскільки вони використовували підписані цілі числа. Будь-яка серйозна настільна або серверна ОС сьогодні використовує 64 біти для розмірів і компенсацій файлів, що ставить ліміт у 8 ЕБ.


2
+1. Пояснення непосвяченим - ЕБ як у екбабайтах, як у мільйоні терабайт.
Shinrai

8

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


1

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

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

... Будь-якій технічній команді було б важко випустити систему подачі заяв і сказати, що вона підтримує 500 Petabyte жорстких дисків, не робивши тестування на ній.

Першим моїм ноутбуком був 286 з 40 Мб жорстким диском ... Я б ніколи не уявляв, що коли-небудь знадобиться (або потрапляє межа) FAT!

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


1

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


Ви можете адресувати файл у декілька фаз, наприклад, сегмент, банк пам'яті, фрагмент, зміщення байтів тощо.
yyny

0

Знання розміру кожного файлу - це лише спрощення, до якого ми звикли. Це не повинно бути таким і не завжди було так.

Старі мейнфрейми ніколи не знали, наскільки великий файл стрічки, поки він не прочитав його до кінця (і навіть тоді він, можливо, не відслідковував розмір). Навіть до дискових файлів часто зверталися послідовно і просто зростали в міру їх збільшення. Їх розміри (в байтах) не були записані, і взагалі їх не можна було обчислити, не прочитавши їх у повному обсязі через змінні розміри сектору та інші незвичайні особливості.

Не важко було б розробити файлову систему, яка б не відстежувала розмір файлу і дозволяла їм рости без обмежень.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.