Eu acredito que a versão 7 do Unix suportava apenas um único sistema de arquivos. Sistemas operacionais modernos (incluindo Linux) suportam muitos, muitos sistemas de arquivos. Existe uma camada de código de "sistema de arquivos virtual" no kernel do Linux para fazer com que todos os diferentes sistemas de arquivos atuem como o que os programas Posix e Linux esperam. Por exemplo. O Linux pode usar sistemas de arquivos variouis MS-DOS e NTFS, e as permissões que os arquivos nesses sistemas possuem não são exatamente o usuário / grupo / outro, leitura / gravação / execução que o Linux deseja. Portanto, o código do sistema de arquivos virtual faz o trabalho de reconciliá-los. Como alguns sistemas de arquivos (sistemas de arquivos MS-DOS FAT e ReiserFS são exemplos) não têm diretórios como arquivos, o código do sistema de arquivos virtual não trata os diretórios como arquivos com uma marca especial, como o faz o UFS da Versão 7. Você pode fazer uma chamada de sistema open()
em um diretório, mas é necessário usar a chamada de sistema getdents()
para ler entradas de diretórios.