Questo è in parte per motivi storici e in parte perché ha più senso in questo modo.
Multics
Multics è stato il primo sistema operativo a introdurre il file system gerarchico come lo conosciamo oggi, con directory che possono contenere directory. Citando "Un file system per scopi generici per l'archiviazione secondaria" di RC Daley e PG Neumann:
La sezione 2 dell'articolo presenta la struttura gerarchica dei file, che consente un uso flessibile del sistema. Questa struttura contiene capacità sufficienti per assicurare versatilità. (...)
Per facilità di comprensione, la struttura dei file può essere pensata come un albero di file, alcuni dei quali sono directory. Cioè, con una sola eccezione, ogni file (ad esempio, ogni directory) si trova direttamente puntato da esattamente un ramo in esattamente una directory. L'eccezione è la directory principale, o radice, nella radice dell'albero. Sebbene non sia esplicitamente indicato da alcuna directory, la radice è implicitamente indicata da un ramo fittizio noto al file system. (...)
In qualsiasi momento, si considera che un utente operi in una directory, chiamata directory di lavoro. Può accedere a un file effettivamente indicato da una voce nella sua directory di lavoro semplicemente specificando il nome della voce. Più utenti possono avere la stessa directory di lavoro alla volta.
Come in molti altri aspetti, Multics ha cercato la flessibilità. Gli utenti possono lavorare in una sottostruttura del filesystem e ignorare il resto, e comunque beneficiare delle directory per organizzare i propri file. Le directory sono state usate anche per il controllo degli accessi: l'attributo READ ha permesso agli utenti di elencare i file in una directory e l'attributo EXECUTE ha permesso agli utenti di accedere ai file in quella directory (questo, come molte altre funzionalità, viveva su unix).
Multics ha anche seguito il principio di avere un singolo pool di archiviazione. Il documento non si sofferma su questo aspetto. Un singolo pool di archiviazione era una buona corrispondenza con l'hardware del tempo: non c'erano dispositivi di archiviazione rimovibili, almeno nessuno a cui gli utenti si sarebbero preoccupati. Multics aveva un pool di archiviazione di backup separato, ma ciò era trasparente per gli utenti.
Unix
Unix ha preso molta ispirazione da Multics, ma puntava alla semplicità, mentre Multics puntava alla flessibilità.
Un singolo filesystem gerarchico si adattava bene a Unix. Come con Multics, i pool di archiviazione di solito non erano rilevanti per gli utenti. Tuttavia, c'erano dispositivi rimovibili e Unix li ha esposti agli utenti tramite i comandi mount
e umount
(riservati al "superutente", ovvero all'amministratore). In "Il sistema di condivisione del tempo UNIX" , Dennis Ritchie e Ken Thompson spiegano:
Sebbene la radice del file system sia sempre memorizzata sullo stesso dispositivo, non è necessario che l'intera gerarchia del file system risieda su questo dispositivo. Esiste una richiesta di sistema di montaggio con due argomenti: il nome di un file ordinario esistente e il nome di un file speciale il cui volume di archiviazione associato (ad esempio un pacchetto di dischi) dovrebbe avere la struttura di un file system indipendente contenente la propria gerarchia di directory . L'effetto di mount è di fare in modo che i riferimenti al file ordinario precedente facciano invece riferimento alla directory principale del file system sul volume rimovibile. In effetti, mount sostituisce una foglia dell'albero della gerarchia (il file ordinario) con una sottostruttura completamente nuova (la gerarchia memorizzata nel volume rimovibile). Dopo il montaggio, non esiste praticamente alcuna distinzione tra i file nel volume rimovibile e quelli nel file system permanente. Nella nostra installazione, ad esempio, la directory principale si trova su una piccola partizione di una delle nostre unità disco, mentre l'altra unità, che contiene i file dell'utente, è montata dalla sequenza di inizializzazione del sistema. Un file system montabile viene generato scrivendo sul file speciale corrispondente. È disponibile un programma di utilità per creare un file system vuoto oppure si può semplicemente copiare un file system esistente.
Il filesystem gerarchico ha anche il vantaggio di concentrare la complessità della gestione di più dispositivi di archiviazione nel kernel. Ciò significava che il kernel era più complesso, ma di conseguenza tutte le applicazioni erano più semplici. Dal momento che il kernel deve preoccuparsi dei dispositivi hardware ma la maggior parte delle applicazioni no, questo è un design più naturale.
finestre
Windows fa risalire i suoi antenati a due linee: VMS , un sistema operativo originariamente progettato per il minicomputer VAX , e CP / M , un sistema operativo progettato per i primi microcomputer Intel.
VMS aveva un filesystem gerarchico distribuito, Files-11 . In Files-11, il percorso completo di un file contiene un nome nodo, una designazione di account su quel nodo, un nome dispositivo, un percorso dell'albero di directory, un nome file, un tipo di file e un numero di versione. VMS aveva una potente funzione di nome logico che consente di definire collegamenti a directory specifiche, quindi gli utenti raramente dovrebbero preoccuparsi della posizione "reale" di una directory.
CP / M è stato progettato per computer con 64kB di RAM e un'unità floppy, quindi è andato per semplicità. Non c'erano directory, ma un riferimento al file potrebbe includere un'indicazione ( A:
o B:
) dell'unità .
Quando MS-DOS 2.0 ha introdotto le directory, lo ha fatto con una sintassi compatibile con MS-DOS 1 che a sua volta ha seguito CP / M. Quindi i percorsi sono stati radicati su un'unità con un nome di una sola lettera. (Inoltre, il carattere barra è /
stato utilizzato in VMS e CP / M per avviare le opzioni della riga di comando, quindi è stato necessario utilizzare un carattere diverso come separatore di directory. Ecco perché DOS e Windows utilizzano la barra rovesciata, sebbene alcuni componenti interni supportino anche la barra ).
Windows ha mantenuto la compatibilità con DOS e l'approccio VMS, quindi ha mantenuto l'idea di lettere di unità anche quando sono diventate meno rilevanti. Oggi, sotto il cofano, Windows utilizza percorsi UNC ( originariamente sviluppati da Microsoft e IBM per OS / 2 , di origine correlata). Sebbene questo sia riservato agli utenti esperti (probabilmente a causa del peso della cronologia), Windows consente il montaggio tramite punti di analisi .