HFS Plus

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
HFS+
Hersteller Apple
Vollständige Bezeichnung Hierarchical File System Plus
Erstveröffentlichung 19. Januar 1998 (Mac OS 8.1)
Partitionskennung Apple_HFS (Apple Partition Map)
0xAF (MBR)
Apple_HFSX (Apple Partition Map) when HFSX
48465300-0000-11AA-
AA11-00306543ECAC
(GPT)
Technische Umsetzung
Verzeichnisse B*-Baum
Dateien B*-Baum
Defektblockliste B*-Baum
Maximalwerte
Größe einer Datei 8 EiB[1]
Anzahl aller Dateien 232-1 (4.294.967.295)
Länge des Dateinamens 255 Zeichen
Größe des Dateisystems 8 EiB[1]
Erlaubte Zeichen im Dateinamen HFS+: erzwungene Case-insensitivity durch NFD-Unicode.
HFSX: jedes Unicode-Zeichen, einschließlich NUL.
Eigenschaften
Datumsangaben einer Datei Erzeugt, verändert, gesichert, letzter Zugriff, geändert
Datumsbereich 1. Januar 1904 bis 6. Februar 2040
Forks unterstützt
Dateiattribute Farbe (3 Bits, alle anderen 1 Bit), locked, custom icon, bundle, invisible, alias, system, stationery, inited, no INIT resources, shared, desktop, extended attributes (ab Mac OS X Leopard)
Dateirechte-Verwaltung Unix-Rechte, ACLs (ab Mac OS X Tiger )
Transparente Komprimierung Ja, ab Mac OS X Snow Leopard
Transparente Verschlüsselung mit Hilfe des Logical Volume Managers Core Storage; siehe FileVault
Unterstützende Betriebssysteme Mac OS 8, Mac OS 9, Mac OS X, teilweise Linux, Windows NT (nur lesbar)

Das Dateisystem HFS Plus oder – gängiger – HFS+, ist eine Weiterentwicklung von HFS. Es ist das Standard-Dateisystem für Macintosh-Rechner und iOS-Geräte und kann für alle internen und externen Speichermedien verwendet werden. Im Betriebssystem selbst wird es als Mac OS Extended und sein Vorgänger HFS als Mac OS Standard bezeichnet.

Die später ergänzte Journaling-Erweiterung (Abkürzung jHFS+) ist bei aktuellen Macs standardmäßig aktiv und wird auch vorgeschlagen bei der Datenträgerformatierung. Wie etwa die freien Dateisysteme ext3/ext4, XFS und ReiserFS oder das kommerzielle NTFS der Firma Microsoft, weist es damit eine höhere Stabilität gegenüber Dateisystemen auf, die kein Journaling verwenden (FAT16 und FAT32, ext2, HFS u. a.).

Während HFS+ auf Macintosh-Rechnern standardmäßig nicht zwischen Groß- und Kleinschreibung unterscheidet, kommt auf iOS-Geräten eine erweiterte Dateisystem-Variante (Abkürzung HFSX) zum Einsatz, die diese Unterscheidung macht.[2]

Die Zuordnungseinheiten von HFS+ sind kleiner als bei FAT16/32. Dadurch kann sich bei der Partition bzw. bei der Partitionsverwaltung und Zugriffsgeschwindigkeit eine höhere Effizienz ergeben.

Kompatibilität[Bearbeiten | Quelltext bearbeiten]

Unixoide Betriebssysteme[Bearbeiten | Quelltext bearbeiten]

Unter den Linux-Distributionen ist das Lesen und Schreiben von HFS/HFS+ oft schon durch einfaches mounten möglich, wenn der Kernel das hfsplus-Dateisystem unterstützt; ansonsten sind noch die Softwarepakete hfsutils (nur HFS) sowie hfsplus zum Nachinstallieren verfügbar. Für Schreibunterstützung kann es notwendig sein, hfsprogs zu installieren[3] oder das Dateisystem-Journal zu deaktivieren.[4] Auch für BSD-Systeme gibt es entsprechende Software-Pakete. Das heißt, dass die Daten auf dem Datenträger von UNIX/Linux-Systemen gelesen werden können, wenn die entsprechende Kernel-Unterstützung installiert wurde.

