Definición


Es virtual file system es el subsistema del Kernel que implementa la interfaces que tiene que ver con los archivos y el sistema de archivos provistos a los programas corriendo en modo usuario. Todos los sistemas de archivos deben basarse en VFS para coexistir e interoperar. Esto habilita a los programas a utilizar las system calls de Unix para leer y escribir en diferentes sistemas de archivos y diferentes medios.

Los VFS es el pegamento que habilita a las system calls como por ejemplo open(), read() y write() a funcionar sin que estas necesiten tener en cuenta el Hardware subyacente.

Objetos


Los VFS presentan una serie de estructuras que modelan un File system, estas estructuras se denominan objetos. Estos objetos son:

  • Super bloque:
    • Representa a un sistema de archivos
  • Inodo:
    • Representa a un determinado archivo
  • Dentry
    • Representa una entrada de Directorio, que es un componente simple de un path
  • File:

A tener en cuenta que un directorio es tratado como un archivo normal, no hay un objeto especifico para directorios. En Unix los directorios son archivos normales que listan los archivos contenidos en ellos.

Operaciones


Existe un conjunto de operaciones

  • Las super_operations:
  • Las inode_operations:
    • Son los métodos que aplica el kernel sobre un Archivo determinado, por ejemplo create() o link()
  • Las dentry_operations:
    • Son los métodos que se aplican directamente por el kernel a una determinada directory entry, como por ejemplo, d_compare() y d_delete()
  • Las file_operations:
    • Son los métodos que el kernel aplica directamente sobre un archivo abierto por un proceso, read() y write()