Navigation überspringen

Dateisystem HFS von Apple-Computern

Das Mac Dateisystem HFS

Wie auch jedes andere Betriebssystem verwendet MacOS ein eigenes, an seine Bedürfnisse angepasstes Dateisystem. Das MacOS Dateisystem heißt »HFS« (Hierarchical File System). Die Struktur dieses Systems bietet die Grundlage für die Hierarchien des Finders.

Jedes Objekt, egal ob Ordner oder Datei, bekommt eine ID-Nummer, die im Katalog abgelegt wird. Jedes neue Objekt erhält eine neue ID, damit die Eindeutigkeit gewährleistet bleibt. IDs von bereits gelöschten Objekten werden nicht mehr vergeben.

Das Dateisystem kann ein Objekt auf der Festplatte nur anhand dieser ID-Nummer wiederfinden – nicht anhand des Dateinamens. Zusätzlich wird zu jedem Objekt die ID des Ordners gespeichert, in dem es sich befindet. So ist der Finder in der Lage, die komplette Hierarchie zurückzuverfolgen, in der sich ein Objekt befindet.

In einem Katalog wird für jede Datei auf der Festplatte der Aufenthaltsort eingetragen. Ein anderer Katalog beinhaltet die Standorte von fragmentierten Dateien und deren weitere Teile.

Zur Adressierung dieses Aufenthaltsortes benutzt das HFS eine 16 Bit große Zahl. Das heißt, eine Festplatte kann in höchstens 65.536 Zuteilungsblöcke geteilt werden. Da die Größe eines Zuteilungsblocks durch 512 Bytes (die Größe eines physikalischen Blocks) teilbar sein muss, sind es in der Regel weniger. Die Größe der Blöcke nimmt mit der Größe der Festplatte zu. Bei 1 GB sind es 17 KB, bei 2 GB schon 33 KB und bei 20 GB sind es 350 KB.
Jeder Block kann nur eine Datei beinhalten. Ist diese aber nur wenige Bytes groß, so wird der restliche Platz verschwendet.

Anmerkung: Als das HFS entwickelt wurde, galt eine 20 GB Platte noch als sehr groß.

Weiterentwicklung zu HFS+

Seit MacOS 8.1 können Festplatten auch mit einem neuen, erweiterten Dateisystem formatiert werden.

Mit dem »MacOS Extended Format« (HFS+) formatierte Festplatten können nur vom MacOS 8.1 oder einer neueren Version gelesen werden. Wenn eine ältere MacOS Version auf die Festplatte zugreift, erscheint lediglich eine Textdatei mit dem Namen »Wo sind die Dateien?«.

HFS+ benutzt für die Adressierung eine 32 Bit große Zahl. Das heißt, es können bis zu 4.294.967.296 Blöcke adressiert werden. Zwar verschwenden kleine Dateien so weniger Platz, aber zu viele Blöcke verlangsamen die Arbeit des Dateisystems. So wählt man einen Kompromiss zwischen Platz und Geschwindigkeit. Je größer das Volume, desto größer die Blocks (Volume kleiner 256 MB: Blockgröße 512 Bytes; Volume größer als 1 GB: Blockgröße 4 KB).

Festplattentreiber unter MacOS

Das MacOS benutzt, wie jedes andere Betriebssystem auch, für jedes Laufwerk einen eigenen Treiber.

Im Gegensatz zu anderen Betriebssystemen legt das MacOS die Treiber aber nicht im System ab, sondern schreibt sie beim Initialisieren des Volumes direkt in den Startblock des Laufwerks. Beim Mounten des Volumes liest Mac OS dann diesen Treiber. Durch dieses Verfahren können beliebige Laufwerke mit einem HFS-formatierten Volume an beliebige Macs angeschlossen und mit individuellen Treibern betrieben werden. Man muss die Laufwerke nicht vorher installieren (True Plug & Play). Auf diese Weise kann der Mac auch von anderen Medien wie ZIP-Disketten, Wechselmedien oder CDs starten.

Für Laufwerke, deren Volumes nicht HFS-formatiert sind, enthält »PC Exchange« die passenden Treiber.

Aufbau einer HFS-formatierten Festplatte

HFS-formatierte Festplatte (Aufbau)

HFS-formatierte Festplatte vereinfacht dargestellt

- Startblock
Hier wird das Volume als HSF-Volume identifiziert und der Festplattentreiber platziert.
- Bereichs-B-Baum
In diesem Katalog werden die Positionen von Dateifragmenten gespeichert.
- Volume-Information
In diesem Bereich befinden sich verschiedene Informationen, z.B. die Nummer, die das nächste Objekt bekommt und die Objektnummer des aktiven Systemordners.
- Katalog-B-Baum
Hier werden die Objektinformationen gespeichert.
- Volume-Bitmap
Hier wird das Volume abgebildet, so dass belegte und unbelegte Blöcke erkannt werden können.
- Der restliche Platz
… wird als Datenbereich verwendet.