KopfKrieg Logo
Kann Spuren von Wahnsinn enthalten

Menü

2016-06-18

Dateisysteme – Übersicht & Leitfaden

Dateisysteme bilden, zusammen mit der unterliegenden Hardware, die Grundlage für die Speicherung von Daten. Dank ihnen können wir Ordner anlegen, Dateien erstellen und mittels Rechtesystem den Zugriff festlegen. Die interessantere Frage ist aber nicht was Dateisysteme machen, sondern wie sie das machen. Dieser Artikel soll, neben einer groben Richtlinie welches Dateisystem für welchen Zweck geeignet ist, auch einen Einblick in die technische Entwicklung geben. Eine Erklärung der Fachbegriffe entfällt hier allerdings, da dies weit über das Ziel des Artikels hinausgehen würde.

Dateisysteme und die Evolution

Wie auch alles andere entwickeln sich Dateisysteme mit der Zeit weiter (zugegeben, noch nicht eigenständig, aber das kommt mit Sicherheit auch noch irgendwann). Anders formuliert: Wir haben mittlerweile mehrere Generationen von Dateisystemen. Wie man diese Generationen nun unterteilt ist wieder eine andere Frage. Ich orientiere mich hierbei an der Definition, welche man in diesem Artikel genauer nachlesen kann. Zudem werden im Folgenden lediglich historisch relevante Dateisysteme (und, genau genommen, auch Datenträger) sowie der aktuelle Stand genannt. Wer auch alle Exoten kennenlernen möchte, Wikipedia hat hierzu eine sehr schöne Liste.
  • Generation 0
    Überhaupt keine Organisation. Es gibt weder Dateien noch Ordner, lediglich einen Datenstrom welcher gelesen und verarbeitet wird
    • Lochkarten
      Eingeführt im 19. Jahrhundert (wenn auch ursprünglich nicht für Computer)
  • Generation 1
    Einfacher wahlfreier Zugriff möglich, aber noch ohne Ordner. Es gibt lediglich Dateien
    • Apple DOS
      1978 eingeführt, bezeichnet sowohl das Dateisystems als auch das Betriebssystem
  • Generation 2
    Organisation mittels Dateien und Ordner möglich
    • FAT(32)
      Standard für Wechseldatenträger wie USB-Sticks, Speicherkarten, für Kameras, Navigationsgeräte, und als Kompatibilitätslayer unter Smartphones. Die erste Version wurde bereits 1977 eingeführt, was man mittlerweile vor allem an den technischen Limitierungen merkt (etwa der maximalen Dateigröße von 4GB)
  • Generation 3
    Metadaten wurden hinzugefügt. Dateien und Ordner besitzen nun einen Eigentümer, es gibt Berechtigungen, Zeitstempel, Hard- und Softlinks, generell für Mehrbenutzersysteme geeignet
    • Minix
      Einfaches Dateisystem, welches auch das erste unter Linux unterstützte darstellt. Einführung 1987
    • Ext2
      Nachfolger von Minix, Einführung 1993
    • exFAT
      2006 als Alternative für NTFS eingeführt, mittlerweile dient es aber eher als Nachfolger für FAT32. Leider unterstützen nur wenige Geräte das neue Format
  • Generation 4
    Fügt Journaling hinzu – das Dateisystem kann nun Fehler erkennen, die etwa durch einen plötzlichen Stromausfall verursacht wurden. Teilweise mit integrierter Kompression und anderen netten Kleinigkeiten. Journaling-Dateisysteme stellen den aktuellen Standard unter der Mehrheit der heutzutage verwendeten Dateisysteme im privaten Gebrauch dar
    • NTFS
      Dateisystem, welches Windows verwendet. Wurde über die Zeit immer wieder erweitert, die Einführung war bereits 1993 (Journaling wurde nachträglich eingeführt, d.h. alte Versionen von NTFS gehören zur dritten Generation der Dateisysteme)
    • HFS+
      Standard unter Mac OS X, wurde erst nachträglich um Journaling erweitert. Einführung um 1998
    • Ext3
      ext2 mit Journaling-Funktion, Einführung im Jahr 2001
    • Ext4
      Nachfolger von ext3 welcher vorwiegend technische Beschränkungen aufhebt und neue Funktionen hinzufügt (wie Prüfsummen der Metadaten). War beziehungsweise ist das momentan eingesetzte Standarddateisystem unter Linux-basierten Betriebssystemen. Einführung 2008
  • Generation 5
    Der – Zitat – "neue geile Scheiß". Copy-on-Write, Prüfsummen, RAID-Funktionalität, Kompression, Volume-Management, Snapshots, Deduplizierung. Insgesamt eine sehr hohe Komplexität, die auch einige Nachteile mit sich zieht. Bis auf wenige Ausnahmen für nahezu alle Einsatzgebiete geeignet. Genaueres kann man hier nachlesen
    • ZFS
      2006 eingeführtes Dateisystem, wegen Lizenzproblemen kaum in Verwendung, auch wenn es technisch weit fortgeschritten ist. Benötigt relativ viel Arbeitsspeicher
    • Btrfs
      Erstveröffentlichung 2009, vermutlich das zukünftige Standarddateisystem unter Linux-basierten Betriebssystemen und unter anderem einer der ausschlaggebenden Gründe, warum dieser Beitrag überhaupt existiert. Zudem gibt es mittlerweile einen (wenn auch noch experimentellen) Treiber für Windows
