File Allocation Table: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Timendum (discussione | contributi)
m FAT spostata a File Allocation Table
Timendum (discussione | contributi)
Nessun oggetto della modifica
Riga 1:
La '''File Allocation Table''', detta anche '''FAT''', è un [[File system]] sviluppato per [[MS-DOS]] e utilizzato nei [[sistema operativo|sistemi operativi]] [[Microsoft Windows]] fino alla versione [[Windows ME]]. È considerato relativamente semplice, per questo è supportato da praticamente tutti i sistemi operativi moderni.
La '''FAT''' ('''F'''ile '''A'''llocation '''T'''able), è la struttura cardine del [[file system]] di [[MS-DOS]], tanto comune da essere supportato tuttora dai moderni sistemi operativi. Per estensione, il termine è passato a indicare il filesystem stesso nelle sue varie versioni: quindi si parla di filesystem '''FAT12''' (il filesystem MS-DOS originale), '''FAT16''' (versione estesa, dall'MS-DOS versione 4.0 in poi) e '''FAT32''', la versione di filesystem FAT tuttora in uso.
 
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.
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 filesystem può indirizzare al massimo 2<sup>12</sup> = 4096 cluster, mentre con 32 bit si possono gestire 2<sup>32</sup> = 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.
 
==Storia==
Il file system basato sulla FAT è semplice e sufficientemente robusto. Normalmente se il computer si blocca i dati del file system non sono persi.
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 semplice struttura purtroppo porta ad una grande frammentazione dei file, in quanto per aggiungere una nuova sezione di un file, è necessario spostarsi tra la posizione in cui esistono le informazioni della struttura del file e la zona dove i dati vengono scritti, aggiornando entrambi le strutture.
 
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 filesystemfile system può indirizzare al massimo 2<sup>12</sup> = 4096 cluster, mentre con 32 bit si possono gestire 2<sup>32</sup> = 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.
 
== Cluster =FAT12===
La prima versione del FAT fu la '''FAT12''', un file system per [[floppy disk]], aveva molte motivazioni: non supportava directory gerarchiche (con struttura ad albero), gli indirizzi per i [[cluster]] erano lunghi "solo" 12 [[bit]] (una lunghezza non standard, quindi manipolare il FAT diventata un po' più complicato) e la dimensione del disco era limitata a 32MB, ma i dischetti dell'epoca, grandi 5.25", contenevano meno di 160KB.
Un cluster è un gruppo di settori del disco, che contengono [[file]] e [[directory]]. La dimensione di un cluster è specificata nel Boot Record, e può variare da 1 a 16 settori (FAT12 e FAT16), o da 1 a 128 settori (FAT32).
 
All'inizio del [[1983]], per supportare i nuovi computer [[IBM]] PC XT, con un [[hard disk]] da 10 MB, fu rilasciato l'MS-DOS 2.0 che introduceva le directory gerarchiche, anche se il formato del FAT non cambiò.
== Boot Record ==
Il Boot record è un'area riservata sul disco, nelle FAT12 e FAT16 ha una dimensione di 1 settore, mentre per la FAT32 è di 32 settori. Contiene un insieme di informazioni su come è strutturato il disco (il '''Boot Parameter Block''' o BPB) e un breve programma, che si occupa di caricare il sistema operativo o di segnalarne la mancanza. Il BPB della FAT32 è esteso rispetto alle versioni precedenti e comprende più informazioni.
 
Nel [[1984]] la IBM rilasciò i PC AT, con un hard disk di 20 MB. In parallelo Microsoft introdusse l'MS-DOS 3.0, gli indirizzi per i cluster vennero aumentati a 16 bit, permettendo un numero maggiore di cluster (fino a 65,536) e conseguentemente un file system più grande. 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. MS-DOS 3.0 introdusse anche il supporto per i [[floppy disk|dischetti]] 5.25" ad alta densità da 1.2 MB, con 15 settori per traccia e quindi ancora più spazio per il FAT.
== File Allocation Table ==
La struttura che contiene la tabella di allocazione dei file è semplice, infatti è un [[vettore]] contenente dati a 12, 16 o 32 bit che sono lo stato dei singoli cluster in cui il disco è suddiviso. Per maggior sicurezza la FAT su disco ha due copie identiche (''FAT mirroring'').
Un campo del boot record indica comunque quante copie della FAT esistono, e il sistema operativo mantiene la sincronia tra le varie FAT.
 
===FAT16===
Se la prima tabella FAT si rovina, la seconda tabella diventa disponibile, e programmi come SCANDISK riescono a risolvere i problemi della prima tabella.
Nel [[1987]] arrivò il formato che ora viene chiamato ''FAT16'', nel Compaq DOS 3.31, nel [[1988]] i miglioramenti arrivarono anche con l'MS-DOS 4.0. La dimensione delle partizione venne limitata dalla dimensione di 8-bit dei settori per cluster, che quindi arrivarono a 64, dando 32 KB cluster con la solita dimensione di 512 byte per settore, fissando il limite "definitivo" per una partizione con il FAT a 2 GB. Più tardi, [[Windows NT]] aumentò la dimensione massima dei cluster a 64K (considerando il contatore come ''unsigned'', senza segno), ma il risultato non era compatibile con le altre implementazioni del FAT del tempo e di solito generava una grande frammentazione interna.
 
===VFAT===
Tutte le directory tranne la directory radice contengono il famoso puntino ed il doppio puntino.
Per supportare i nomi dei file lunghi, venne introdotto in [[Windows 95]] il '''VFAT''' ('''V'''irtual '''FAT'''), un FAT virtuale gestito dal driver della periferica. L'implementazione modificava il modo in cui il file system organizzava i contenuti di una directory.
[[Immagine:fat.jpg|thumb|left|Esempio di directory minima]]
 
== Area dati =FAT32===
Per superare i limiti sulla dimensione dei volumi imposta dal FAT16, [[Microsoft]] decise di creare un nuovo FAT chiamato '''FAT32'', con numeri per i cluster da 32 bit, anche se in realtà ne vengono utilizzati solo 28.
L'area dati è divisa in cluster della stessa dimensione e contiene i file e le directory.
 
In teoria, questo dovrebbe permettere 268,435,438 (< 2<sup>28</sup>) cluster, cioè una dimensione totale dell'ordine dei 2 [[terabyte]], ma, a causa delle limitazioni dell'utility scandisk, non è permesso al FAT di superare i 4,177,920 (< 2<sup>24</sup>) cluster, spostando la dimensione massima a 124.55 [[gigabyte]]. In [[Windows 2000]] e [[Windows XP|XP]] il limite è stato allargato a 32 GB, ma questo limite è ancora troppo per le attuali capacità hardware.
== Nomi file ==
 
La classica struttura delle directory (prima di Windows NT e Windows 95) limitava i nomi dei file ad 8 caratteri con un'estensione di 3 (esempio: CONFIG.SYS).
==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, ...); il suo sviluppo venne bloccato con l'arrivo del VFAT, ma è tutt'ora 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 [[memoria flash|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.
 
[[Categoria:File system]]
 
== [[de:File Allocation Table ==]]
[[fr:File Allocation Table]]
[[en:File Allocation Table]]
[[es:FAT]]
[[nl:File Allocation Table]]
[[pl:File Allocation Table]]
[[pt:FAT]]
[[sv:FAT]]