Dateisystem/Arten
Lineare Dateisysteme
Die historisch ersten Dateisysteme waren lineare Dateisysteme auf Lochband oder Lochkarte sowie die noch heute für die Sicherung von Daten eingesetzten Magnetbandsysteme
Hierarchische Dateisysteme
Frühe Dateisysteme (CP/M, Apple DOS, Commodore DOS) hatten nur ein einzelnes Verzeichnis, das dann Verweise auf alle Dateien des Massenspeichers enthielt
- Mit wachsender Kapazität der Datenträger wurde es immer schwieriger, den Überblick über hunderte und tausende Dateien zu bewahren, deshalb wurde das Konzept der Unterverzeichnisse eingeführt
- Ein hierarchisches Dateisystem wurde für das Betriebssystem Multics entwickelt und, nachdem dessen Entwicklung eingestellt wurde, von AT&T Unix Version 1 von 1971 übernommen
- Damit war die Grundlage für die meisten modernen Dateisysteme gelegt, die im Wurzelverzeichnis neben regulären Dateien auch Verweise auf weitere Verzeichnisse, die Unterverzeichnisse, enthalten können, mit möglicherweise wiederum weiteren Unterverzeichnissen
Dadurch entsteht eine Verzeichnisstruktur, die oft als Verzeichnisbaum dargestellt wird
- Das Festplattenlaufwerk C: unter Windows beinhaltet beispielsweise neben Dateien wie boot.ini und ntldr auch Verzeichnisse wie Programme, Dokumente und Einstellungen usw
- Ein Verzeichnis wie zum Beispiel Eigene Dateien kann dann wieder Unterverzeichnisse wie Eigene Bilder oder Texte enthalten
- In Texte können dann beispielsweise die normalen Dateien Brief1.txt und Brief2.txt stehen

