Un file system virtuale (in inglese Virtual file system o Virtual filesystem switch) è un livello astratto, prendendo il nome di virtual-virtualizzazione, che si posiziona al di sopra del file system.
Lo scopo del VFS è quello di permettere alle applicazioni l'accesso a differenti tipologie di file gestiti in differenti file system. Un VFS, per esempio, può essere usato per permettere un accesso locale o di rete a dispositivi di storage in maniera trasparente cioè senza che le applicazioni, che richiedono l'accesso a tali dispositivi, notino come il VFS risponda alla tipologia di richiesta.
Può essere usato come ponte tra i differenti file system dei diversi sistemi operativi, quali Windows, MacOS, UNIX in modo che le applicazioni posso accedere a file nel file system in questione senza preoccuparsi delle caratteristiche e quindi interfacciarsi esclusivamente con il VFS.
Quindi il VFS può essere specificato come interfaccia (o contratto) tra il kernel e il file system. Pertanto è facile aggiungere nuovi file system al kernel aggiungendo tali informazioni al kernel permettendo di evitare incompatibilità e problemi collegati. Ciò supera i tradizionali limiti di un file system fisico, il cui cambiamento richiederebbe la ricompilazione del supporto del file system ed, eventualmente, la modifica prima della ricompilazione, per consentirne il funzionamento con una nuova versione del sistema operativo; oppure il fornitore del sistema operativo potrebbe apportare modifiche retroattive al contratto, in modo che il supporto concreto del file system creato per una data versione del sistema operativo funzioni con le versioni future del sistema operativo.