2. O Que é VFS?
O VFS é uma camada de abstração entre a aplicação e
as implementações do sistema de arquivos;
Desenvolvimento motivado pela Sun
Microsystems (1986);
Para dar suporte a sistemas de
arquivos remotos utilizando o NFS.
3. Virtual File System
É uma camada de abstração em cima de um sistema
de arquivos mais concreto.
Abstrai a parte comum aos diferentes sistemas de
arquivos;
Qualquer sistema Unix-like moderno utiliza.
4. VFS - Aplicações
O propósito de um VFS é permitir que as aplicações
clientes tenham acesso a diversos tipos de sistemas
de arquivos concretos de uma maneira uniforme.
Camada de software do núcleo que trata de todas as
chamadas de sistema relacionadas a um sistema de
arquivos Unix
5. Vantagem
Prover uma interface genérica para diversos tipos de
sistemas de arquivos;
VFS permite que chamadas de sistemas genéricas,
tais como open( ) e read( ),possam ser executadas
independentemente do sistema de arquivos usado ou
do meio físico;
Para o VFS e para o resto do Núcleo os Sistemas de
Arquivos parecem iguais.
6. $ cp /floppy/TEST /tmp/test
/floppy é o mount point de um diskette MS-DOS e
/tmp é um diretório Ext2 comum;
O programa cp não precisa saber os tipos de
arquivo do /floppy/TEST e do /tmp/test
O cp interage com o VFS usando chamadas de
sistema comuns conhecidas por qualquer um
que já programou em Unix.
7. Interface inferior
Consiste de algumas chamadas de funções que
podem ser realizadas pelo VFS;
Para criar um system file que trabalhe com
VFS, deve-se certificar que ele ofereça
chamadas requeridas pelo VFS.
9. Objeto Superbloco
Utilizado para armazenar informações sobre um
sistema de arquivos específico;
Por exemplo, se um Objeto Superbloco se refere a
um sistema de arquivos do tipo Ext2, o campo
aponta para uma estrutura ext2_sb_info, a qual
inclui a máscara de alocação no disco e outros
dados irrelevantes para o modelo de arquivo
comum do VFS.
10. Objeto Inode
Um Objeto Inode possui toda informação necessária
para que o Sistema de Arquivos possa manipular os
arquivos e/ou diretórios.
Cada arquivo é representado por um inode no Sistema
de Arquivos.
11. Objeto Dentry
O VFS trata diretórios como arquivos;
Exemplo: /bin/vi, bin e vi são arquivos, ambos
representados pelo objeto inode.
Para facilitar a realização de operações específicas
sobre diretórios, o VFS usa o conceito de "entrada de
diretório" (dentry).
No exemplo, /, bin e vi são objetos dentry;
O VFS instancia estes objetos "on the fly”.
12. Objeto File
A representação dos arquivos abertos pelos
processos é feita pelo File Object;
Um File Object descreve como um processo
interage com o arquivo que foi aberto;
A informação mais relevante guardada em um file
object é file pointer, que indica a posição no arquivo
em que a próxima operação se iniciará.