FAT - File Allocation Table
Ch. Schnidrig
Einleitung:
-----------
Fat ist abgekürzt und heisst File Allocation Table was auf Deutsch soviel
wie Dateizuordnungstabelle bedeutet. Ich möchte mit diesem Text die FAT
näher bringen, was in 10 Minuten nicht ganz gelingt. Ferner möchte ich noch
einen kleinen Einblick in andere Filesystems werfen.
Zu Begin muss ich ein bisschen ausholen und möchte euch erklären wie die
Struktur auf einer mit FAT-formatierten Harddisk aussieht.
Dateiarchitektur und sinnvolle Partitionierung:
-----------------------------------------------
Wenn man zum Beispiel eine neue HD in einen PC einbaut muss man diese
zuerst partitionieren indem man sich mit dem bei MS-DOS enthaltenem Tool
Fdisk bedient. Mit diesem kann man mehrere Partitionen und virtuelle
Lauf-werke einrichten. Das heisst bei nur einer physikalischen Platte
stehen nach diesem Vorgang mehere Laufwerke zur Verfügung. Dies macht in
sofern einen Sinn weil die HD immer grösser werden und das DOS langsam aber
sicher an die Grenze der adressierbaren Bereiche bringt.
MS-DOS resp. FAT kann nähmlich pro Laufwerk ganze 65536 (2E16) Cluster
adressieren. Cluster, das sind die kleinsten Zuordnungseinheiten die ein
Datenträger unter FAT haben kann. Ein Cluster ist mindestens 512 Byte
gross, dies hängt wiederum von der Grösse des LW ab. Bei den oben
genannten 512 Byte Grösse der Clusters und deren Anzahl von 65536 ergibt
das einen Speichplatz von 32 MB. Da dieses Volumen schon seit einiger Zeit
überholt ist nehmen wir eine grösse von einem GB an. Dies würde anhand der
max. Anzahl der Clusters von 65536, 16Kb grosse Cluster geben.
Das eigentliche Problem liegt darin, dass wir bei der steigenden Grösse der
Cluster auch mehr Platzverluste haben. Weil jede Datei und sei sie noch so
klein - beansprucht dabei min. einen Cluster auf der HD, der in der FAT als
belegt markiert wird. Die Differenz zwischen dem tatsächlichen benötigtem
und dem auf der Platte belegten Platz geht also auf dem Verwaltungsweg
flöten. Sind die Cluster klein genug ist das kein Problem.
Unglücklicherweise besitzt das FAT-Dateisystem konstante Zahlen von
Clustern. Siehe Tabelle.
Clustergrösse x | max. Clusterzahl = | max. Partition
------------------+------------------------+------------------------
512 Bytes | 65 536 | 33 554 432 (=32MB)
1024 Bytes | 65 536 | 67 108 864 (=64MB)
2048 Bytes | 65 536 | 134 217 728 (=128MB)
4096 Bytes | 65 536 | 268 435 456 (=256MB)
8192 Bytes | 65 536 | 536 870 912 (=512MB)
16384 Bytes | 65 536 | 1073 741 824 (=1024MB)
32768 Bytes | 65 536 | 2147 483 648 (=2048MB)
Die Folge: Die Cluster werden auf grossen Partitionen entsprechend
unhandlich. Da jede Datei min. einen Cluster belegt, ist der Platzverlust
sehr hoch - vor allem bei kleinen Dateien. Ein Beispiel: 500 Dateien a 600
Byte benötigen theoretisch 300Kb. Auf einer 1,2-GB-Partition belegt jede
dieser Dateien 32 Kb, also insgesamt 15,6 MB ! Daher ist es zusätzlich
sinnvoll mehrere Partitionen einzurichten.
FAT was ist das?
----------------
FAT wie schon oben erwähnt heisst auf Deutsch Dateizuordnungtabelle. Diese
Tabelle befindet sich in den ersten Sektoren einer Harddisk (hinter dem
soge-nannten Boot-Loader) und enthält Informationen zum auffinden der
Dateien. Aus Gründen der Sicherheit ist die FAT noch ein zweites Mal auf
der Festplatte abgelegt. So kann sie im Falle einer Beschädigung
wiederhergestellt wer-den. Der Boot-Loader enthält die Bootinformation, die
das Betriebsystem zum Booten benötigt. Er beginnt auf dem ersten Sektor der
aktiven Partition. Bei einer FAT-Partition ist dieser Bereich genau einen
Sektor gross. Das FAT-Dateisystem ist in sogenannten Sektoren, Clustern,
Spuren und Zylindern organisiert.
Performance ausgebremst:
------------------------
Wenn man nun eine Datei auf der Harddisk erstellt, wird im
Verzeichnisbereich der HD ein Verzeichniseintrag angelegt. Gleichzeitig
nimmt die FAT den ersten Cluster, der Daten der Datei enthält, auf. Die FAT
ist bei jeder neu auf den Datenträger kopierten oder geänderten Datei zu
aktualisieren. Dieser Vorgang ist recht zeitaufwendig, da sich die FAT am
Anfang des Mediums befindet und die Schreib-/Leseköpfe daher jedesmal auf
der Spur 0 des Datenträgers zu positionieren sind. Ferner ist beim FAT
keine Struktur vorhanden. Die Daten erhalten einfach den ersten verfügbaren
freien Platz auf dem Datenträger. Bei einer sehr strak fragmentierten
Festplatte kommt es daher bei grösseren Dateien, die nicht mehr in einem
Stück auf dem Medium abgelegt sind, zu erheblichen Geschwindigkeiteinbussen
beim Lesen und Schreiben. Bei der Namensvergabe zeigt sich FAT recht
rückständig, verglichen mit andern Dateisystemen unterstützt FAT nur 8
Stellen mit einem 3 stelligen Sufflix. Diese Konstellation nennt man
8.3-Konvetion. Zwischen Gross- und Klein-schreibung wird nicht
unterschieden. Auch erlaubt FAT nur maximal 8 untereinader stehende
Unterverzeichnisse. FAT besitzt noch weitere Einschränkungen, die ich jetzt
der Zeit wegen nicht aufzählen möchte. Trotzdem bleibt das mit geringem
Verwaltungsaufwand auskommende FAT die erste Wahl für kleine Harddisks und
Homeusers.
Andere Dateisysteme kurz vorgestellt:
-------------------------------------
V-FAT (Windows 95)
Mit der Entwicklung von Windows 95 sah sich auch Microsoft genötigt, das
betagte FAT-Dateisystem durch einen leistungsfähigeren Nachfolger zu
ersetzen. Das Ergebnis heisst V-FAT soviel wie Virtual-FAT.
V-FAT unterstützt bis zu 255 Zeichen umfassende Dateinamen. Sogar in einer
DOS-Box behalten sie ihre Gültikeit. Ferner unterscheidet es zwischen
Gross- und Kleinschreibung, konventiert aber alle im 8.3 Format
vorliegenden Dateinamen, wie das FAT-Dateisystem, in grosse Buchstaben um.
Um jedoch alten Programmen, die beim Zugriff auf die Festplatte das
FAT-Format erwarten (Virenscanner, Reparaturprogramme, Defragmentierer)
unter Windows 95 eine Existentsberechtigung zu geben, hat Microsoft an der
Grundstruktur des FAT nur wenig geändert.
HPFS (OS/2)
Ab OS/2 Version 1.2 stattete IBM OS/2 mit dem HPFS-Dateisystem (High
Performance File System) aus. Eine bessere Verwaltung und Performance
grosser Harddisks sowie eine flexiblere Namensgebung sind die
Hauptargumente die für HPFS sprechen.
HPFS nutzt die Verzeichnisstruktur von FAT, ergänzt um die Fähigkeit, das
Verzeichnis nach Dateinamen zu sortieren. Zur Namensvergabe sind 254
Zeichen erlaubt, wobei auch HPFS nicht zwischen Gross- und Kleinschreibung
unterscheidet. Unter HPFS findet man keine Cluster. HPFS arbeitet nit 512
Byte grossen Sektoren. Zum schnellen Lesen und Schreiben von Dateinen
versucht HPFS, Dateien in zusammenhängenden Sektoren abzuspeichern. Dazu
wird die HD in Einheiten zu je 8MB organisiert.
NTFS (Windows NT)
Obwohl sich NTFS (New Technology File System), das Dateisystem von Windows
NT, aus Sicht des Anwenders sehr ähnlich zu FAT oder auch HPFS verhält gibt
es doch erhebliche Unterschiede. NTFS erfüllt sogar die strengen
Sicherheitsbestimmungen des US-Verteigungsministeriums.
Die Dateien einer NTFS-Partition von einem DOS- oder HPFS-Datenträger sind
nicht sichtbar oder manipulierbar. Auch lassen sich Zugriffsrechte wie
unter Unix einrichten. Zudem wurde bei der Entwicklung von NTFS ein
Schwerpunkt auf eine saubere Wiederherstellung nach einem Systemabsturz
gelegt: Das Betriebsystem schreibt jede Aktualisierung im Dateisystem in
eine Log-Datei. Kommt es zu einem Systemabsturz, führ NT beim nächsten
hochfahren einen CHKDSK aus. Dabei sind nur Dateien zu überprüfen die nicht
in der Log-Datei stehen.
NTFS organisiert seine Daten in Clustern, wobei die Clustergrösse 512,
1024, 2048, 4096 Byte betragen kann. Die gewünschte Grösse ist bei der
Formatierung anzugeben. Als 64-Bit Dateisystem ist NTFS in der Lage, 2E64
Byte, also 17 Milliarden GB zu verwalten. NTFS ist erst für Partitionen
über 400MB zu empfehlen. Gerade bei kleinen Platten macht sich der grosse
Bedarf an Plattenplatz für die Systemdateien bemerkbar. Sie beanspruchen
immerhin mehr als 4MB pro 100MB Festplattenkapazität.