FAT16 e FAT32

Novembre 2016
Il primo file system utilizzato su un sistema operativo Microsoft è stato il file system FAT, che utilizza una tabella di allocazione dei file (in inglese FAT, File Allocation Table. La tabella di allocazione dei file è in effetti un indice che elenca il contenuto del disco, per registrare la posizione dei file sullo stesso. Dato che i blocchi che costituiscono un file non sono sempre memorizzati in modo contiguo sul disco (quello che si definisce con frammentazione), la tabella di allocazione permette di conservare la struttura del file creando dei collegamenti con i blocchi che costituiscono il file.


Il file system FAT16

Il file system FAT è un file system a 16 bit che permette di descrivere un file con un nome composto da 8 caratteri e un'estensione di 3. Questo file system viene quindi detto FAT16.

Per migliorare questo punto, la versione originale di Windows 95 (usando il file system FAT16) è stata dotata di una versione migliorata della FAT, si tratta del file system VFAT (Virtual FAT). La VFAT è un file system a 32 bit che consente di registrare un file con un nome composto da 255 caratteri. I programmatori hanno tuttavia dovuto far attenzione alla compatibilità ascendente, in modo tale da poter accedere a questi file partendo da ambienti a 16 bit (DOS). La soluzione è quindi stata quella di attribuire un nome ad ogni file system. È la ragione per cui è possibile usare dei nomi lunghi su Windows 95, potendo comunque accedervi anche su DOS.

Il file system FAT è un sistema a 16 bit, il che significa che non può indirizzare i cluster su più di 16 bit. Il numero massimo di cluser individuabili con il file system FAT è quindi di 216, cioè 65536 cluster. Ora, dato che un cluster è costituito da un numero fisso (4, 8, 16, 32, ecc.) di settori di 512 byte successivi, la dimensione massima di una partizione FAT si trova moltiplicando il numero di cluster per la dimensione di un cluster. Con dei cluster di dimensione di 32 KB, la dimensione massima di una partizione FAT è quindi di 2 GB.

D'altronde, un file può occupare solo un numero intero di cluster, cioè se un file occupa più cluster, l'ultimo sarà occupato in parte, e lo spazio libero restante sarà quindi perso. Di conseguenza, più la dimensione di un cluser è ridotta, minore sarà lo spreco di spazio. Si stima che un file sprechi in media la metà di un cluster, questo significa che su una partizione di 2 GB circa 16 KB sono persi per ogni file.

La tabella di allocazione dei file

La Tabella di Allocazione dei File è una lista di valori digitali che permette di descrivere il posizionamento dei cluster di una partizione, cioè lo stato di ogni cluster della partizione di cui essa fa parte. La tabella di allocazione è in effetti una tabella in cui ogni cella corrisponde ad un cluster. Ogni cella contiene una cifra che permette di sapere se il cluster che rappresenta sia usato da un file e, se ne è il caso, indica la posizione del prossimo cluster che il file occupa.

Si otterrà quindi una stringa FAT, cioè una lista concatenata di referenze che mirano ai diversi cluster successivi, fino al cluster finale del file. Ogni elemento inserito nella FAT ha un lunghezza di 16 o 32 bit (a seconda che si tratti di un FAT16 o di un FAT32). I primi due elementi inseriti permettono di memorizzare delle informazioni sulla tabella stessa, mentre quelli successivi permettono di referenziare i cluster. Alcuni elementi possono contenere dei valori che indicano uno stato specifico del cluster. Così il valore 0000 indica che il cluster non è utilizzato, FFF7 permette di segnalare il cluster come difettoso per evitarne l'utilizzo, e i valori compresi tra FFF8 e FFFF specificano che il cluster contiene la fine di un file. Ogni partizione contiene in realtà due copie della tabella, memorizzati in modo contiguo sul disco, per poter recuperarla nel caso in cui la prima copia sia corrotta.

Il file system FAT32

Nonostante la VFAT sia "intelligente", essa non permette di rimediare ai limiti del FAT16. Così, un nuovo file system (e non una migliore gestione della FAT come la VFAT) è apparsa con Windows 95 OSR2. Questo file system, detto FAT32 usa dei valori a 32 bit per gli elementi inseriti nella FAT. In realtà solo 28 bit sono usati dato che 4 sono riservati.

Con la comparsa del file system FAT32, il numero massimo di cluster per partizione è passato da 65535 a 268 435 455 (228-1). Il FAT32 autorizza quindi delle partizioni di dimensione più elevata (fino a 8 terabyte). In realtà la dimensione teorica massima di una partizione FAT32 è di 8 TB, tuttavia Microsoft la limita volontariamente a 32 GB sui sistemi Windows 9x per promuovere NTFS (ref: http://support.microsoft.com/default.aspx?scid=kb;it;184006).

Dato che una partizione FAT32 può contenere molti più cluser rispetto ad una FAT16, è possibile ridurre in modo significativo la dimensione dei cluster e di limitare nella stessa occasione lo spreco di spazio sul disco. Ad esempio, per una partizione di 2Gb, è possibile usare dei cluster di 4 KB con il file system FAT32 (invece di 32 KB con FAT16), il che diminuisce lo spazio sprecato con un fattore 8.

Dall'altro lato, la FAT32 non è compatibile con le versioni di Windows precedenti alla versione OEM Service Release 2. Un file system che funzioni con una versione precedente non vedrà questo tipo di partizione. Altra osservazione, le utility di gestione del disco funzionanti a 16 bit come quelle delle vecchie versioni di Norton non funzioneranno più correttamente. In termini di prestazione, l'utilizzo di un file system FAT32 rispetto ad uno FAT16 apporta praticamente un leggero guadagno di efficienza pari al 5% .

File system FAT16 o FAT32

Dato il numero di cluster limitato, la dimensione massima di una partizione dipende dalla dimensione di ogni cluster. Vediamo la dimensione massima di una partizione secondo la dimensione dei cluster e del file system utilizzato:

Dimensione di un clusterFile system FAT16 File system FAT32
(teorico)
512 byte 32 MB 64 MB
1 KB 64 MB 128 MB
2 KB 128 MB 256 MB
4 KB 256 MB 8 GB
(1 TB)
8 KB 512 MB 16 GB
(2 TB)
16 KB 1 GB 32 GB
(4 TB)
32 KB 2 GB 2 TB
(8 TB)


Quando si formatta un disco rigido, bisogna quindi determinare con precauzione il tipo di file system da utilizzare, scegliendo quello che permette di avere uno spazio disponibile il più simile possibile alla dimensione voluta.

Potrebbe anche interessarti :

FAT16 and FAT32
FAT16 and FAT32
FAT16 y FAT32
FAT16 y FAT32
FAT16 und FAT32
FAT16 und FAT32
FAT16 et FAT32
FAT16 et FAT32
FAT16 e FAT32
FAT16 e FAT32
Il documento intitolato « FAT16 e FAT32 » da CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.