HFS (Dateisystem)
# HFS (Dateisystem)

Das Hierarchical File System (engl. Hierarchisches Dateisystem) ist ein Dateisystem, das von Apple für Computer mit der Macintosh System Software (ab 1996 in Mac OS umbenannt) entwickelt wurde. Es ersetzte 1985 mit der System Software 0.5 (System 2.1) das erst ein Jahr zuvor eingeführte Macintosh File System (MFS). In Mac OS X wurde es als Mac OS Standard bezeichnet.
Auch andere Betriebssysteme, wie BeOS und Linux, haben Lese- und Schreibunterstützung für HFS. Obwohl es ursprünglich für Disketten und Festplatten entworfen wurde, kann man es auch auf nur lesbaren Medien wie CD-ROMs finden. HFS ist ein proprietäres Format. Da es aber sehr gut dokumentiert ist, gibt es in den meisten modernen Betriebssystemen Lösungen, um auf HFS-formatierte Medien zugreifen zu können.
Es wurde 1998 mit der Veröffentlichung von Mac OS 8.1 von HFS+ abgelöst, das in Mac OS X mit Mac OS Extended bezeichnet wird.

## Geschichte

HFS wurde im Januar 1986 als neues Dateisystem für Apple-Macintosh-Computer vorgestellt. Die Abkürzung HFS steht für Hierarchical File System, hierarchisches Dateisystem, also ein Dateisystem mit Unterverzeichnissen – im Gegensatz zum zuvor verwendeten Macintosh File System (MFS), welches als „flat file system“ keine Unterverzeichnisse unterstützt und nur von den frühesten Macs benutzt wurde.
1998 stellte Apple HFS+ vor, um ineffiziente Zuweisung von Speicherplatz in HFS anzugehen und weitere Verbesserungen hinzuzufügen. Jedoch kann man seit Einführung von Mac OS X nicht mehr von einem HFS-Volume starten, da die maximale Anzahl Dateien (65.536) auf einem HFS-Volume nicht ausreicht. HFS wird noch von Versionen des Mac OS X Leopard (10.5, 2007) voll unterstützt. In Mac OS X Snow Leopard (10.6, 2009) wurde die Schreibunterstützung entfernt. In macOS Sierra (10.12, 2016) ist HFS nicht mehr enthalten.

## Weitere Einzelheiten

HFS unterstützt Dateinamen bis zu einer Länge von 31 Zeichen, Mac-spezifische Metadaten sowie Dual-Fork-Dateien. Beim Dual-Fork-Verfahren wird die eigentliche Datei (data fork) um zusätzliche Informationen ergänzt (resource fork), z. B. Icons. Beide Dateiteile können – jeder für sich getrennt – gelesen und geschrieben werden, dabei wird die „data fork“ meist sequentiell, die „resource fork“ dagegen wie eine Datenbank verwendet. Die Aufteilung ist für den Endbenutzer unsichtbar, jedoch für den Programmierer zugänglich.