File Allocation Table
La File Allocation Table, detta anche FAT, è un File system sviluppato per MS-DOS e utilizzato nei sistemi operativi Microsoft Windows fino alla versione Windows ME. È considerato relativamente semplice, per questo è supportato da praticamente tutti i sistemi operativi moderni.
Esistono varie versioni di questo file system, in base quanti bit sono allocati per numerare i cluster del disco: FAT12, FAT16, FAT32. Il VFAT è una versione del FAT16, ma virtuale cioè non registrato fisicamente sull'hard disk, ma gestito da un software specifico.
Storia
Il FAT ha debuttato nell'Agosto del 1980 con la prima versione di QDOS di Tim Paterson, il predecessore del PC-DOS e di MS-DOS della Microsoft, anzi, fu proprio la principale differenza tra il QDOS e il CP/M, di cui il QDOS era un clone.
L'idea fu presa da come la versione stand-alone di Microsoft BASIC utilizzava i floppy disk fino al 1976. Nel Maggio del 1979, un anno prima di decidere di scrivere il QDOS, Tim Paterson aiutò Bob O'Rear a portare il loro linguaggio nella nuova architettura 8086.
La FAT in sé mantiene la traccia delle aree del disco disponibili e di quelle già usate dai file e dalle directory: la differenza fra FAT12, FAT16 e FAT32 consiste appunto in quanti bit sono allocati per numerare i cluster del disco. Con 12 bit, il file system può indirizzare al massimo 212 = 4096 cluster, mentre con 32 bit si possono gestire 232 = 4.294.967.296 cluster; l'aumento del numero di bit di indirizzo dei cluster si è reso necessario per gestire unità a disco sempre più grandi e capienti.
FAT12
La prima versione del FAT fu la FAT12, un file system per floppy disk i cui indirizzi per i cluster erano appunto a 12 bit (lunghezza non standard, quindi manipolare il FAT era un po' più complicato) e per questo poteva gestire dischi grandi al massimo 32MB. Ma visto che i dischi dell'epoca erano grandi al massimo 160KB questi limiti non vennero mai sentiti. La prima versione del FAT12 non supportava le directory ad albero, che vennero introdotte con l'MS-DOS 2.0 e i dischetti da 360KB.
Nel 1984 la IBM rilasciò i PC AT, con un hard disk di 20 MB. In parallelo Microsoft introdusse l'MS-DOS 3.0 ed una versione del FAT con indirizzi per i cluster a 16 bit, permettendo fino a 65.536 cluster e portando il limite di grandezza teorico a 512MB. Comunque il numero massimo di settori e la dimensione massima (di una partizione, non più di un disco) non cambiò e rimase di 32 MB.
English is my natural language and it means to stfu and stop speaking like ur retarded
In dettaglio
Il file system FAT è un file system classificato tra quelli con allocazione concatenata. Una unità FAT può essere divisa in quattro aree: Area riservata, Tabella di Allocazione dei File, Directory radice ed Area dei File. L'area riservata parte dal settore logico zero e contiene il boot sector con le informazioni utili per la gestione dell'unità. Ogni voce della Tabella di Allocazione dei File (in sigla FAT, appunto), che chiameremo record, corrisponde ad un cluster dell'area dei file. In questa tabella il valore delle voci indica se quel cluster è libero, riservato, danneggiato o utilizzato da qualche file. I valori standard per le voci delle FAT sono riportati in tabella.
VALORI POSSIBILI | Significato associato | ||
FAT 12 | FAT 16 | FAT 32 | |
0x000 | 0x0000 | 0x00000000 | Cluster non utilizzato |
0xFF0-0xFF6 | 0xFFF0-0xFFF6 | 0xFFFFFFF0-0xFFFFFFF6 | Cluster riservato |
0xFF7 | 0xFFF7 | 0xFFFFFFF7 | Cluster danneggiato |
0xFF8-0xFFF | 0xFFF8-0xFFFF | 0xFFFFFFF8-0xFFFFFFFF | Ultimo cluster del file |
(altri valori) | (altri valori) | (altri valori) | Cluster successivo del file |
Se una voce della FAT dovesse contenere un valore non descritto nella tabella quì sopra, allora vuol dire che il cluster è occupato da un file e, allo stesso tempo, indica quale è il prossimo cluster occupato in sequenza dal file. La figura seguente mostra la catena di voci della FAT per un immaginario file "ALPHA.TXT" su un'unità FAT16. Nel cluster della directory è registrato il nome del file ed il suo primo cluster:
Nome del file | Estensione | Cluster iniziale |
ALPHA | TXT | 0003 |
Il file ALPHA.TXT è indirizzato a partire dal cluster 3 (il valore è in esadecimale).
0000 | 0006 | 0000 | 0000 | 0008 | 0000 | FFFF | 0000 |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Il cluster 3 ci rimanda al cluster 6, dal quale andiamo all'8, dove troviamo il marcatore di fine file FFFF (65535 in decimale) della FAT16: perciò per recuperare i contenuti del file dovremo leggere in sequenza i cluster 3, 6 e 8.
Supporti esterni
Data la grande diffusione del FAT file system, praticamente tutti i sistemi operativi non Microsoft hanno supportato sia il FAT16, che il VFAT ed infine il FAT32 (questo con meno limitazioni di quelle previste ufficialmente). Con le prime distribuzioni di Linux venne creato un file system chiamato UMSDOS, un FAT con gli attributi Unix (permessi, proprietario ecc.); il suo sviluppo si fermò con l'arrivo del VFAT, ma è tuttora supportato. Il sistema operativo Mac OS X utilizzava il FAT per i volumi non avviabili.
La fine
Con l'annuncio della Microsoft del cessato supporto a MS-DOS e l'introduzione del NTFS in tutti i sistemi operativi prodotti, è improbabile che venga sviluppata una nuova versione del FAT. Vista però l'estrema diffusione del FAT nei floppy disk, nelle memorie flash o nei driver USB e essendo molto limitato il supporto del NTFS nei sistemi operativi non Microsoft, probabilmente questo file system verrà utilizzato ancora a lungo.