Isso ocorre em parte por razões históricas e em parte porque faz mais sentido dessa 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" por RC Daley e PG Neumann:
A seção 2 do artigo apresenta a estrutura hierárquica dos arquivos, o que permite o uso flexível do sistema. Essa estrutura contém recursos suficientes para garantir versatilidade. (…)
Para facilitar o entendimento, a estrutura do arquivo pode ser pensada como uma árvore de arquivos, alguns dos quais são diretórios. Ou seja, com uma exceção, cada arquivo (por exemplo, cada diretório) encontra-se diretamente apontado por exatamente uma ramificação em exatamente um diretório. A exceção é o diretório raiz, ou raiz, na raiz da árvore. Embora não seja explicitamente apontado em nenhum diretório, a raiz é apontada implicitamente por um ramo fictício conhecido pelo sistema de arquivos. (…)
A qualquer momento, considera-se que um usuário está operando em algum diretório, chamado diretório de trabalho. Ele pode acessar um arquivo efetivamente apontado por uma entrada em seu diretório de trabalho simplesmente especificando o nome da entrada. Mais de um usuário pode ter o mesmo diretório de trabalho ao mesmo tempo.
Como em muitos outros aspectos, o Multics buscava flexibilidade. Os usuários podem trabalhar em uma subárvore do sistema de arquivos e ignorar o restante, e ainda se beneficiar dos diretórios para organizar seus arquivos. Diretórios também foram usados para controle de acesso - o atributo READ permitiu que os usuários listassem os arquivos em um diretório, e o atributo EXECUTE permitiu que os usuários acessassem arquivos nesse diretório (isso, como muitos outros recursos, residia no unix).
Multics também seguiu o princípio de ter um único pool de armazenamento. O artigo não aborda esse aspecto. Um único pool de armazenamento combinava bem com o hardware da época: não havia dispositivos de armazenamento removíveis, pelo menos nenhum que os usuários se importassem. O Multics tinha um pool de armazenamento de backup separado, mas isso era transparente para os usuários.
Unix
O Unix se inspirou bastante no Multics, mas buscou a simplicidade, enquanto o Multics buscou a flexibilidade.
Um único sistema de arquivos hierárquico era adequado ao Unix. Como no 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, através dos comandos mount
e umount
(reservados ao "superusuário", ou seja, o administrador). Em "O sistema de compartilhamento de tempo UNIX" , Dennis Ritchie e Ken Thompson explicam:
Embora a raiz do sistema de arquivos esteja sempre armazenada no mesmo dispositivo, não é necessário que toda a hierarquia do sistema de arquivos resida nesse dispositivo. Há uma solicitação de sistema de montagem com dois argumentos: o nome de um arquivo comum existente e o nome de um arquivo especial cujo volume de armazenamento associado (por exemplo, um pacote de disco) deve ter a estrutura de um sistema de arquivos independente contendo sua própria hierarquia de diretórios . O efeito da montagem é fazer com que as referências ao arquivo comum até agora se refiram ao diretório raiz do sistema de arquivos no volume removível. Com efeito, mount substitui uma folha da árvore da hierarquia (o arquivo comum) por uma nova subárvore inteira (a hierarquia armazenada no volume removível). Após a montagem, praticamente não há distinção entre os arquivos no volume removível e os do sistema de arquivos permanente. Em nossa instalação, por exemplo, o diretório raiz reside em uma pequena partição de uma de nossas unidades de disco, enquanto a outra unidade, que contém os arquivos do usuário, é montada pela sequência de inicialização do sistema. Um sistema de arquivos montável é gerado gravando em seu arquivo especial correspondente. Um programa utilitário está disponível para criar um sistema de arquivos vazio ou pode-se simplesmente copiar um sistema de arquivos existente.
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.
janelas
O Windows rastreia sua linhagem até duas linhagens: o VMS , um sistema operacional originalmente projetado para o minicomputador VAX , e o CP / M , um sistema operacional projetado para os primeiros microcomputadores Intel.
O VMS tinha um sistema de arquivos hierárquico distribuído, Arquivos-11 . No Arquivo-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ório, um nome de arquivo, um tipo de arquivo e um número de versão. O VMS tinha um poderoso recurso de nome lógico , permitindo que os atalhos fossem definidos para diretórios específicos; portanto, os usuários raramente precisavam se preocupar com o local "real" de um diretório.
O CP / M foi projetado para computadores com 64kB de RAM e uma unidade de disquete, por isso foi simplificado. Não havia diretórios, mas uma referência de arquivo poderia incluir uma indicação de unidade ( A:
ou B:
).
Quando o MS-DOS 2.0 introduziu diretórios, o fez com uma sintaxe compatível com o MS-DOS 1, que seguia o CP / M. Portanto, os caminhos estavam enraizados em uma unidade com um nome de uma letra. (Além disso, o caractere de barra /
foi usado no VMS e no CP / M para iniciar as opções de linha de comando; portanto, um caractere diferente teve 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 suportem barra )
O Windows manteve a compatibilidade com o DOS e a abordagem VMS, mantendo a noção de letras de unidade, mesmo quando elas se tornaram menos relevantes. Hoje, sob o capô, o Windows usa caminhos UNC ( originalmente desenvolvidos pela Microsoft e IBM para OS / 2 , de ascendência relacionada). Embora isso seja reservado para usuários avançados (provavelmente devido ao peso do histórico), o Windows permite a montagem através de pontos de nova análise .