# Sistema virtual de fitxers

Un sistema de fitxers virtual (VFS) o commutador de sistema de fitxers virtual és una capa d'abstracció damunt d'un sistema de fitxers més concret. El propòsit d'un VFS és permetre que les aplicacions client tinguin accés a diversos tipus de sistemes d'arxius concrets d'una manera uniforme. Pot ser utilitzada per a bastir un pont sobre les diferències en els sistemes d'arxius de Windows, de Mac OS i Unix, de manera que les aplicacions poguessin tenir accés a arxius en els sistemes d'arxius locals d'aquests tipus sense haver de saber a quin tipus de sistema d'arxius estan tenint accés.
Un VFS especifica una interfície (o un contracte) entre el nucli i un sistema d'arxius en concret. Per tant, és fàcil afegir nous sistemes d'arxius al nucli simplement satisfent el contracte. Els termes del contracte poden tornar incompatibles d'una versió a una altra, el que requeriria que sistemes d'arxius concrets fossin recompilats, i possiblement modificats abans de la recompilació, per permetre'ls treballar amb un nou llançament del sistema operatiu, o el proveïdor del sistema operatiu pugui realitzar només canvis retrocompatibles al contracte, de manera que un sistema d'arxius concret construït per a un llançament donat del sistema operatiu treballi amb les versions futures del mateix sistema operatiu.

## Implementacions

Un dels primers mecanismes virtuals del sistema d'arxius dins dels sistemes Unix-like va ser introduït per Sun Microsystems a SunOS 2.0 el 1985. Aquest permetre que les trucades del sistema UNIX tinguessin accés a sistemes de fitxers locals de UFS ia sistemes de fitxers remots NFS transparentment. Per això, els venedors de UNIX que van llicenciar el codi del NFS de Sun van copiar sovint el disseny de VFS del mateix Sun. Altres sistemes de fitxers es podien acoblar en ell també: hi havia una implementació del sistema d'arxius de FAT del MS-DOS desenvolupat en Sun que es va acoblar en SunOS VFS, encara que no va ser empaquetat com a producte fins SunOS 4.1. La implementació de SunOS era la base del mecanisme de VFS al System V Release 4.
John Heidemann va desenvolupar un VFS que sota SunOS 4.0 per al sistema de fitxers experimentals Ficus file system. Aquest disseny proporcionat per a la reutilització del codi entre tipus de sistemes de fitxers amb semàntiques diferenciades però similars (per exemple, un sistema de fitxers encriptat podria reutilitzar tot el codi de nomenament i d'emmagatzematge d'un sistema de fitxers no encriptat). Heidemann va adaptar aquest treball per a l'ús en 4.4BSD com a part de la seva investigació de tesi, els descendents d'aquest codi sostenen les implementacions del sistema de fitxers en derivats moderns de BSD incloent Mac OS X.
Altres mecanismes de sistema de fitxers virtual en sistemes tipus UNIX inclouen l'Interruptor de Sistema de fitxers a System V Release 3, el Sistema de fitxers Genèric a Ultrix, i el VFS en GNU/Linux. En OS/2 i Microsoft Windows, el mecanisme de sistema de fitxers virtual es diu Sistema de fitxers Instal·lable.
El mecanisme del sistema de fitxers en espai d'usuari (FUSE (Linux)) permet que el codi d'espai d'usuari s'acobli en el mecanisme del sistema de fitxers virtual a GNU/Linux, FreeBSD, de OpenSolaris, i Mac OS X.
En Microsoft Windows, els sistemes de fitxers virtuals poden també implementar a través de les extensions de consola de nom d'usuari en espai d'usuari, però, no suporten les interfícies de programació d'aplicacions del sistema de més baix nivell d'accés de fitxers, de manera que no totes les aplicacions seran capaços d'accedir sistemes de fitxers que s'hagin implementat com a extensions de nom d'usuari.
KIO i el GNOME VFS proveeixen de mecanismes similars en els entorns d'escriptori de KDE i de GNOME, amb limitacions similars, encara que poden ser fets per utilitzar tècniques FUSE i, per tant, integrar suaument en el sistema.

### Sistemes de fitxers virtuals d'un sol fitxer

Es posen en execució alguns sistemes de fitxers virtuals d'una manera que la il·lusió d'un sistema de fitxers pugui ser creada usant l'accés a un sol fitxer en el sistema de fitxers subjacent. L'avantatge primària a aquest tipus d'implementació és que és centralitzat i fàcil treure. Un sistema de fitxers virtual del sol-fitxer pot incloure totes les característiques bàsiques esperades de qualsevol sistema de fitxers (virtual o d'una altra manera), però l'accés a l'estructura interna d'aquests sistemes de fitxers es limita sovint als programes escrits específicament per fer ús el sistema de fitxers virtual del fitxer-únic (en comptes de la implementació a través d'un driver permetent l'accés universal). Un altre desavantatge important és que el funcionament és relativament baix quan està comparat a altres sistemes de fitxers virtuals. De resultat inferior és sobretot a causa del cost de barrejar fitxers virtuals quan les dades s'escriuen o se suprimeixen del sistema de fitxers virtual.

## Referències

* Put virtual filesystems to work
* Vnodes: An Architecture for Multiple File System Types in Sun UNIX Arxivat 2006-09-05 a Wayback Machine.
* The Linux Virtual File-system Layer Arxivat 2007-04-03 a Wayback Machine.
* nucli Linux Vs Virtual File System
* The Linux VFS, Chapter 4 of Linux File Systems by Moshe Bar (McGraw-Hill, 2001). ISBN 0-07-212955-7
* Chapter 12 of Understanding the Linux Kernel by Daniel P. Bovet, Marc Cesati (O'Reilly Media, 2005). ISBN 0-596-00565-2

## Vegeu també

* GmailFS - sistema de fitxers que utilitza Gmail com a mètode d'emmagatzematge

## Enllaços externs

* Workflux.net Arxivat 2008-07-09 a Wayback Machine. Solució empresarial d'administració de fitxers i projectes en línia. (castellà)
* fs-driver Controlador de sistema de fitxers ext2 per Microsoft Windows. (anglès)
* GMail Drive Controlador per usar GMail com un disc dur virtual. (anglès)