Im Dateisystem sind die externen Daten eines Computers in Form von Dateien gespeichert. Das Dateisystem selbst ist ein Ordnungs- und Zugriffssystem für diese Daten. Zugriffsroutinen für Dateisysteme sind Bestandteil des Betriebssystems. Das Betriebssystem des Computers selbst wird ebenfalls in einem Dateisystem gespeichert.
Dateien haben in einem Dateisystem fast immer mindestens einen Dateinamen sowie Attribute, die nähere Informationen über die Datei geben. Die Dateinamen sind in speziellen Dateien, den Verzeichnissen, abgelegt. Über diese Verzeichnisse kann ein Dateiname und damit eine Datei vom System gefunden werden. Ein Dateisystem bildet somit einen Namensraum. Alle Dateien (oder dateiähnlichen Objekte) sind so über eine eindeutige Adresse (Dateiname inkl. Pfad oder URI) – innerhalb des Dateisystems – aufrufbar. Der Name einer Datei und weitere Informationen die den gespeicherten Daten zugeordnet sind, werden als Meta-Daten bezeichnet.
Für unterschiedliche Datenträger (wie Magnetband, Festplatte, optische Datenträger (CD, DVD, …), Flashspeicher, …) gibt es spezielle Dateisysteme, die deren Besonderheiten berücksichtigen.
Ein Block umfasst meistens 512 (29) Bytes. Moderne Betriebssysteme fassen aus Performance- und Verwaltungsgründen mehrere Blöcke zu einem Cluster fester Größe zusammen. Heute sind Cluster mit acht oder noch mehr Blöcken üblich, also 4096 Bytes pro Cluster. Die Clustergröße ist im allgemeinen eine Zweierpotenz (1024, 2048, 4096 usw.)
Eine Datei ist eine Speicherfläche beliebiger Größe, die auf dem Gerät aus einem oder mehreren Clustern besteht. Jede Datei erhält außerdem eine Beschreibungsstruktur, die die tatsächliche Größe, Referenzen auf die verwendeten Cluster und evtl. weitere Informationen wie Dateityp, Eigentümer, Zugriffsrechte enthalten kann.
Für die Zuordnung von Clustern zu Dateien gibt es dabei mehrere Möglichkeiten.
Verzeichnisse enthalten Dateinamen und Referenzen zu den jeweiligen Beschreibungsstrukturen. Da Verzeichnisse auch Speicherflächen sind, werden meist speziell gekennzeichnete Dateien als Verzeichnisse verwendet. Die erste Beschreibungsstruktur kann dabei das Ausgangsverzeichnis enthalten. Oft ist der erste Block für einen sogenannter Bootblock (z. B. Master Boot Record) reserviert, der für das Hochfahren des Systems verwendet werden kann. Er ist nicht Teil des eigentlichen Dateisystems.
| Boot | Beschreibungsstrukturen | Liste freier Cluster | Cluster mit Dateien und Verzeichnissen |
| Beispiel für die Aufteilung eines Massenspeichers für ein simples Dateisystem |
Verzeichnisse:
Dateien:
Außerdem bietet das Betriebssystem Verwaltungsfunktionen, z. B. für das Erzeugen eines Dateisystems auf einem neuen Datenträger, für Konsistenzprüfung, Komprimierung oder Sicherung (je nach Betriebssystem und Dateisystem verschieden).
Die Umsetzung der Systemaufrufe eines Programms werden oft vom Kernel eines Betriebssystems implementiert und unterscheiden sich bei den verschiedenen Dateisystemen. Der Kernel übersetzt die Zugriffe dann in die Blockoperationen des jeweiligen Massenspeichers. (Anmerkung: Tatsächlich trifft dies nur auf sogenannte monolithische Kernel zu. Moderne Betriebssysteme hingegen sind auf einem Mikrokernel aufgebaut, so dass die Dateisystemoperationen nicht vom Kernel selbst ausgeführt werden.)
Wenn ein Programm eine Datei mittels open öffnet, wird der Dateiname im Verzeichnis gesucht. Die Blöcke auf dem Massenspeicher ermittelt das Betriebssystem aus den entsprechenden Beschreibungsstrukturen. Falls eine Datei im Verzeichnis gefunden wird, erhält man auch ihre Beschreibungsstruktur und damit Referenzen zu den Clustern und über diese zu Blöcken.
Mit read kann das Programm dann auf die Cluster der Datei (und damit auf Blöcke auf dem Massenspeicher) zugreifen. Falls mit write die Datei vergrößert wird, wird bei Bedarf ein neuer Cluster aus der Freiliste entnommen und in der Beschreibungsstruktur der Datei hinzugefügt. Auch die anderen Systemaufrufe lassen sich so in Cluster- bzw. Blockzugriffe übersetzen.
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 z. B. 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.
Windows 2000/XP: Mac OS X: Unix / Linux / ZETA:
zugreifen. 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, z. B. 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 (fd0:, hda1:, sda2:). Darüber hinaus können "logische" Doppelpunkt-Laufwerksbezeichnungen wie LIBS: per ASSIGN unabhängig vom "physikalischen Datenträger" vergeben werden.
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 (die eingebundenen Datenträgern mit deren Dateisystemen) gebildet wird, da aber dieser Namensraum sehr dateibezogen ist, wird häufig nur vom Dateisystem gesprochen.
Da dieselben Systemaufrufe verwendet werden, unterscheiden sich die Zugriffe aus Programm- und Anwendersicht nicht von der auf die lokalen Geräte. Man spricht hier von transparenten Zugriffen, weil der Anwender die Umlenkung auf den anderen Rechner nicht sieht, sondern scheinbar unmittelbar auf die Platte des entfernten Rechners schaut – wie durch eine transparente Glasscheibe. Für Netzwerkdateisysteme stehen spezielle Netzwerkprotokolle zur Verfügung.
Kann auf ein Dateisystem z. B. in einem SAN von mehreren Systemen parallel direkt zugriffen werden, spricht man von einem Globalen- oder Cluster-Dateisystem. Dabei sind zusätzliche Maßnahmen zu ergreifen, um Datenkorruption durch gegenseitiges Überschreiben zu vermeiden. Dazu wird ein Metadaten-Server eingesetzt. Alle Systeme leiten die Metadaten-Zugriffe – typischerweise über ein LAN – an den Metadaten-Server weiter, der diese Operationen wie Verzeichniszugriffe und Block- bzw. Clusterzuweisungen vornimmt. Der eigentliche Datenzugriff erfolgt dann über das SAN als ob das Dateisystem lokal angeschlossen wäre. Da der Overhead durch die Übertragung an den Metadaten-Server insbesondere bei großen Dateien kaum ins Gewicht fällt, kann so eine Übertragungsgeschwindigkeit ähnlich der eines direkt angeschlossenen Dateisystems realisiert werden.
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 z.B. Informationen über den Prozessor.
Solche Pseudo-Dateisysteme wie proc gibt es unter Linux einige: Dazu zählen sysfs, usbdevfs oder devpts; unter einigen BSDs gibt es ein kernfs. Nicht zuletzt devfs bzw. udev für Gerätedateien (siehe unten). 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, aber auch initrd und ähnlichen Dateisystemen existieren jedoch tatsächlich, werden aber nur im Speicher gehalten. Sie werden aus Geschwindigkeitsgründen und aus logisch-technischen Gründen während der Boot-Phase eingesetzt.
Viele moderne Dateisysteme haben das Prinzip der Datei verallgemeinert, so dass man in einer Datei nicht nur eine Folge von Bytes, einen sogenannten Stream (engl. Strom), sondern mehrere solcher Folgen (Alternate Data Streams) 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.
Dadurch 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.
Unter Inode-basierten Dateisystemen sind Sparse-Dateien, Hardlinks und symbolische Links möglich. Auch technisch anders aufgebaute Dateisysteme kennen neuerdings zum Teil diese Eigenschaften.
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 z. B. auch die Tastatur, Maus und andere Schnittstellen spezielle Dateinamen, auf die mit open, read, write 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 Dateisystemen (wie unter MS-DOS die FAT-basierten Systeme, aber auch unter NTFS) gibt es fest einprogrammierte "magische" Dateinamen mit besonderen Bedeutungen, die dem System der Gerätedateien ähnlich sind: COM, CON, LPT, PRN und andere. 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.
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.
Hauptartikel: assoziative Dateiverwaltung
Modernere Dateisysteme:
DOS:
MS-Windows (ab Windows 2000) unterstützt sämtliche MS-DOS-Dateisysteme, zusätzlich:
OS/2:
Netzwerk:
Sonstige:
Bei einigen der oben genannten Dateisysteme handelt es sich um Journaling-Dateisysteme. Alle Dateisysteme haben gemeinsam, dass auf sie auch von Fremdsystemen zugegriffen werden kann, sofern das Betriebssystem dies direkt unterstützt oder es dem Betriebssystem über entsprechende Treibersoftware ermöglicht wird. Ausnahmen bilden Dateisysteme, die eine erweiterte Berechtigung unterstützen, die Möglichkeit der Verschlüsselung bieten, oder deren genaue Funktionsweise ein Betriebsgeheimnis ist (zum Beispiel NTFS).
Filsystem | File system | Sistema de archivos | Fitxategi sistema | Tiedostojärjestelmä | Système de fichiers | מערכת קבצים | File system | ファイルシステム | 파일 시스템 | Failų sistema | Bestandssysteem | Filsystem | System plików | Sistema de ficheiros | Файловая система | Súborový systém | Datotečni sistem | Filsystem | Файлова система | 文件系统
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Dateisystem".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world