Dlaczego systemy operacyjne mają ograniczenia rozmiaru plików?


10

Co ogranicza plik do pewnego maksymalnego rozmiaru w zależności od systemu operacyjnego?

Z tej strony :

alternatywny tekst

Nie do końca to rozumiem. Jeśli masz miejsce do przechowywania, co jeszcze może być ograniczeniem? Powinieneś być w stanie przechowywać tyle danych, ile chcesz (nawet w jednym pliku), chyba że zabraknie miejsca na dysku.

Odpowiedzi:


19

Systemy plików muszą przechowywać rozmiary plików (w bajtach lub w niektórych jednostkach zależnych od systemu plików, takich jak sektory lub bloki). Liczba bitów przypisanych do rozmiaru jest zwykle ustalana na kamieniu, gdy system plików jest zaprojektowany.

Jeśli zezwolisz na zbyt wiele bitów dla tego rozmiaru, każdy plik zajmie trochę więcej miejsca, a każda operacja będzie nieco wolniejsza. Z drugiej strony, jeśli pozwolisz na zbyt małą liczbę bitów dla tego rozmiaru, pewnego dnia ludzie będą narzekać, ponieważ próbują zapisać plik 20EB, a twój system plików crap im na to nie pozwoli.

W tamtym czasie, kiedy systemy plików, o których wspomniałeś, zostały zaprojektowane, posiadanie dysku o wielkości wystarczającej do osiągnięcia limitu brzmiało jak science fiction. (Z wyjątkiem FAT32, ale firma, która go promowała, przewidziała go jako środek pośredni, zanim wszyscy przyjęli swój błyszczący nowy NTFS, a ponadto nigdy nie byli bardzo dobrzy w przewidywaniu rosnących wymagań).

Inną rzeczą jest to, że do końca ubiegłego wieku większość sprzętu konsumenckiego (a nawet serwerowego) mogła obsługiwać jedynie szybkie obliczenia z wartościami 32-bitowymi, a systemy operacyjne zwykle używały wartości 32-bitowych dla większości rzeczy, w tym rozmiarów plików. 32 bity oznaczają 4 GB, więc systemy operacyjne były zwykle ograniczone do 4 GB plików niezależnie od systemu plików, często nawet 2 GB, ponieważ korzystały z podpisanych liczb całkowitych. Każdy poważny system operacyjny komputera lub serwera używa obecnie 64 bitów na rozmiary plików i przesunięcia, co stawia limit na poziomie 8EB.


2
+1. Wyjaśnienie dla niewtajemniczonych - EB jak w eksabajtach, jak w milionach terabajtów.
Shinrai,

8

Struktury danych na dysku są zwykle limitem. Sprawdź, jak te systemy operacyjne formatują dyski i jak śledzą części plików na dysku, a zrozumiesz, dlaczego mają takie ograniczenia. System plików FAT jest dość dobrze udokumentowany w Internecie (patrz na przykład Wikipedia ) i widać, że ich wybór liczb całkowitych dla niektórych pól struktury dysku ostatecznie ogranicza ogólny rozmiar pliku, który można przechowywać z tym formatem dysku.


1

Ograniczenie to wynika po prostu z faktu, że podczas pisania specyfikacji systemów archiwizacji nigdy nie sądzono, że dyski twarde będą o wiele większe ... lub inne ograniczenia techniczne podczas projektowania specyfikacji.

Myślę, że obecnie ograniczenia w nowych systemach archiwizacji zwykle idą w kierunku zamierzonego zastosowania.

... Trudno byłoby każdemu zespołowi technicznemu wydać system archiwizacji i powiedzieć, że obsługuje on 500 dysków twardych Petabyte bez przeprowadzania testów.

Mój pierwszy laptop to 286 z 40 MB dyskiem twardym ... Nigdy bym nie wyobrażał sobie, że kiedykolwiek potrzebowałbym (lub przekroczyłby limit) FAT w tym czasie!

Myślę, że obecne ograniczenie NTFS wynosi około 16 TB na wolumin, 2 TB na plik ... szczerze mówiąc, to jest (i powinno być) dobre przez pewien czas - wszystko, co jest zdolne (lub potrzebuje) do zapisywania plików większych niż 2 TB, zwykle ma zdolność dzielenie plików i / lub podobne funkcje administracyjne (np. serwer SQL).


1

Prosta odpowiedź: musisz być w stanie odczytać plik, więc musisz mieć możliwość zaadresowania pliku. Dostęp będzie miał miejsce za pomocą struktur danych, które mają ograniczenia. Utkniesz z najniższym wspólnym mianownikiem; ograniczenia fizyczne (dysk, karta SD itp.), ograniczenia systemu plików i ograniczenia systemu operacyjnego.


Plik można adresować w wielu fazach, np. Segment, bank pamięci,
porcja

0

Znajomość wielkości każdego pliku to po prostu uproszczenie, do którego przywykliśmy. Nie musi tak być i nie zawsze tak było.

Stare komputery mainframe nigdy nie wiedziały, jak duży był plik taśmy, dopóki nie przeczytał go do końca (i nawet wtedy nie mógł śledzić rozmiaru). Nawet pliki dyskowe były często otwierane sekwencyjnie i powiększały się w miarę ich rozszerzania. Ich rozmiary (w bajtach) nie zostały zapisane i, ogólnie rzecz biorąc, nie mogły być obliczone bez pełnego ich odczytania ze względu na zmienne rozmiary sektorów i inne dziwne cechy.

Nie byłoby trudno zaprojektować system plików, który nie śledziłby rozmiaru pliku i nie pozwalał im rosnąć bez ograniczeń.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.