L'approccio più utilizzato è di modificare il sistema operativo e
di includervi la funzionalità desiderata. L'implementazione tipica
per il kernel Linux è illustrata in figura 3.2: un modulo
apposito si registra presso il Virtual File System e funge da ulteriore
livello nell'instradamento delle richieste
dell'utente. Il modulo
appare come un file system generico, cui il VFS dirige le chiamate
di sistema come se fosse un normale tipo di file system. Esso, a sua
volta, le invia al processo demone specifico eseguito in spazio utente,
che si occupa di gestirle. Dopo che le richieste sono state computate
compiono il percorso inverso per essere restituite al processo che
inizialmente aveva necessità di accedere ai dati.
Attualmente i due principali progetti che sviluppano questa idea sono LUFS[Mal] e FUSE[Sze]. Essendo questi ultimi i prescelti a supporto del progetto di tesi, verranno esaminati in modo approfondito nel capitolo 4.
Per attuare questa implementazione è richiesto l'accesso al codice sorgente del kernel ed il privilegio di installare quest'ultimo sulla macchina, o almeno, di poter caricare un modulo nel kernel in esecuzione.