Dies ist teils aus historischen Gründen, teils weil es auf diese Weise sinnvoller ist.
Multics
Multics war das erste Betriebssystem, das das heutige hierarchische Dateisystem mit Verzeichnissen eingeführt hat, die Verzeichnisse enthalten können. Unter Bezugnahme auf „Ein universelles Dateisystem für die Sekundärspeicherung“ von RC Daley und PG Neumann:
In Abschnitt 2 des Papiers wird die hierarchische Struktur der Dateien vorgestellt, die eine flexible Nutzung des Systems ermöglicht. Diese Struktur enthält ausreichende Fähigkeiten, um die Vielseitigkeit sicherzustellen. (…)
Zum leichteren Verständnis kann die Dateistruktur als ein Baum von Dateien angesehen werden, von denen einige Verzeichnisse sind. Das heißt, mit einer Ausnahme wird jede Datei (z. B. jedes Verzeichnis) von genau einem Zweig in genau einem Verzeichnis direkt angesprochen. Die Ausnahme ist das Stammverzeichnis (root) im Stammverzeichnis des Baums. Obwohl von keinem Verzeichnis explizit darauf verwiesen wird, wird implizit auf die Wurzel durch einen fiktiven Zweig verwiesen, der dem Dateisystem bekannt ist. (…)
Zu jeder Zeit wird davon ausgegangen, dass ein Benutzer in einem Verzeichnis arbeitet, das als sein Arbeitsverzeichnis bezeichnet wird. Er kann auf eine Datei zugreifen, auf die durch einen Eintrag in seinem Arbeitsverzeichnis effektiv verwiesen wird, indem er einfach den Eintragsnamen angibt. Es kann sein, dass mehrere Benutzer gleichzeitig dasselbe Arbeitsverzeichnis haben.
Wie in vielen anderen Aspekten suchte Multics nach Flexibilität. Benutzer können in einem Teilbaum des Dateisystems arbeiten und den Rest ignorieren und trotzdem von Verzeichnissen profitieren, um ihre Dateien zu organisieren. Verzeichnisse wurden auch für die Zugriffskontrolle verwendet - das READ-Attribut ermöglichte es Benutzern, die Dateien in einem Verzeichnis aufzulisten, und das EXECUTE-Attribut ermöglichte es Benutzern, auf Dateien in diesem Verzeichnis zuzugreifen (dies lebte, wie viele andere Funktionen, unter Unix).
Multics folgte auch dem Prinzip, einen einzigen Speicherpool zu haben. Das Papier geht nicht auf diesen Aspekt ein. Ein einziger Speicherpool passte gut zur Hardware der damaligen Zeit: Es gab keine austauschbaren Speichergeräte, zumindest keine, die den Benutzern etwas ausmachten würden. Multics verfügte zwar über einen separaten Sicherungsspeicherpool, dieser war jedoch für die Benutzer transparent.
Unix
Unix ließ sich von Multics inspirieren, zielte jedoch auf Einfachheit, wohingegen Multics auf Flexibilität abzielte.
Ein einziges hierarchisches Dateisystem passte gut zu Unix. Wie bei Multics waren Speicherpools für Benutzer normalerweise nicht relevant. Es gab jedoch Wechseldatenträger, die von Unix über die Befehle mount
und für Benutzer umount
verfügbar gemacht wurden (reserviert für den „Superuser“, dh den Administrator). Dennis Ritchie und Ken Thompson erklären in „The UNIX Time-Sharing System“ :
Obwohl das Stammverzeichnis des Dateisystems immer auf demselben Gerät gespeichert ist, muss sich nicht die gesamte Dateisystemhierarchie auf diesem Gerät befinden. Es gibt eine Mount-Systemanforderung mit zwei Argumenten: dem Namen einer vorhandenen normalen Datei und dem Namen einer speziellen Datei, deren zugeordnetes Speichervolumen (z. B. ein Plattenpaket) die Struktur eines unabhängigen Dateisystems mit einer eigenen Verzeichnishierarchie haben soll . Durch das Einhängen wird bewirkt, dass Verweise auf die bisher übliche Datei auf das Stammverzeichnis des Dateisystems auf dem Wechseldatenträger verweisen. Tatsächlich ersetzt mount ein Blatt des Hierarchiebaums (die normale Datei) durch einen neuen Teilbaum (die auf dem Wechseldatenträger gespeicherte Hierarchie). Nach dem Mounten gibt es praktisch keine Unterscheidung zwischen Dateien auf dem Wechseldatenträger und Dateien im permanenten Dateisystem. In unserer Installation befindet sich das Stammverzeichnis beispielsweise auf einer kleinen Partition eines unserer Festplattenlaufwerke, während das andere Laufwerk, das die Dateien des Benutzers enthält, durch die Systeminitialisierungssequenz bereitgestellt wird. Ein anbringbares Dateisystem wird durch Schreiben auf die entsprechende spezielle Datei generiert. Mit einem Hilfsprogramm können Sie ein leeres Dateisystem erstellen oder einfach ein vorhandenes Dateisystem kopieren.
Das hierarchische Dateisystem hat auch den Vorteil, dass die Komplexität der Verwaltung mehrerer Speichergeräte im Kernel konzentriert wird. Dies bedeutete, dass der Kernel komplexer war, aber alle Anwendungen dadurch einfacher wurden. Da sich der Kernel um Hardwaregeräte kümmern muss, die meisten Anwendungen dies jedoch nicht tun, ist dies ein natürlicheres Design.
Windows
Windows geht auf zwei Abstammungslinien zurück: VMS , ein Betriebssystem, das ursprünglich für den VAX- Minicomputer entwickelt wurde, und CP / M , ein Betriebssystem, das für frühe Intel-Mikrocomputer entwickelt wurde.
VMS hatte ein verteiltes hierarchisches Dateisystem, Files-11 . In Files-11 enthält der vollständige Pfad zu einer Datei einen Knotennamen, eine Kontenbezeichnung auf diesem Knoten, einen Gerätenamen, einen Verzeichnisbaumpfad, einen Dateinamen, einen Dateityp und eine Versionsnummer. VMS verfügte über eine leistungsstarke Funktion für logische Namen , mit der Verknüpfungen zu bestimmten Verzeichnissen definiert werden konnten, sodass sich Benutzer selten um den „tatsächlichen“ Speicherort eines Verzeichnisses kümmern mussten.
CP / M wurde für Computer mit 64 KB RAM und einem Diskettenlaufwerk entwickelt, daher wurde es der Einfachheit halber verwendet. Es gab keine Verzeichnisse, aber ein Dateiverweis könnte eine Laufwerksangabe ( A:
oder B:
) enthalten.
Als MS-DOS 2.0 Verzeichnisse einführte, tat es dies mit einer Syntax, die mit MS-DOS 1 kompatibel war, das selbst CP / M folgte. So wurzelten Pfade auf einem Laufwerk mit einem einzigen Buchstaben. (Außerdem wurde das Schrägstrichzeichen /
in VMS und CP / M zum Starten von Befehlszeilenoptionen verwendet, sodass ein anderes Zeichen als Verzeichnisseparator verwendet werden musste. Aus diesem Grund verwenden DOS und spätere Windows den umgekehrten Schrägstrich, obwohl einige interne Komponenten auch Schrägstriche unterstützen ).
Windows behielt die Kompatibilität mit DOS und dem VMS-Ansatz bei, sodass die Laufwerksbuchstaben beibehalten wurden, auch wenn sie weniger relevant waren. Heute verwendet Windows unter der Haube UNC- Pfade ( ursprünglich von Microsoft und IBM für OS / 2 entwickelt , verwandter Herkunft). Obwohl dies (wahrscheinlich aufgrund des Gewichts des Verlaufs) für Hauptbenutzer reserviert ist, ermöglicht Windows die Bereitstellung über Analysepunkte .