Microsoft Windows[Bearbeiten | Quelltext bearbeiten]

HFS+ kann von NT-basierenden Windows-Betriebssystemen nur mit Hilfe von zusätzlicher Software genutzt werden. Boot Camp 3.0, welches mit Mac OS X Snow Leopard mitgeliefert wird, bietet die Möglichkeit, lesend auf HFS+-Dateisysteme zuzugreifen.[5]

Kommerzielle Software zum Lesen von HFS(+) unter Windows[Bearbeiten | Quelltext bearbeiten]

  • TransMac von Acute Systems
  • MacDrive von Mediafour
  • HFS+ für Windows von Paragon Software Group
  • MacOpener von DataViz (Entwicklung eingestellt)

Nicht kommerzielle Software zum Lesen von HFS(+) unter Windows[Bearbeiten | Quelltext bearbeiten]

  • HFS+ für Windows Free (ab Windows 8) von Paragon Software Group
  • hfsexplorer von catacombae (Entwicklung eingestellt)

Mac OS X/Classic[Bearbeiten | Quelltext bearbeiten]

Die Classic-Umgebung unter Mac OS X erfordert eine mit HFS+ formatierte Systempartition, das Dateisystem UFS wird nicht unterstützt.

Fragmentierung[Bearbeiten | Quelltext bearbeiten]

HFS und HFS+ sind so ausgelegt, dass sie den größten freien Speicherblock auf der Festplatte suchen, in dem eine Datei gespeichert werden soll. Erst wenn eine Datei nicht in den größten freien Speicherblock passt, wird die Datei aufgeteilt (fragmentiert), und der noch nicht geschriebene Teil wird in einem weiteren Block gespeichert.

Eine solche Vorgehensweise setzt voraus, dass beim Schreiben einer Datei deren Größe bereits vorher bekannt ist. Dies ist unter Mac OS X oft gegeben, da die Systembibliotheken zur Verarbeitung von Dokumenten so ausgelegt sind, dass sie Dateien in der Regel atomar aktualisieren: Beim Speichern einer Änderung wird die aktuelle Version des Dokumentes in einem Rutsch in eine neue Datei geschrieben, danach die frühere Version gelöscht und der Dateiname auf die neue Datei übertragen.

Zusätzlich vermeidet es Mac OS X, frei gewordene Speicherblöcke gelöschter Dateien wiederzuverwenden, falls möglich. Ab Mac OS X 10.2 wird außerdem die Abbuchung freier Blöcke verzögert, um die Reservierung mehrerer kleiner Blöcke in eine einzelne Abbuchung eines großen zusammenhängenden Blockes zusammenzufassen.

Diese Fragmentvermeidung ist wirkungslos, wenn Dateien langsam wachsen, also nach dem ersten Erstellen einer Datei später weitere Blöcke angehängt werden. Ab Mac OS X Panther (10.3) kann das Betriebssystem deshalb auch zur Laufzeit defragmentieren (on the fly defragmentation). Beim Öffnen einer Datei wird geprüft, ob diese in mehr als acht Teile fragmentiert ist. Ist dies der Fall und alle der nachfolgenden Bedingungen treffen zusätzlich zu, wird die Datei in einen genügend großen freien Speicherbereich verschoben und hierdurch defragmentiert:

  • Die Datei wird nur von einem einzigen Prozess geöffnet.
  • Sie liegt auf einem beschreibbaren Medium.
  • Die Dateigröße beträgt höchstens 20 MiB.
  • Innerhalb der letzten Minute wurde die Datei nicht verändert.
  • Das Betriebssystem läuft seit mindestens drei Minuten.

