Il primo file system utilizzato su un sistema operativo Microsoft è stato il file system FAT. Esso 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 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 cluster 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 cluster è 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 è 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.
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: supporto Microsoft).
Dato che una partizione FAT32 può contenere molti più cluster 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 2 GB, è 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% .
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 cluster | File 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.
Foto: © Pixabay.