Wikipedia · einfach zusammengefasst · Stand
Verzeichnisstruktur
Als Verzeichnisstruktur (auch Verzeichnisbaum oder Ordnerstruktur) wird im engeren Sinn die hierarchische Gestalt des gesamten Dateisystems eines einzelnen …
Inhalt6 Abschnitte
Grundidee
Eine Verzeichnisstruktur, auch Verzeichnisbaum oder Ordnerstruktur genannt, ist im engeren Sinn die hierarchische Gestalt des gesamten Dateisystems eines einzelnen Computers. Im weiteren Sinn kann damit auch ein Verzeichnisdienst für beliebige Objekte in einem Firmennetz gemeint sein, etwa für Benutzer, Geräte, Dienste, Dateifreigaben oder Pakete. Typisch ist eine Baumstruktur: Sie beginnt bei einer Wurzel und verzweigt sich in weitere Ebenen.
Die Verzeichnisstruktur ist eine logisch strukturierte Abstraktion aller eingebundenen virtuellen oder physischen Dateisysteme unter einem laufenden Betriebssystem. Dazu können auch Pseudo-Dateisysteme wie procfs oder sysfs und eingebundene externe Ressourcen gehören, zum Beispiel ein Gmail-Postfach per GmailFS oder ein WebDAV-Cloudspeicher per davfs2. Der Begriff „Unix-Dateisystem“ bezeichnet historisch die gesamte logische Verzeichnisstruktur auf Unix-artigen Betriebssystemen, obwohl es auch ein physisches Dateisystem namens Unix File System (UFS) gibt.
Aufbau und Pfade
In jeder Ebene des Baumes können Dateien und Verzeichnisse liegen. Verzeichnisse können wiederum weitere Verzeichnisse enthalten; diese heißen Unterverzeichnisse. Ausgangspunkt ist das Wurzelverzeichnis, englisch root directory. Name und Position jedes Eintrags, also jeder Datei oder jedes Verzeichnisses, können durch eine Pfadangabe beschrieben werden. Eine solche Pfadangabe beginnt an der Wurzel und listet alle Verzeichnisse auf, die bis zum Ziel durchlaufen werden.
Ein Beispiel ist die Datei /home/anwendername/Foto.png. Der Pfad beginnt beim Wurzelverzeichnis /, führt in das Unterverzeichnis home, dann in das Unterverzeichnis anwendername und endet bei der Datei Foto.png.
Durch Querverbindungen, also Ordner- oder Dateiverknüpfungen auch über Ebenen hinweg, ist die Struktur streng genommen nicht mehr nur ein Baum, sondern ein Netz. Dann kann dieselbe Datei unter Umständen über verschiedene Pfade erreichbar sein. Es gibt auch Sonderformen: Eingebettete Systeme können auf eine einzige Ebene beschränkt sein, also einen trivialen Baum nutzen. Ältere Dateisysteme, wie sie teilweise noch auf Großrechnern vorkommen, besitzen teils starre Verzeichnisstrukturen mit festgelegter Ebenenzahl und ohne schnelles Erstellen von Unterverzeichnissen.
Ordner und Berechtigungen
Der Begriff Ordner, englisch folder, wird meist als Synonym für Verzeichnis verwendet; Unterordner entspricht dann Unterverzeichnis. Genau genommen ist ein Ordner eher ein Objekt der grafischen Oberfläche, während ein Verzeichnis ein Bestandteil des Dateisystems ist.
Berechtigungen sind eng mit der Verzeichnisstruktur verbunden. Frühe Konzepte gaben jedem Benutzer ein eigenes Verzeichnis oberhalb der Wurzelebene. Ein Rest davon zeigt sich im speziellen Benutzerkonto root unter Unix, das zunächst sämtliche Systemberechtigungen hat. Das heute noch verbreitete Unix-Berechtigungskonzept vergibt pro Datei und pro Verzeichnis Rechte für drei Bereiche: für einen Benutzer, nämlich den Eigentümer, für eine definierte Benutzergruppe und für den ganzen Rest. Eine echte n:m-Zuordnung, also getrennte Rechte oder Verbote für jeden einzelnen Benutzer bei jeder Datei oder jedem Verzeichnis, ist damit nicht direkt möglich, sofern man nicht für jedes Verzeichnis eine eigene Gruppe anlegt. Neuere Lösungen wie ACLs bieten dafür komfortablere Möglichkeiten.
Zugriff durch Programme
Programme greifen über das Dateisystem auf Massenspeicher zu. Unter Unix und ähnlichen Betriebssystemen stellen Systemaufrufe diese Zugriffe bereit. Für Verzeichnisse sind wichtige Aufrufe mkdir und rmdir zum Erzeugen und Löschen, opendir und closedir zum Öffnen und Schließen, readdir zum Lesen von Verzeichniseinträgen sowie chdir zum Wechseln in ein anderes Verzeichnis.
Für Dateien sind wichtige Systemaufrufe creat und unlink zum Erzeugen und Löschen, open und close zum Öffnen und Schließen, read und write zum Lesen und Schreiben sowie seek zum Neupositionieren des Schreib-/Lese-Zeigers. Zusätzlich bieten Betriebssysteme Verwaltungsfunktionen, etwa zum Umbenennen, Kopieren und Verschieben, zum Erzeugen eines Dateisystems auf einem neuen Datenträger, zur Konsistenzprüfung, Komprimierung oder Sicherung. Diese Möglichkeiten unterscheiden sich je nach Betriebssystem und Dateisystem.
Die Umsetzung solcher Systemaufrufe wird oft vom Kernel des Betriebssystems übernommen und hängt vom jeweiligen Dateisystem ab. Der Kernel übersetzt Zugriffe in Blockoperationen des Massenspeichers. Das gilt ausdrücklich nur für sogenannte monolithische Kernel; bei Microkernel- oder Hybridkernel-Systemen müssen Dateisystemoperationen nicht vom Kernel selbst ausgeführt werden. Wenn ein Programm eine Datei mit open öffnet, sucht das Betriebssystem den Dateinamen im Verzeichnis. Über Beschreibungsstrukturen findet es die zugehörigen Cluster und darüber die konkreten Blöcke auf dem Massenspeicher. Mit read greift das Programm auf diese Cluster und Blöcke zu. Wird eine Datei durch write größer, kann ein neuer Cluster aus der Freiliste entnommen und in die Beschreibungsstruktur der Datei eingetragen werden.
Dateisysteme einhängen
Viele Betriebssysteme können Festplatten und RAID-Systeme partitionieren. Partitionen oder ganze Festplatten können mit einem Dateisystem formatiert werden. Dabei wird ein leeres Verzeichnis angelegt und der zugeordnete Plattenplatz unter die Verwaltung des Dateisystems gestellt.
Unter unixoiden Systemen wie BSD, System V, Linux oder macOS können einzelne Dateisysteme an beliebiger Stelle innerhalb der Verzeichnisstruktur des Rechners eingehängt, also gemountet, werden. Sie ergänzen den bestehenden Baum um einen weiteren Ast. Der Ursprung dieses Astes heißt Einhängepunkt, englisch mount point. Andere Betriebssysteme, etwa DOS, Windows oder OpenVMS, vergeben für jedes Dateisystem eine eigene Bezeichnung, sodass mehrere Verzeichnisbäume nebeneinander existieren. Seit Windows 2000 können auch im Dateisystem NTFS Verzeichnisse als Einhängepunkte verwendet werden.
Neuere Entwicklungen bei Dateisystemen können Techniken relationaler Datenbanken oder objektorientierter Strukturierung verfügbar machen. Hierarchische Verzeichnisstrukturen sind dann nur eine von mehreren Möglichkeiten, Informationen anzulegen, zu verändern, wiederzufinden und zu lesen.
Standards
Vor allem bei unixoiden Systemen gibt es Bemühungen, die Verzeichnisstruktur unabhängig vom jeweiligen Betriebssystem zu standardisieren. Eine einheitliche Struktur sorgt dafür, dass bestimmte ausführbare Dateien oder Konfigurationsdateien immer am selben Ort zu finden sind. Das vereinfacht Software-Entwicklung, den Wechsel von einem Betriebssystem zu einem anderen und die Einarbeitung von Anwendern.
Zu den Standards, die auch die Verzeichnisstruktur beschreiben, gehören POSIX, SUS und LSB. Eine besonders wichtige Normierung ist der Filesystem Hierarchy Standard (FHS).