An dieser Stelle seien auch noch die Dateisysteme ReFS und APFS erwähnt. Beides stellen Dateisysteme der fünften Generation dar, Ersters von Microsoft als Nachfolger für NTFS, Letzteres von Apple als Nachfolger für HFS+. Allerdings ist ReFS bisher nur für Server verfügbar, für den Privatanwender daher irrelevant, zu APFS hingegen ist noch zu wenig bekannt als dass ich darüber überhaupt eine Aussage treffen möchte (Eine Markteinführung dürfte ~2017 erfolgen).

Und was soll man jetzt wo einsetzen?

Reduzieren wir obige Liste auf die noch eingesetzten Dateisysteme bleiben übrig:
  • exFAT
    Zum allgemeinen Datenaustausch unter den größeren Betriebssystemen, für externe Festplatten, USB-Sticks, etc.
  • FAT32
    Als Alternative zu exFAT, wenn entweder die Unterstützung fehlt (etwa bei Kameras, Navigationsgeräten) oder alte Gerät eingesetzt werden (die nur FAT32, aber nicht exFAT unterstützen). Größtes Problem ist hierbei die Beschränkung auf eine maximale Dateigröße von 4GB, welche bei exFAT nicht mehr vorhanden ist
  • NTFS
    Für Festplatten, wenn hauptsächlich Windows eingesetzt wird. Kann mit passendem Treiber sowohl unter Mac OS X als auch Linux-basierten Betriebssystemen gelesen und beschrieben werden. Leider ist unter unoxiden Systemen der FUSE-Treiber relativ schlecht, d.h. die Datenrate bricht bei schwacher Hardware ein (selbstverständlich nicht unter Windows…)
  • HFS+
    Wenn ausschließlich Apple-Geräte eingesetzt werden
  • Ext4
    Wenn ausschließlich Linux-basierte Systeme eingesetzt werden, teilweise kommen sogar Smartphones und Tablets mit Android mit dem Dateisystem zurecht (und stellt daher eine deutliche Verbesserung gegenüber FAT32-formatierten Datenträgern dar)
  • Btrfs
    Für Linux-Distributionen, wenn man sich traut den neuen Standard zu verwenden. Die Mehrheit der Funktionen ist stabil, lediglich bei Verwendung von RAID5/6 kann es meiner Erfahrung nach noch zu Problemen kommen. Bietet gegenüber ext4 deutliche Vorteile (siehe auch Dateisysteme – Fünfte Generation)