UnionFS
Template:Da tradurre UnionFS è un filesystem Linux che permette di simulare l'unione di più filesystem sottostanti. Consente di sovrapporre in modo trasparente file e cartelle di filesystem separati, detti branch (rami), per formare un singolo filesystem coerente. I contenuti delle cartelle che hanno lo stesso percorso nei rami uniti, saranno visti come se fossero nella stessa cartella del filesystem virtuale.
I vari rami possono essere filesystem in sola lettura oppure scrivibili. Le operazioni di scrittura nel filesystem unificato verranno redirette verso uno specifico filesystem scrivibile. Ciò consente di far apparire un filesystem come scrivibile, senza permettere la scrittura effettiva (copy-on-write): questa è una delle caratteristiche che ne fanno uno strumento utile quando, ad esempio, il supporto non è veramente scrivibile, come nel caso dei CD-ROM, oppure quando si vuole usare una base comune a più filesystem, o infine per motivi di sicurezza. A volte, questa tecnologia viene usata come sistema ad hoc per la realizzazione di istantanee dello stato del filesystem (in gergo snapshot).
Quando si aggiungono (montano) rami, bisogna specificare che priorità hanno tra di loro. In questo modo, quando due o più rami contengono un file con lo stesso nome, il ramo con la priorità maggiore riceve le chiamate di lettura e scrittura.
Nei liveCD UnionFS è usato per sovrapporre un filesystem scrivibile ad un supporto in sola lettura. In KNOPPIX Linux, ad esempio, si può eseguire l'unione del filesystem nel CD-ROM o nel DVD ed il filesystem contenuto in un file immagine chiamato knoppix.img in una chiavetta USB. Quest'ultimo, impostato con una priorità maggiore rispetto al filesystem in sola lettura del CD-ROM o del DVD, permette di mostrare all'utente un filesystem logico nel quale si possono aggiungere, modificare o cancellare file ovunque. A livello fisico, se un file che risiede in un ramo in sola lettura viene sostituito, quest'ultimo viene inserito nel file immagine. Poiché il filesystem logico unisce i due rami trasparentemente, l'utente vedrà semplicemente la nuova versione.
Altre implementazioni
Il sistema operativo Plan 9 dei Bell Labs usa i mount uniti estensivamente per ottenere namespace personalizzati per ogni utente e processo. Lo steso concetto, implementato come "union mount" è stato disponibile in BSD per almeno dieci anni.
Ci furono vari tentativi precedenti per aggiungere questa funzionalità a Linux, ma nessuno è stato sostenuto a lungo. Da molto tempo Linux dispone di una finzionalità del programma "mount" che permette di inserire una cartella in più di un posto del filesystem. Questa funzionalità è presente anche in altri sistemi operativi, come MSDOS, ma è un concetto completamente differente dai mount uniti.
Bibliografia
- {en} C. P. Wright et al. (2004). "Versatility and Unix Semantics in a Fan-Out Unification File System (pdf)." Tratta le implementazioni di UnionFS e la semantica.
Collegamenti esterni
- {en} http://www.fsl.cs.sunysb.edu/project-unionfs.html
- {en} http://www.unionfs.org/ contiene esempi su come ottenere un filesystem unito
- {en} https://bugzilla.filesystems.org/ database dei bug di UnionFS