Warum haben Betriebssysteme Dateigrößenbeschränkungen?

10

Was begrenzt die maximale Größe einer Datei je nach Betriebssystem?

Von dieser Seite :

Alt-Text

Ich verstehe das nicht genau. Wenn Sie über ausreichend Speicherplatz verfügen, was kann die Einschränkung sein? Sie sollten in der Lage sein, so viele Daten zu speichern, wie Sie möchten (auch in einer einzelnen Datei), es sei denn, Ihnen geht der Speicherplatz aus.

Moeb
quelle

Antworten:

19

Dateisysteme müssen Dateigrößen speichern (entweder in Bytes oder in einer dateisystemabhängigen Einheit wie Sektoren oder Blöcken). Die Anzahl der der Größe zugewiesenen Bits wird normalerweise beim Entwurf des Dateisystems in Stein gemeißelt.

Wenn Sie zu viele Bits für die Größe zulassen, nimmt jede Datei etwas mehr Platz ein und jede Operation etwas langsamer. Auf der anderen Seite, wenn Sie zu wenig Bits für die Größe zulassen, werden sich die Leute eines Tages beschweren, weil sie versuchen, eine 20EB-Datei zu speichern, und Ihr Mist-Dateisystem sie nicht zulässt.

Zu der Zeit, als die von Ihnen erwähnten Dateisysteme entworfen wurden, klang eine Festplatte, die groß genug war, um an die Grenzen zu stoßen, wie Science-Fiction. (Mit Ausnahme von FAT32, aber das Unternehmen, das es beworben hat, beabsichtigte es als Zwischenmaßnahme, bevor alle ihr glänzendes neues NTFS einführten, und sie waren nie sehr gut darin, wachsende Anforderungen zu antizipieren.)

Eine andere Sache ist, dass bis zum Ende des letzten Jahrhunderts die meisten Consumer- (und sogar Server-) Hardware nur schnelle Berechnungen mit 32-Bit-Werten ermöglichen konnten und Betriebssysteme für die meisten Dinge, einschließlich Dateigrößen, 32-Bit-Werte verwendeten. 32 Bit bedeutet 4 GB, daher waren Betriebssysteme unabhängig vom Dateisystem in der Regel auf 4 GB-Dateien beschränkt, häufig sogar auf 2 GB, da sie vorzeichenbehaftete Ganzzahlen verwendeten. Heutzutage verwendet jedes seriöse Desktop- oder Server-Betriebssystem 64 Bit für Dateigrößen und Offsets, wodurch die Grenze bei 8EB liegt.

Gilles 'SO - hör auf böse zu sein'
quelle
2
+1. Klarstellung zum Uneingeweihten - EB wie in Exabyte, wie in einer Million Terabyte.
Shinrai
8

Die Datenstrukturen auf der Festplatte sind normalerweise die Grenze. Wenn Sie untersuchen, wie diese Betriebssysteme ihre Festplatten formatieren und wie sie die Teile der Dateien auf der Festplatte verfolgen, werden Sie verstehen, warum sie diese Einschränkungen haben. Das FAT-Dateisystem ist online ziemlich gut dokumentiert (siehe z. B. Wikipedia ), und Sie können sehen, dass die Auswahl der Ganzzahlgrößen für einige Felder der Festplattenstruktur letztendlich die Gesamtgröße der Datei einschränkt, die Sie mit diesem Festplattenformat speichern können.

Michael Kohne
quelle
1

Die Einschränkung ist einfach auf die Tatsache zurückzuführen, dass beim Schreiben der Spezifikationen der Ablagesysteme nie gedacht wurde, dass Festplatten so viel größer sein würden ... oder andere technische Einschränkungen beim Entwerfen der Spezifikationen.

Ich denke, dass heutzutage Einschränkungen bei neuen Ablagesystemen in der Regel in Richtung der erwarteten Verwendung gehen.

... Es wäre für jedes technische Team schwierig, ein Dateisystem freizugeben und zu sagen, dass es 500 Petabyte-Festplatten unterstützt, ohne jemals die Tests daran durchzuführen.

Mein erster Laptop war ein 286 mit einer 40-MB-Festplatte ... Ich würde mir nie vorstellen, jemals FAT zu benötigen (oder das Limit zu erreichen)!

Ich denke, die derzeitige NTFS-Beschränkung liegt bei 16 TB pro Volume, 2 TB pro Datei ... ehrlich gesagt, das ist (und sollte) für einige Zeit gut - alles, was Dateien schreiben kann (oder muss), die größer als 2 TB sind, kann dies normalerweise Split-Dateien und / oder ähnliche Verwaltungsfunktionen (z. B. SQL Server).

William Hilsum
quelle
1

Einfache Antwort: Sie müssen in der Lage sein, die Datei zu lesen, also müssen Sie in der Lage sein, die Datei zu adressieren. Dieser Zugriff erfolgt über Datenstrukturen mit Einschränkungen. Sie werden mit dem kleinsten gemeinsamen Nenner von stecken bleiben; physische (Festplatten-, SD-Karten- usw.) Grenzwerte, Dateisystembeschränkungen und Betriebssystembeschränkungen.

Reiche Homolka
quelle
Sie können eine Datei in mehreren Phasen adressieren, z. B. Segment, Speicherbank, Block, Byte-Offset usw.
yyny
0

Die Größe jeder Datei zu kennen, ist nur eine Vereinfachung, an die wir uns gewöhnt haben. Das muss nicht so sein und war nicht immer der Fall.

Die alten Mainframes waren nie neu, wie groß eine Banddatei war, bis sie bis zum Ende gelesen hatte (und selbst dann hat sie möglicherweise nicht die Größe im Auge behalten). Sogar auf die Festplattendateien wurde oft nacheinander zugegriffen und wuchs nur, wenn sie erweitert wurden. Ihre Größen (in Bytes) wurden nicht aufgezeichnet und konnten aufgrund variabler Sektorgrößen und anderer ungerader Merkmale im Allgemeinen nicht berechnet werden, ohne sie vollständig zu lesen.

Es wäre nicht schwierig, ein Dateisystem zu entwerfen, das die Dateigröße nicht im Auge behält und es ihnen ermöglicht, unbegrenzt zu wachsen.

Adrian Pronk
quelle