Wynika to częściowo z powodów historycznych, a częściowo z tego powodu, że ma to większy sens.
Multics
Multics był pierwszym systemem operacyjnym, który wprowadził hierarchiczny system plików, jaki znamy dzisiaj, z katalogami, które mogą zawierać katalogi. Powołując się na „Ogólny cel systemu plików do dodatkowego przechowywania” RC Daley i PG Neumann:
Rozdział 2 artykułu przedstawia hierarchiczną strukturę plików, która pozwala na elastyczne korzystanie z systemu. Ta struktura zawiera wystarczające możliwości, aby zapewnić wszechstronność. (…)
Aby ułatwić zrozumienie, strukturę plików można traktować jako drzewo plików, z których niektóre są katalogami. Oznacza to, z jednym wyjątkiem, że każdy plik (np. Każdy katalog) znajduje się bezpośrednio wskazywany przez dokładnie jedną gałąź w dokładnie jednym katalogu. Wyjątkiem jest katalog główny lub katalog główny w katalogu głównym drzewa. Chociaż nie jest to wyraźnie wskazane w żadnym katalogu, katalog główny jest domyślnie wskazywany przez fikcyjną gałąź znaną systemowi plików. (…)
W dowolnym momencie uważa się, że użytkownik działa w jednym katalogu, zwanym jego katalogiem roboczym. Może uzyskać dostęp do pliku wskazanego przez pozycję w swoim katalogu roboczym, po prostu podając nazwę pozycji. Więcej niż jeden użytkownik może mieć jednocześnie ten sam katalog roboczy.
Podobnie jak w wielu innych aspektach, Multics szukało elastyczności. Użytkownicy mogą pracować w poddrzewie systemu plików i zignorować resztę, nadal korzystając z katalogów, aby uporządkować swoje pliki. Katalogi były również używane do kontroli dostępu - atrybut READ pozwalał użytkownikom na listę plików w katalogu, a atrybut EXECUTE pozwalał użytkownikom na dostęp do plików w tym katalogu (podobnie jak wiele innych funkcji, żył w Uniksie).
Multics przestrzegał także zasady posiadania pojedynczej puli pamięci. Artykuł nie porusza tego aspektu. Pojedyncza pula pamięci pasowała do ówczesnego sprzętu: nie było żadnych wymiennych urządzeń pamięci, a przynajmniej takich, na których użytkownicy by się przejmowali. Multics miał oddzielną pulę pamięci kopii zapasowych, ale była ona przezroczysta dla użytkowników.
Unix
Unix czerpał wiele inspiracji z Multics, ale dążył do uproszczenia, podczas gdy Multics do elastyczności.
Pojedynczy hierarchiczny system plików dobrze pasował do systemu Unix. Podobnie jak w przypadku Multics, pule pamięci zwykle nie były istotne dla użytkowników. Były jednak urządzenia wymienne i Unix udostępnił je użytkownikom za pomocą poleceń mount
i umount
(zarezerwowanych dla „superużytkownika”, tj. Administratora). W „Systemie podziału czasu UNIX” Dennis Ritchie i Ken Thompson wyjaśniają:
Chociaż katalog główny systemu plików jest zawsze przechowywany na tym samym urządzeniu, nie jest konieczne, aby cała hierarchia systemu plików znajdowała się na tym urządzeniu. Istnieje żądanie podłączenia systemu z dwoma argumentami: nazwa istniejącego zwykłego pliku i nazwa specjalnego pliku, którego powiązany wolumin pamięci (np. Pakiet dyskowy) powinien mieć strukturę niezależnego systemu plików zawierającego własną hierarchię katalogów . Efektem montowania jest spowodowanie, że odniesienia do dotychczasowego zwykłego pliku będą się odnosić do katalogu głównego systemu plików na wymiennym woluminie. W efekcie mount zamienia liść drzewa hierarchii (zwykły plik) na zupełnie nowe poddrzewo (hierarchia przechowywana na wymiennym woluminie). Po zamontowaniu praktycznie nie ma rozróżnienia między plikami na wymiennym woluminie a plikami w stałym systemie plików. Na przykład w naszej instalacji katalog główny znajduje się na małej partycji jednego z naszych dysków, podczas gdy drugi dysk, który zawiera pliki użytkownika, jest montowany według sekwencji inicjalizacji systemu. System plików montowany jest generowany przez zapis na odpowiednim pliku specjalnym. Dostępny jest program narzędziowy do tworzenia pustego systemu plików lub można po prostu skopiować istniejący system plików.
Hierarchiczny system plików ma również tę zaletę, że koncentruje złożoność zarządzania wieloma urządzeniami pamięci masowej w jądrze. Oznaczało to, że jądro było bardziej złożone, ale dzięki temu wszystkie aplikacje były prostsze. Ponieważ jądro musi dbać o urządzenia sprzętowe, ale większość aplikacji nie, jest to bardziej naturalny projekt.
Windows
Windows śledzi swoje pochodzenie z powrotem do dwóch linii: VMS , system operacyjny pierwotnie zaprojektowany dla minikomputera VAX oraz CP / M , system operacyjny zaprojektowany dla wczesnych mikrokomputerów Intel.
VMS miał rozproszony hierarchiczny system plików, Files-11 . W Files-11 pełna ścieżka do pliku zawiera nazwę węzła, oznaczenie konta w tym węźle, nazwę urządzenia, ścieżkę do drzewa katalogów, nazwę pliku, typ pliku i numer wersji. VMS miał potężną funkcję logicznej nazwy umożliwiającą definiowanie skrótów do określonych katalogów, więc użytkownicy rzadko musieliby dbać o „rzeczywistą” lokalizację katalogu.
CP / M został zaprojektowany dla komputerów z 64kB pamięci RAM i dyskietką, więc poszedł za prostotę. Nie było katalogów, ale odwołanie do pliku może zawierać wskazanie dysku ( A:
lub B:
).
Kiedy MS-DOS 2.0 wprowadził katalogi, zrobił to ze składnią kompatybilną z MS-DOS 1, który sam był zgodny z CP / M. Tak więc ścieżki zostały zrootowane na dysku o nazwie jednoliterowej. (Również znak ukośnika /
został użyty w VMS i CP / M do uruchomienia opcji wiersza poleceń, więc inny znak musiał zostać użyty jako separator katalogu. Dlatego DOS i później Windows używają ukośnika odwrotnego, chociaż niektóre komponenty wewnętrzne również obsługują ukośnik ).
Windows zachował zgodność z DOS i podejściem VMS, więc zachowywał pojęcie liter dysku, nawet gdy stały się mniej istotne. Dzisiaj pod maską Windows używa ścieżek UNC ( pierwotnie opracowanych przez Microsoft i IBM dla OS / 2 , pokrewnych przodków). Chociaż jest to zarezerwowane dla zaawansowanych użytkowników (prawdopodobnie ze względu na wagę historii), system Windows pozwala na montowanie przez punkty ponownej analizy .