Isto é em parte por razões históricas, e em parte porque faz mais sentido desta maneira.
Multics
Multics foi o primeiro sistema operacional a introduzir o
sistema de arquivos hierárquico como o conhecemos hoje, com diretórios que podem conter diretórios. Citando
“Um sistema de arquivos de uso geral para armazenamento secundário” da R.C. Daley e P.G. Neumann:
Section 2 of the paper presents the hierarchical structure of files, which permits flexible use of the system. This structure contains sufficient capabilities to assure versatility. (…)
For ease of understanding, the file structure may be thought of as a tree of files, some of which are directories. That is, with one exception, each file (e.g., each directory) finds itself directly pointed to by exactly one branch in exactly one directory. The exception is the root directory, or root, at the root of the tree. Although it is not explicitly pointed to from any directory, the root is implicitly pointed to by a fictitious branch which is known to the file system. (…)
At any one time, a user is considered to be operating in some one directory, called his working directory. He may access a file effectively pointed to by an entry in his working directory simply by specifying the entry name. More than one user may have the same working directory at one time.
Como em muitos outros aspectos, a Multics buscou flexibilidade. Os usuários podem trabalhar em uma subárvore do sistema de arquivos e ignorar o resto, e ainda se beneficiar de diretórios para organizar seus arquivos. Os diretórios também eram usados para controle de acesso - o atributo READ permitia que os usuários listassem os arquivos em um diretório, e o atributo EXECUTE permitia que os usuários acessassem arquivos nesse diretório (como muitos outros recursos, viviam no unix).
As Multics também seguiram o princípio de ter um único pool de armazenamento. O papel não se debruça sobre este aspecto. Um único pool de armazenamento era compatível com o hardware da época: não havia dispositivos de armazenamento removíveis, pelo menos nenhum que os usuários se importassem. As Multics tinham um pool de armazenamento de backup separado, mas isso era transparente para os usuários.
Unix
O Unix foi muito inspirado pela Multics, mas visava a simplicidade, enquanto o Multics visava a flexibilidade.
Um único sistema de arquivos hierárquico é adequado para o Unix. Como com as Multics, os pools de armazenamento geralmente não eram relevantes para os usuários. No entanto, havia dispositivos removíveis e o Unix os expôs aos usuários por meio do mount
e comandos umount
(reservado para o “superusuário”, ou seja, o administrador). Em “Sistema de Compartilhamento de Tempo do UNIX” , Dennis Ritchie e Ken Thompson explicam:
Although the root of the file system is always stored on the same device, it is not necessary that the entire file system hierarchy reside on this device. There is a mount system request with two arguments: the name of an existing ordinary file, and the name of a special file whose associated storage volume (e.g., a disk pack) should have the structure of an independent file system containing its own directory hierarchy. The effect of mount is to cause references to the heretofore ordinary file to refer instead to the root directory of the file system on the removable volume. In effect, mount replaces a leaf of the hierarchy tree (the ordinary file) by a whole new subtree (the hierarchy stored on the removable volume). After the mount, there is virtually no distinction between files on the removable volume and those in the permanent file system. In our installation, for example, the root directory resides on a small partition of one of our disk drives, while the other drive, which contains the user's files, is mounted by the system initialization sequence. A mountable file system is generated by writing on its corresponding special file. A utility program is available to create an empty file system, or one may simply copy an existing file system.
O sistema de arquivos hierárquico também tem a vantagem de concentrar a complexidade do gerenciamento de vários dispositivos de armazenamento no kernel. Isso significava que o kernel era mais complexo, mas todos os aplicativos eram mais simples como resultado. Como o kernel precisa se preocupar com dispositivos de hardware, mas a maioria dos aplicativos não, esse é um design mais natural.
Windows
O Windows rastreia sua ascendência de volta para duas linhagens: VMS , um sistema operacional originalmente projetado para o VAX minicomputador e CP / M , um sistema operacional projetado para os primeiros microcomputadores da Intel.
O VMS tinha um sistema de arquivos hierárquico distribuído, Files-11 . Nos Arquivos-11, o caminho completo para um arquivo contém um nome de nó, uma designação de conta nesse nó , um nome de dispositivo, um caminho de árvore de diretórios, um nome de arquivo, um tipo de arquivo e um número de versão. O VMS tinha um poderoso recurso nome lógico , permitindo que os atalhos fossem definidos em diretórios específicos, para que os usuários raramente precisassem se preocupam com a localização “real” de um diretório.
O CP / M foi projetado para computadores com 64kB de RAM e uma unidade de disquete, por isso optou pela simplicidade. Não havia diretórios, mas uma referência de arquivo poderia incluir uma indicação de unidade ( A:
ou B:
).
Quando MS-DOS 2.0 introduzia diretórios, ele fazia isso com uma sintaxe compatível com o MS-DOS 1 que seguiu o CP / M. Então, os caminhos estavam enraizados em uma unidade com um nome de uma única letra. (Além disso, o caractere de barra /
foi usado no VMS e CP / M para iniciar opções de linha de comando, portanto, um caractere diferente tinha que ser usado como um separador de diretório. É por isso que o DOS e o Windows posterior usam barra invertida, embora alguns componentes internos também suporta slash).
O Windows manteve a compatibilidade com o DOS e a abordagem do VMS, de modo que manteve a noção de letras de unidade mesmo quando se tornaram menos relevantes. Hoje, sob o capô, o Windows usa caminhos UNC ( originalmente desenvolvido pela Microsoft e pela IBM para OS / 2 , de ancestralidade relacionada). Embora isso seja reservado para usuários avançados (provavelmente devido ao peso do histórico), o Windows permite a montagem por meio de pontos de nova análise .