Vai al contenuto

Unix File System

Da Wikipedia, l'enciclopedia libera.
Versione del 4 ott 2010 alle 09:55 di Pequod76 (discussione | contributi) (LiveRC : Annullata la modifica di 79.15.226.7; ritorno alla versione di PertBot ; vandalismo?)

UFS (Unix File System) è un file system usato principalmente in sistemi operativi Unix e Unix-like. È 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 primo file system usato per solo linux, ext2, è anch'esso derivato da UFS.

Implementazione e struttura

Un filesystem UFS è composto dalle seguenti componenti:

  • il primo settore del disco (512 byte) contiene la tabella delle partizioni.
  • un piccolo numero di blocchi posizionati all'inizio della partizione (dal 1° al 15 ° settore) sono 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
    • il numero delle directory
    • il numero di inode, i quali comprendono i dati sugli attributi dei file che contengono
    • un header, che contiene alcune statistiche, tra le quali, la lista dei blocchi e degli inode liberi, la frammentazione nei gruppi di cilindri. È simile al superblocco, ma applicato ad ogni gruppo di cilindri
    • il numero di blocchi per i dati nel gruppo di cilindri
    • la mappa dei blocchi liberi
    • la mappa degli inode usati

Gli inode sono numerati in sequenza: i primi inode sono riservati per motivazioni storiche e subito seguiti da quelli della root directory.

I file 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.

Dal 2004 Sun Microsystems ha introdotto il "logging on" su Solaris 7, rendendo così l'UFS un File System journaled (vedi journaling). Solaris dispone inoltre di diverse estensioni per la manipolazione di grandi file e grandi volumi.

Note

http://www.informit.com/content/images/0131482092/samplechapter/mcdougall_ch15.pdf