Lo Smart File System o SFS è un file system con journaling usato sui sistemi Amiga. Come tutti i file system di tipo journaled, SFS una volta ricevuti da un applicativo i dati che devono essere conservati dal SO, provvede prima a memorizzare le operazioni che deve compiere su un file di log; in seguito effettua la scrittura fisica dei dati sulla periferica di memoria di massa (es.: disco rigido); e come mossa finale registra nuovamente sul file di log le operazioni che sono state effettuate.

Storia modifica

SFS è un filesystem di libera distribuzione scritto in C originariamente da John Hendrikx nel 1998. Quando questi si allontanò dalla scena Amiga nel 2000, rilasciò pubblicamente i sorgenti di SFS alla comunità. Lo sviluppo di SFS è stato continuato da sviluppatori indipendenti.

Da maggio 2005 i codici sorgenti di Smart File System sono distribuiti con la licenza LGPL.

Caratteristiche modifica

Il design di SFS è ottimizzato per essere veloce e garantire scalabilità e integrità. Usa diverse grandezze di blocco a partire da 512 byte per blocco (29) fino a 32768 byte (215), e la grandezza massima totale della partizione è variabile.

Il valore "grandezza massima" che una partizione può assumere è 1 Terabyte (1024 Gigabyte) se applicato a blocchi di 512 byte, e può ulteriormente aumentare, a seconda della grandezza massima di blocco adoperata.

Una delle caratteristiche più performanti è realizzata raggruppando voci di directory multiple in un singolo blocco e raggruppando blocchi di metadata insieme in cluster. Una bitmap è utilizzata per tenere traccia dello spazio libero, mentre viene tenuta traccia dei dati file usando extent (blocchi logici continui) disposti in una struttura ad albero B+ (detta anche ad albero "bilanciato") ereditata dalla tecnologia di database.

L'integrità è mantenuta da un log di rollback ("annullamento") di tutti i cambiamenti fatti ai metadata in un periodo di tempo determinato. Prima viene scritto il log sul disco, e in seguito i blocchi metadata sono sovrascritti direttamente. Se il sistema dovesse andare in crash, la volta successiva che il filesystem verrà montato si accorgerà della procedura incompleta e ritornerà con una procedura appunto di "rollback" (letteralmente come il riavvolgersi di un nastro) all'ultimo stato coerente. Per ragioni di performance viene garantita solo l'integrità dei metadata. Allo stato attuale i dati nei file possono ancora essere corrotti se un'operazione di scrittura viene interrotta a metà.

Un'interessante peculiarità dello Smart FS è l'abilità di deframmentarsi al volo, mentre il filesystem è in uso, permettendo tale operazione anche sui file che devono obbligatoriamente risiedere in posizioni fisse del disco rigido. Il processo di deframmentazione è quasi completamente "stateless" (eccetto che nella locazione del disco rigido su cui deve lavorare). Durante la deframmentazione l'integrità dei dati è assicurata contemporaneamente sia per i metadata, sia per i dati veri e propri.

Supporto nativo modifica

Smart FS è stato scelto dagli sviluppatori di MorphOS come filesystem di base ed è quindi ovviamente uno dei filesystem supportati in modo nativo da tale sistema operativo. È inoltre disponibile una versione nativa per AmigaOS4 di SmartFS (versione 2.x) che permette il salvataggio di file più grandi di 2Gb grazie alla nuova versione di AmigaDOS presente in OS4.

Voci correlate modifica

Collegamenti esterni modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica