2011-01-11 12 views
14

Ich bin nicht auf der Suche nach einer Problemumgehung; Ich hätte gerne eine Erklärung. Die meisten Links, die ich über Google gefunden habe, sagen mir nur, dass das Dateilimit 4 GB beträgt, aber nicht warum.Warum sind FAT32-Festplatten auf 4 GB-Dateien beschränkt?

Ich bin mir bewusst, die Erklärung von Wikipedia: http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

Aber dies noch nicht gehen ins Detail, warum. (Was hat SCANDISK damit zu tun?)

Vielleicht werde ich dann verstehen, ob es möglich ist, die Dateigröße von 4 GB zu überwinden.

Antwort

5

diese Antwort zu erweitern, ist FAT32 von FAT16 und FAT12 abgeleitet. Wenn FAT12 eingeführt wurde, wurde auf PCs ein 16-Bit-Betriebssystem ausgeführt, und es gab keine Laufwerke, die größer als zehn Megabyte waren. Ich glaube nicht, dass jemand erwartet hat, dass irgendjemand auf einem PC jemals eine Datei benötigen würde, die vierhundert Mal so groß wie das größte verfügbare Laufwerk ist. Selbst wenn Microsoft die Voraussicht hatte, für jeden Verzeichniseintrag ein zusätzliches Byte zuzuweisen, um die Bits 32-39 der Dateigröße zu halten (was Dateien bis zu einem Terabyte erlaubt), ist es zweifelhaft, ob irgendwelche Anwendungsprogrammierer es benutzt hätten. Keine Sprachen boten eine bequeme Unterstützung für Integer-Mathe größer als 32 Bit; Sogar 32-Bit-Mathematik wurde als ziemlich schick angesehen.

Eine größere Frage in meinem Kopf ist, warum ich keine Bemühungen zu einer Standard-Nicht-FAT32-Speicherschnittstelle bewusst ist, die nicht auf sequenziell nummerierten Sektoren basiert. Sowohl Flash-Laufwerke als auch Festplatten könnten davon profitieren, dass sie die logische Bedeutung verschiedener Sektorschreibvorgänge kennen (im Fall von Flash, weil dadurch die Notwendigkeit entfällt, gelöschte Sektoren beim Ausführen des Verschleißmanagements zu kopieren; im Fall von Festplatten, weil dies erlauben würde Schreibvorgänge, die auf eine Weise neu sortiert werden, die Datenkonsistenzanforderungen nicht verletzt.

21

Da FAT32 32-Bit-Dateigrößen speichert und das Maximum, das Sie in 32 Bits speichern können, ist 2^32-1 ~ = 4.29e9. 2^32-1 Bytes = 4 GB - 1 Byte.

(Dies ist in der Tat in dem Wikipedia-Artikel erklärt.)

+0

Ja, das weiß ich, aber * warum * macht es das? Nach einer zufälligen Konvention? Sicherlich wussten die Leute, die das Dateisystem entworfen hatten, dass das die Grenze sein würde, also warum sollte man sich mit diesem Limit zufrieden geben? War es wegen der Hardware, die zu der Zeit verfügbar war? – user5243421

+12

FAT32 wurde auf 32-Bit-Hardware für ein 32-Bit-Betriebssystem mit einem 32-Bit-Compiler implementiert, also ist es eine naheliegende Wahl und alles andere als 32 Bits hätte kostbare Prozessorzyklen, Speicherplatz und Programmierzeit gekostet. (Damals dachten wir, 4GB wären ziemlich groß für eine HD, geschweige denn für eine einzige * Datei *.) –

+0

Ah, sehr interessant. Genau darum habe ich mich gewundert. Vielen Dank! – user5243421

0

Ich habe den gleichen Zweifel, und schließlich festgestellt, dass jede Datei ihre eigenen Metadaten enthält 4 Bytes für die Dateigröße. Die maximale Dateigröße beträgt also 4G - 1 Byte.

Verwandte Themen