UFS
UFS (Unix File System) è un filesystem usato principalmente in sistemi operativi Unix e Unix-like. E' un derivato del Berkeley Fast File System, che fu a sua volta sviluppato a partire dal FS usato dalla prima versione di Unix realizzata presso i Bell Labs.
Pressoché tutti i derivati di BSD, inclusi FreeBSD, NetBSD, OpenBSD, NeXTSTEP e Solaris, usano una variante di UFS. In Mac OS X è disponibile come alternativa a HFS. In Linux è disponibile un supporto parziale a UFS, mentre il suo filesystem nativo, EXT2, è anch'esso derivato da UFS.
Implementazione e struttura
Un filesystem UFS è composto dalle seguenti componenti:
- un piccolo numero di blocchi posizionati all'inizio della partizione destinati al boot (e inizializzati separatamente dal filesystem stesso)
- un superblocco, contenente un magic number che identifica il filesystem come UFS ed altri parametri di importanza vitale che descrivono la geometria del filesystem e alcune statistiche.
- una serie di gruppi di cilindri. Ogni gruppo contiene:
- una copia di backup del superblocco
- un header, che contiene alcune statistiche, la lista dei blocchi liberi, etc... E' simile al superblocco, ma applicato ad ogni gruppo di cilindri
- un certo numero di inode, i quali contengono i dati sugli attributi dei files che contengono
- un certo numero di blocchi per i dati
Gli inode sono numerati in sequenza: i primi inode sono riservati per motivazioni storiche e subito seguiti da quelli della root directory.
I files che descrivono le directory contengono solo i nomi e i puntatori agli inode degli elmenti che contengono. Tutti i metadati sono conservati nell'inode stesso.
Presente e futuro
In molti sono coloro che hanno adattato UFS ai loro propri scopi, aggiungendo estensioni proprietarie non compatibili con le versioni degli altri. Sorprendentemente alcuni hanno continuato ad usare la dimensione originale dei blocchi e dei campi dati, ed alcuni margini di compatibilita' tra versioni (almeno in fase di lettura del filesystem) sono rimasti.
FreeBSD 5.0 ha introdotto UFS2, che dispone del supporto per volumi di oltre 1 TB.
Linux ha il filesystem EXT2, scritto da zero ma basato sui principi di UFS, mentre non dispone, a causa dell'assenza di uno standard unificato di UFS, di uno strumento per poter scrivere su tale filesystem.
Su Solaris 7 Sun Microsystems ha incluso l'UFS Logging, che ha permesso di includere il journaling su UFS. Solaris dispone inoltre di diverse estensioni per la manipolazione di grandi files e grandi volumi.
