Verzeichnisstruktur
Als Verzeichnisstruktur (auch Verzeichnisbaum oder Ordnerstruktur genannt) wird im engeren Sinn die hierarchische Gestalt des gesamten Dateisystems[1][2] eines einzelnen Computers bezeichnet und im weiteren Sinn ein Verzeichnisdienst für beliebige Objekte (wie z. B. Benutzer, Geräte, Dienste, Dateifreigaben und Pakete) eines Firmennetzes. Üblich ist eine Baumstruktur, die bei einer Wurzel beginnt und sich dann beliebig verzweigt.
Im Folgenden wird die Verzeichnisstruktur eines logischen oder mehrerer eingebundener physischer Dateisysteme[2] unter einem laufenden Betriebssystem beschrieben, zum Verzeichnisdienst eines Firmennetzes siehe dort.
Eigenschaften
In jeder Ebene des Baumes können sowohl Dateien als auch Verzeichnisse liegen, letztere bilden die nächste Ebene des Baumes. Die Verzeichnisstruktur ergibt sich somit dadurch, dass Verzeichnisse wiederum (Unter-)Verzeichnisse enthalten können, ausgehend von einem Wurzelverzeichnis (englisch root directory). Name und Position jedes Eintrags (Datei oder (Unter-)Verzeichnis) können durch eine entsprechende Pfadangabe spezifiziert werden, die an der Wurzel beginnt und alle zu durchlaufenden Verzeichnisse auflistet.
Beispiel: In nebenstehender Abbildung gibt es im Baum des „Unix-Dateisystems“ die Datei /home/anwendername/Foto.png
, also ausgehend vom Wurzelverzeichnis /
in dessen Unterverzeichnis home
, darunter im Unterverzeichnis anwendername
liegt die Datei Foto.png
.
Die Möglichkeit, Querverbindungen – also Ordner- oder Dateiverknüpfungen, auch über Ebenen hinweg – zu schaffen, macht genau genommen aus der Baumgestalt der Verzeichnisstruktur ein Netz, denn die strenge Hierarchie geht verloren. Entsprechend kann dieselbe Datei unter Umständen über verschiedene Pfade spezifiziert werden.
Beschränkungen auf eine einzige Ebene (trivialer Baum) sind von eingebetteten Systemen bekannt. Ältere Dateisysteme, wie sie teilweise noch auf Großrechnern gebräuchlich sind, haben eine relativ starre Verzeichnisstruktur mit teilweise genau festgelegter Anzahl von Ebenen, ohne die Möglichkeit, rasch Unterverzeichnisse zu erstellen.
Berechtigungen
Die ersten Berechtigungskonzepte gaben jedem Benutzer einfach ein eigenes Verzeichnis oberhalb der Wurzelebene. Anklänge aus dieser Zeit findet man noch im speziellen Benutzerkonto root unter Unix, das zunächst sämtliche Systemberechtigungen hat. Obwohl inzwischen deutlich weiter entwickelt, hält das heute noch allgemein gebräuchliche Unix-Berechtigungskonzept weiterhin enge Verbindung zur Verzeichnisstruktur, indem pro Verzeichnis (und pro Datei) für einen Benutzer (dem Eigentümer), für eine definierte Gruppe von Benutzern, und für den ganzen Rest jeweils eine Berechtigung vergeben wird. Eine echte n:m-Zuordnung (d. h. die Zuweisung von Rechten/Verboten für jeden Benutzer separat) zwischen Verzeichnissen oder Dateien und berechtigten Benutzerkonten ist damit also noch nicht möglich, will man nicht für jedes Verzeichnis eine eigene Gruppe anlegen. Neuere Lösungen wie ACLs bieten komfortablere Möglichkeiten.
Hintergrund
Viele Betriebssysteme bieten die Möglichkeit, Festplatten und Plattensysteme zu partitionieren. Solche Partitionen, wie auch ganze Platten, können mit einem Dateisystem formatiert werden, das heißt, es wird eine leere Verzeichnisstruktur angelegt und der zugeordnete Plattenplatz unter die Verwaltung des Dateisystems gestellt.
Einzelne Dateisysteme können unter unixoiden Systemen (bspw. BSD, System V, Linux, OS X) an beliebiger Stelle innerhalb der Verzeichnisstruktur des Rechners eingehängt („gemountet“) werden und ergänzen dann den Baum um einen weiteren, in sich ggf. verzweigten Ast. Dessen Ursprung bezeichnet man auch als Einhängepunkt, englisch mount point. Andere Betriebssysteme, wie DOS, Windows oder OpenVMS, vergeben für jedes Dateisystem eine eigene Bezeichnung, so dass mehrere Bäume nebeneinander existieren. Seit Windows 2000 können auch in dessen Dateisystem NTFS Verzeichnisse als Einhängepunkte verwendet werden.[3]
Neuere Entwicklungen für Dateisysteme können einige Techniken relationaler Datenbanken oder objektorientierter Strukturierung verfügbar machen. Konventionelle Verzeichnisstrukturen mit hierarchischer Anlage sind dann eine unter mehreren Möglichkeiten, Datenbestände anzulegen, zu verändern, wiederaufzufinden und zu lesen.
Standardisierung
Vorwiegend im Bereich der unixoiden Systeme gibt es Bemühungen, die Verzeichnisstruktur unabhängig vom eingesetzten Betriebssystem zu standardisieren. Durch eine einheitliche Verzeichnisstruktur sind beispielsweise bestimmte ausführbare Dateien oder Konfigurationsdateien immer am selben Ort zu finden, was die Software-Entwicklung, die Migration von einem Betriebssystem zu einem anderen und die Einarbeitung von Anwendern stark vereinfacht. Neben den POSIX-, SUS- und LSB-Standards, die alle auch die Verzeichnisstruktur beschreiben, ist der Filesystem Hierarchy Standard (FHS) eine bedeutende Normierung einer Verzeichnisstruktur.
Einzelnachweise
- Aeleen Frisch: Unix System-Administration. O'Reilly Germany, 2003, 2: Die Unix-Philosophie, S. 66, Fußnote 13 (Volltext in der Google-Buchsuche – Hier bezieht sich der Begriff „Dateisystem“ auf den übergeordneten Verzeichnisbaum.): „Der Begriff Dateisystem bezieht sich somit zum einen auf den übergeordneten Verzeichnisbaum des Systems, der alle Festplattenpartitionen des Systems umfasst, auf die die Benutzer zugreifen können (wie in »das Unix-Dateisystem«), zum anderen auf die Dateien und Verzeichnisse auf den individuellen Festplattenpartitionen (wie in »ein Dateisystem auf einer Festplattenpartition einrichten« oder »das Benutzer-Dateisystem mounten«). Erst aus dem Kontext wird deutlich, welche der beiden Bedeutungen des Begriffs gemeint ist.“
- Ray Duncan: Power Programming – Getting Acquainted with The Latest Version of OS/2: 1.2 (Part 2). In: PC Magazine. Band 9, Nr. 7. Ziff Davis, 10. April 1990, S. 317, What is a file system? (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “The phrase ‘file system’ itself can be rather confusing, however, for it has two common but distinctly different meanings. When a physical storage medium is being discussed, the phrase refers to the manner in which data is formatted, organized, and indexed on the medium. … When file system is used with respect to software, it refers to the module of the operating system that translates requests from an application program—to open, create,read, write, or close a directory or named file—into requests that the low-level disk device driver can understand. That is, the file-oriented, logical requests… The software file system performs this translation with the aid of the tables, structures, and directories found in the physical file system.”
- Inside Win2K NTFS, Part 1. MSDN (englisch)