Die Verzeichnisse werden auch Ordner genannt und sind, je nach Betriebssystem, durch umgekehrten Schrägstrich (englisch Vorlage:Lang) „\“ (DOS, Windows, TOS), Schrägstrich (englisch Vorlage:Lang) „/“ (Unix, Linux, macOS, AmigaOS), Punkt „.“ (OpenVMS) oder Doppelpunkt „:“ (ältere Mac-OS-Versionen) getrennt
- Da sich eine Hierarchie von Verzeichnissen und Dateien ergibt, spricht man hier von hierarchischen Dateisystemen
- Den Weg durch das Dateisystem, angegeben durch Verzeichnisnamen, die mit den Trennzeichen voneinander getrennt werden, nennt man Pfad
- Auf die Datei Brief1.txt kann mit
C:\Dokumente und Einstellungen\benutzername\Eigene Dateien\Texte\Brief1.txt
(Windows 2000/XP)C:\Users\benutzername\Eigene Dokumente\Brief1.txt
(Ab Windows Vista)/Users/benutzername/Texte/Brief1.txt
(Mac OS X)Macintosh HD:Dokumente:Texte:Brief 1
(Classic Mac OS)/home/benutzername/Texte/Brief1.txt
(Unix/Linux)Laufwerksname:verzeichnis/unterverzeichnis/Brief1.txt
(AmigaOS)DISK$Laufwerksname:[USERS.benutzername]Brief1.TXT;1
(OpenVMS)
zugegriffen werden
- Bei DOS/Windows gibt es Laufwerksbuchstaben gefolgt von einem Doppelpunkt, die den Pfaden innerhalb des Dateisystems vorangestellt werden
- Jeder Datenträger bekommt seinen eigenen Buchstaben, zum Beispiel meist C: für die erste Partition der ersten Festplatte
- Bei Unix gibt es keine Laufwerksbuchstaben, sondern nur einen einzigen Verzeichnisbaum
- Die einzelnen Datenträger werden dort an bestimmten Stellen im Baum eingehängt (Kommando mount), so dass alle Datenträger zusammen den Gesamtbaum ergeben
- Windows-Varianten, die auf Windows NT basieren, arbeiten intern ebenfalls mit einem solchen Baum, dieser Baum wird aber gegenüber dem Anwender verborgen
Unter AmigaOS erfolgt eine Mischung der Ansätze von DOS und Unix
- Die nach Unix-Nomenklatur bezeichneten Laufwerke werden mit Doppelpunkt angesprochen (df0:, hda1:, sda2:)
- Darüber hinaus können logische Doppelpunkt-Laufwerksbezeichnungen wie
LIBS:
perASSIGN
unabhängig vom physischen Datenträger vergeben werden
Die Verzeichnispfade von OpenVMS unterscheiden sich stark von Unix-, DOS- und Windows-Pfaden
- Zuerst nennt OpenVMS die Geräteart, z. B. bezeichnet „
DISK$
“ einen lokalen Datenträger - Der Laufwerksname (bis zu 255 Zeichen lang) wird angefügt und mit einem Doppelpunkt abgeschlossen
- Der Verzeichnis-Teil wird in eckige Klammern gesetzt
- Die Unterverzeichnisse werden durch Punkte getrennt, z. B. „
[USERS.Verzeichnis.Verzeichnis2]
“ - Am Ende des Pfads folgt der Dateiname, beispielsweise „
Brief1.TXT;1
“ - Dessen erster Teil ist ein sprechender Name und bis zu 39 Zeichen lang
- Nach einem Punkt folgt der dreistellige Dateityp, ähnlich wie bei Windows
- Am Ende wird die Version der Datei, getrennt durch ein Semikolon „;“, angefügt
Häufig bezeichnet der Begriff Dateisystem nicht nur die Struktur und die Art, wie die Daten auf einem Datenträger organisiert werden, sondern allgemein den ganzen Baum mit mehreren verschiedenen Dateisystemen (Festplatte, CD-ROM, …)
- Korrekterweise müsste man hier von einem Namensraum sprechen, der von verschiedenen Teilnamensräumen (den Dateisystemen der eingebundenen Datenträger) gebildet wird, da aber dieser Namensraum sehr dateibezogen ist, wird häufig nur vom Dateisystem gesprochen
Netzwerkdateisystem
siehe Netzwerkdateisystem
Spezielle virtuelle Dateisysteme
Das open-read-Modell lässt sich auch auf Geräte und Objekte anwenden, die normalerweise nicht über Dateisysteme angesprochen werden
- Dadurch wird der Zugriff auf diese Objekte identisch mit dem Zugriff auf normale Dateien, was dem Unix-Konzept Vorlage:Lang entspricht und dadurch den Vorteil bringt, diese Daten in gleicher Weise wie etwa Konfigurationsdateien nutzen zu können
Unter den derzeitigen Linux-Kernels (u. a
- Version 2.6) lassen sich System- und Prozessinformation über das virtuelle proc-Dateisystem abfragen und ändern
- Die virtuelle Datei
/proc/cpuinfo
liefert zum Beispiel Informationen über den Prozessor - Unter Linux gibt es einige solcher Pseudo-Dateisysteme
- Dazu zählen u. a. sysfs, usbfs oder devpts; unter einigen BSDs gibt es ein kernfs
- All diese Dateisysteme enthalten nur rein virtuell vorhandene Dateien mit Informationen oder Geräten, die auf eine „Datei“ abgebildet werden
Der Kernel gaukelt hier quasi die Existenz einer Datei vor, wie sie auch auf einem Massenspeicher vorhanden sein könnte
Dateien in ramfs oder tmpfs und ähnlichen Dateisystemen existieren demgegenüber tatsächlich, werden aber nur im Arbeitsspeicher gehalten
- Sie werden aus Geschwindigkeitsgründen und aus logisch-technischen Gründen während der Boot-Phase eingesetzt
Neben Linux gibt es auch für diverse andere Betriebssysteme sogenannte RAM-Disks, mit denen ein komplettes virtuelles Laufwerk im Arbeitsspeicher realisiert wird, vor allem aus Geschwindigkeitsgründen
Besonderheiten
Viele moderne Dateisysteme haben das Prinzip der Datei verallgemeinert, so dass man in einer Datei nicht nur eine Folge von Bytes, einen sogenannten Vorlage:Lang (von englisch data stream für Datenstrom), sondern mehrere solcher Folgen (alternative Datenströme) abspeichern kann
- Dadurch ist es möglich, Teile einer Datei zu bearbeiten, ohne eventuell vorhandene andere Teile, die sehr groß sein können, verschieben zu müssen
Problematisch ist die mangelnde Unterstützung von multiplen Streams
- Das äußert sich zum einen darin, dass alternative Daten beim Transfer auf andere Dateisysteme (ISO 9660, FAT, ext2) ohne Warnung verloren gehen, zum anderen darin, dass kaum ein Werkzeug diese unterstützt, weshalb man die dort gespeicherten Daten nicht ohne Weiteres einsehen kann und beispielsweise Virenscanner dort abgespeicherte Viren übersehen
Aus der Tatsache, dass der Hauptdatenstrom von Änderungen an den anderen Strömen nicht berührt wird, ergeben sich Vorteile für die Performance, den Platzbedarf und die Datensicherheit
Nicht nur unter Inode-basierten Dateisystemen sind Sparse-Dateien, Hardlinks und symbolische Verknüpfungen möglich
Für Massenspeicher wie CD-ROM oder DVD gibt es eigene Dateisysteme, die Betriebssystem-übergreifend Anwendung finden, vor allem ISO 9660, weitere siehe unten bei Besonderheiten
Dateisysteme aus dem Unix-Bereich kennen besondere Gerätedateien
- Deren Namen sind dabei oft per Übereinkommen festgelegt, sie können nach Belieben umbenannt werden; so haben zum Beispiel auch die Tastatur, Maus und andere Schnittstellen spezielle Dateinamen, auf die mit Vorlage:Lang, Vorlage:Lang, Vorlage:Lang zugegriffen werden kann, sogar der Hauptspeicher hat einen Dateinamen,
/dev/mem
. (Die Unix-Philosophie dazu lautet: „Alles ist eine Datei, und wenn nicht, sollte es eine Datei sein.“)
In anderen Betriebssystemen (wie unter MS-DOS ab Version 2.0) gibt es ebenfalls Gerätedateien: COM:
, CON:
, LPT:
, PRN:
und andere
- Diese Geräte können analog zu einer Datei geöffnet und über eine Zugriffsnummer (Handle) gelesen und beschrieben werden
- Sie haben aber verständlicherweise keinen Dateizeiger
- Im Unterschied zu den Blockgeräten (auch „Laufwerke“ genannt:
A:
,B:
,C:
usw.) enthalten sie keine Dateien, sondern verhalten sich selbst – mit gewissen Einschränkungen – wie Dateien - Diese Pseudodateien existieren seit PC DOS 2.0 bzw. MS-DOS 2.0, das stark von UNIX beeinflusst wurde
- Unter Berücksichtigung der DOS-Gerätetreiberspezifikation ist es dem Benutzer möglich, eigene Gerätetreiber zu schreiben, sie per DEVICE-Befehl zu laden und über ebensolche Pseudodateinamen anzusprechen
- Diese besonderen Dateinamen waren in der Vergangenheit öfters Anlass von Sicherheitsproblemen, da die entsprechenden Namen zum Teil einigen Applikationen nicht bekannt waren und daher nicht herausgefiltert wurden, aber zum Teil auch weil der Zugriffsschutz auf die damit assoziierten Geräte unzureichend geregelt war
Darüber hinaus existieren Dateisysteme, die mehrere darunterliegende Speichermedien („Vorlage:Lang“) überspannen können (z. B. die Dateisysteme ZFS und Btrfs), die eine Versionierung von Dateien schon inhärent ermöglichen (z. B. VMS) oder deren Größe zur Laufzeit geändert werden kann (z. B. AIX)
Manche Dateisysteme bieten Kryptografiesfunktionen an, Umfang und Sicherheit der Funktionen variieren dabei
Assoziative Dateiverwaltung
Assoziative Dateiverwaltung Diese werden häufig fälschlicherweise als Datenbankdateisysteme oder SQL-Dateisysteme bezeichnet, hierbei handelt es sich eigentlich nicht um Dateisysteme, sondern um Informationen eines Dateisystems, die in aufgewerteter Form in einer Datenbank gespeichert und in, für den Anwender intuitiver Form, über das virtuelle Dateisystem des Betriebssystems dargestellt werden
Lebenszyklus
- Lebenszyklusaspekte
Bei der Migration von Dateibeständen, etwa aufgrund einer Systemablösung, müssen häufig Dateien von einem Dateisystem auf ein anderes übernommen werden
- Das ist im Allgemeinen ein schwieriges Unterfangen, denn viele Dateisysteme sind untereinander funktional nicht kompatibel, d. h. das Zieldateisystem kann nicht alle Dateien mit allen Attributen aufnehmen, die auf dem Quelldateisystem gespeichert sind
- Ein Beispiel hierfür wäre die Migration von NTFS-Dateien mit Alternate Data Streams auf ein Dateisystem ohne Unterstützung für solche Streams