O Virtual File System (VFS) é um programa ou é apenas uma interface?

0

Estou tentando entender o que é o VFS no Linux, o diagrama a seguir representa o VFS:

O que não tenho certeza é se o VFS é um programa com o qual o Aplicativo fala e, em seguida, o VFS fala com o driver do sistema de arquivos apropriado ou se o VFS é apenas uma interface / linguagem comum que os drivers do sistema de arquivos devem implementar e, na realidade, o aplicativo está falando diretamente com os drivers de sistemas de arquivos usando essa interface / linguagem comum?

    
por user285617 12.04.2018 / 15:39

2 respostas

2

O VFS é uma camada de interface no kernel. Ele fornece uma interface uniforme para os aplicativos conversarem com os sistemas de arquivos, independentemente do sistema de arquivos em uso: assim, as chamadas do sistema, como open , write , read , vão para a camada VFS, que as despacha para o sistema de arquivos apropriado.

Os sistemas de arquivos se registram com a camada VFS e fornecem um conjunto padrão de informações, para que a camada VFS possa usá-los. Isso significa que todos os sistemas de arquivos no Linux precisam implementar conceitos semelhantes: principalmente inodes, entradas de diretório e arquivos.

Isso é documentado em detalhes no kernel .

    
por 12.04.2018 / 16:00
0

O VFS é uma camada de software inteira no kernel, situada entre as chamadas do sistema e os drivers do sistema de arquivos, não é um sistema de arquivos por si só.

Ele fornece uma interface comum a vários tipos de sistemas de arquivos.

Imagine, por exemplo, usamos o comando:

cp /usb/file /tmp/file

/usb é montado em um fat32 USB, /tmp é um etx2 filesytem.

A camada VFS fica entre o aplicativo e o sistema de arquivos, portanto, o comando cp não precisa conhecer o sistema de arquivos no qual está executando a cópia. Em vez disso, cp interage com o VFS usando chamadas genéricas do sistema, por exemplo: open , write , read etc ....

    
por 12.04.2018 / 16:04