Ein weiteres Verfahren, das ab Mac OS X Panther (10.3) zum Einsatz kommt, ist die automatische Gruppierung intensiv genutzter Dateien (adaptive hot file clustering): Durch kontinuierliches Führen einer Statistik über die Häufigkeit der Lesezugriffe auf jede Datei identifiziert Mac OS X die am intensivsten genutzten Dateien und verschiebt diese in einen Bereich des Dateisystems, der sich direkt hinter den zentralen Metadaten befindet. Bei dieser Verschiebung werden die Dateien defragmentiert und kommen in direkter Nachbarschaft der am häufigsten benutzten Elemente des HFS-Dateisystems zu liegen, so dass Kopfbewegungen der Festplatte minimiert werden. Die Nutzungsintensität einer Datei wird ermittelt, indem die Anzahl der innerhalb eines Beobachtungsfensters der letzten 60 Stunden gelesenen Bytes durch die Gesamtgröße der Datei geteilt wird. Als Speicherbereich für diese Dateien wird 0,5 % der Gesamtkapazität des Dateisystems verwendet. Die Anzahl der Dateien in diesem Bereich wird auf maximal 5.000 beschränkt, und nur Dateien, die höchstens 10 MiB groß sind, nehmen an dem Verfahren teil.

Weitere Defragmentierungsverfahren sind nicht Bestandteil von Mac OS X. Apple rät davon ab, Programme zur nachträglichen Defragmentierung zu verwenden, da sich der Einsatz in der Regel nicht lohnt.

Kritik[Bearbeiten | Quelltext bearbeiten]

Ein bekanntes Problem bei der Verwendung von HFS Plus ist die Voreinstellung auf case-insensitivity, die auf Dateisystemebene erzwungen wird. Durch diese Eigenschaft entstehen ungewollte Inkompatibilitäten im Datenaustausch mit anderen Computersystemen. Anders als z. B. bei NTFS, wo die case-insensitivity von Windows nicht im Dateisystem selbst integriert ist, werden bei HFS Plus die Dateinamen durch den Dateisystemtreiber von Apple direkt umgewandelt.[6]

Obwohl von HFS Plus auch eine strikte case-sensitive Variante existiert – sie wurde als „HFSX“ mit Mac OS X Panther (10.3) eingeführt – wird diese nur sehr selten genutzt, ist daher auch weniger gut getestet und teilweise sogar mit weit verbreiteter Anwendungssoftware inkompatibel.[7][8] Dies ist jedoch keine Einschränkung von HFS Plus sondern vielmehr ein Problem des Betriebssystems, da case-sensitivity unter OS X (bis 2012 Mac OS X) in gleicher Weise auf anderen Dateissystemen (z. B. NTFS mittels NTFS-3G) zu Inkompatibilitäten führt.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b http://support.apple.com/kb/HT2422 Apple Support Dokument zu HFS+ (englisch) abgerufen am 13. November 2010
  2. Jonathan Levin: Mac OS X and iOS Internals: To the Apple’s Core. Wiley, New York 2011, ISBN 1-11-805765-1, S. 23.
  3. Mounting HFS+ with Write Access in Debian: Schreibzugriff auf HFS+ (englisch)
  4. disable HFS+ journaling on Leopard to use disks read/write with linux HFS+-Journal für Schreibunterstützung deaktivieren (englisch)
  5. http://support.apple.com/kb/HT3777?viewlocale=de_DE
  6. Linus Torvalds: Apple's HFS+ is probably the worst file system ever. (englisch) IT-World, 13. Januar 2015, abgerufen am 24. September 2015
  7. Adobe Helpdesk: Error "Case-sensitive drives not supported" or similar install error (englisch) für Adobe Creative Suite unter Mac OS X, abgerufen am 24. September 2015
  8. Steam Support: Case Sensitive Filesystems not supported on Mac (englisch), abgerufen am 20. Februar 2016