File Allocation Table: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
RolloBot (discussione | contributi)
m Bot: Sostituzione automatica (-Windows ME +Windows Me)
m Correggo dei wikilink.
 
(43 versioni intermedie di 26 utenti non mostrate)
Riga 21:
|AllocazioneFile = [[Linked List]]
|BlocchiDanneggiati = Cluster tagging
|DimensioneMassimaFile = <math>2^{1632}-1</math> bytes (circa 24[[Gigabyte|GB]])
|NumeroMassimoFile = <nowiki/>
* FAT12: <math>2^{12}-19</math> bytes (poco meno di 4 [[KiB]])
Riga 40:
* FAT12, FAT16: [[Stacker]], [[DoubleSpace]], [[DriveSpace]]
* FAT32: Nessuna
|CrittografiaTrasparente = <nowiki/>
* FAT12, FAT16: solo con [[DR-DOS]]
* FAT32: Nessuna
}}
 
La '''File Allocation Table''', in [[Sigla (linguistica)|sigla]] '''FAT''', è un [[file system]] sviluppato inizialmente da [[IBM]] e [[Digital Equipment Corporation]] prima, e poi susseguentemente per il MS/DOS da [[Bill Gates]] e [[Marc McDonald]] per il [[MS-DOS]]. È il file system primario per diversi [[sistema operativo|sistemi operativi]] [[DOS]] e [[Microsoft Windows]] fino alla versione [[Windows Me]]. [[Windows NT]] e le successive versioni hanno introdotto l'[[NTFS]] e mantenuto la compatibilità con la FAT così come molti altri sistemi operativi moderni ([[Unix]], [[Linux]], [[Mac OS|Mac]], ecc.).
 
== La fineStoria ==
La FAT è relativamente semplice ed è supportata da moltissimi sistemi operativi dato che è Open Source. Queste caratteristiche la rendono adatta ad esempio per i Floppy Disk e le [[Memory Card]]. Può anche essere utilizzata per condividere dati tra due sistemi operativi diversi e molto altro.
La FAT inizialmente debutta sul sistema CP/M della Digital e IBM per i floppy disk; l'idea fu presa da come la versione stand-alone di Microsoft BASIC utilizzava i [[floppy disk]] fino al [[1976]] copiata dalla IBM. 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 poi haviene debuttatoutilizzata nell'agosto del [[1980]] con la prima versione di [[QDOS]] (derivazione del modulo DOS del CP/M) di [[Tim Paterson]], il predecessore del PC-DOS e di [[MS-DOS]] della [[Microsoft]], anzi, il solo supporto FAT fu proprio la principale differenza tra il QDOS e il [[CP/M]], di cui il QDOS era un clone.
 
Con l'annuncio della [[Microsoft]] del cessato supporto a [[MS-DOS]] nel 1994 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 drive [[Universal Serial Bus|USB]] ed essendo molto limitato il supporto del NTFS nei sistemi operativi non Microsoft, probabilmente questo file system verrà utilizzato ancora a lungo. Con la commercializzazione di Windows Vista SP1 e Windows CE 6.0, la Microsoft presenta l'[[exFAT]] detta anche [[ExFAT|FAT64]] utilizzato prevalentemente per memorie flash.
Il più grande problema del File System FAT della Microsoft è la [[Frammentazione (informatica)|frammentazione]]. Quando i file vengono eliminati, creati o spostati, le loro varie parti si disperdono sull'unità, rallentandone progressivamente la lettura e la scrittura. Una soluzione a questo inconveniente è la [[deframmentazione]], un processo che riordina i file sull'unità. Questa operazione può durare anche diverse ore e deve essere eseguita periodicamente per mantenere le prestazioni dell'unità.
 
=== Cronologia delle versioni ===
Esistono varie versioni di questo [[file system]], in base a quanti [[bit]] sono allocati per numerare i cluster del disco: FAT12, FAT16, FAT32. Esiste anche una versione del FAT16 detta VFAT, che è virtuale cioè non registrato fisicamente sull'[[hard disk]], ma gestito da un software specifico.
 
==== StoriaFAT12 ====
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 (informatica)|bit]] (lunghezza non standard, quindi manipolare il FAT era un po' più complicato) e per questo poteva gestire dischi grandi al massimo 32 MBMiB. Ma visto che i dischi dell'epoca erano grandi al massimo 160 KB 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.
La FAT inizialmente debutta sul sistema CP/M della Digital e IBM per i floppy disk. La FAT poi ha debuttato nell'agosto del [[1980]] con la prima versione di [[QDOS]] (derivazione del modulo DOS del CP/M) di [[Tim Paterson]], il predecessore del PC-DOS e di [[MS-DOS]] della [[Microsoft]], anzi, il solo supporto FAT 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]] copiata dalla IBM. 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 (informatica)|bit]] sono allocati per numerare i cluster del disco. Con 12 bit, il [[file 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.
 
=== 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 (informatica)|bit]] (lunghezza non standard, quindi manipolare il FAT era un po' più complicato) e per questo poteva gestire dischi grandi al massimo 32 MB. Ma visto che i dischi dell'epoca erano grandi al massimo 160 KB 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òmise sul mercato 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 (informatica)|partizione]], non più di un disco) non cambiò e rimase di 32 MB.
 
==== FAT16 ====
Nel [[1987]] arrivò il formato che ora viene chiamato ''FAT16'': introdotti dal 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 potevano avere fino a 64 settori, dando cluster di 32 KB con la solita dimensione di 512 [[byte]] per settore, fissando il limite "definitivo" per una partizione FAT16 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 cluster di tale grandezza portavano a sprecare molto spazio per la frammentazione interna.
 
==== VFAT ====
Per supportare i nomi dei file lunghi, venne introdotto in [[Windows 95]] il '''VFAT''' ('''V'''irtual '''FAT'''), che prende il nome dal driver della periferica. L'implementazione modificava il modo in cui il [[file system]] organizzava i contenuti di una [[directory]]. L'uso delle specifiche '''VFAT''' permette di usare sia nomi lunghi (fino a 255 caratteri [[UTF-16]]) che nomi brevi ([[formato 8.3|8+3]] caratteri) in maniera trasparente alle diverse versioni di Windows.
 
==== 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.
 
In teoria questo dovrebbe permettere {{M|268435456}} (2<sup>28</sup>) cluster, cioè una dimensione totale dell'ordine dei 2 [[terabyte]]TiB con cluster di 8 KiB, ma a causa delle limitazioni da alcune versioni dell'utility scandisk non è permesso al FAT di superare i {{M|4 177 920}} (< 2<sup>22</sup>) cluster, riducendo la dimensione massima a 124,55 [[gigabyte]]. Le utility di formattazione e partizionamento di [[Windows 2000]] e [[Windows XP|XP]] hanno un limite di 32 GB per le [[partizione (informatica)|partizioni]] FAT32,<ref>[http://support.microsoft.com/kb/184006/ Limiti del file system FAT32 in Windows 2000]</ref><ref>[http://support.microsoft.com/kb/314463/ Limiti del file system FAT32 in Windows XP]</ref> ''ma è un limite arbitrario'': avviando un computer con un floppy disc di boot basato su sistema operativo FAT32 (es.: windowsWindows 98) è infatti possibile partizionare in FAT32 oltre i 32 gigabyte, inoltre [[utility]] di terze parti<ref>[{{Cita web |url=http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm |titolo=Ridgecrop Consultants Ltd, FAT 32 Formatter] |accesso=5 febbraio 2008 |dataarchivio=21 luglio 2009 |urlarchivio=https://web.archive.org/web/20090721075507/http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm |urlmorto=sì }}</ref> possono tranquillamente creare e gestire partizioni FAT32 fino a 1 TB; esistono in commercio hard disk esterni di 1 TB formattati in FAT32. ''Con il FAT32 la dimensione del singolo file non può essere superiore ai 4 GB''. Questo perché esiste una voce a 32 bit che indica la grandezza del file in byte.
 
L'ultima versione di [[Microsoft Windows]] che usa questo [[file system]] è [[Windows Me]] (Millennium Edition). Le versioni successive lo supportano in aggiunta al [[file system]] [[NTFS]], più che altro per la formattazione di pendrive, schede di memoria e altri dispositivi mobili.
 
==== FAT12ExFAT ====
{{Vedi anche|ExFAT}}
[[ExFAT]] è un [[file system]] introdotto da [[Microsoft]] nel 2006 con [[Windows Embedded CE 6.0]], pensato appositamente per [[memoria flash|memorie flash]] e, in generale, per dispositivi di archiviazione dalle dimensioni fino a 16 [[exabyte]]s. Subito dopo, nel 2008, il supporto di Microsoft alla exFAT è stato incluso nel [[Windows Vista#Service Pack 1|Service Pack 1]] di [[Windows Vista]] e in [[Windows XP]] SP2 ed SP3, grazie a uno specifico aggiornamento (KB955704-x86-ENU).
 
== Descrizione ==
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 (informatica)|bit]] sono allocati per numerare i cluster del disco. Con 12 bit, il [[file 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.
 
''La FAT è relativamente semplice ed è supportata da moltissimi sistemi operativi dato che è Open Source''. Queste caratteristiche la rendono adatta ad esempio per i Floppy Disk e le [[Memory Card]]. Può anche essere utilizzata per condividere dati tra due sistemi operativi diversi e molto altro. Il più grande problema del File System FAT della Microsoft è la [[Frammentazione (informatica)|frammentazione]]. Quando i file vengono eliminati, creati o spostati, le loro varie parti si disperdono sull'unità, rallentandone progressivamente la lettura e la scrittura. Una soluzione a questo inconveniente è la [[deframmentazione]], un processo che riordina i file sull'unità. Questa operazione può durare anche diverse ore e deve essere eseguita periodicamente per mantenere le prestazioni dell'unità.
 
=== Supporto nei sistemi operativi ===
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).
 
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 [[GNU/Linux]] venne creato un file system chiamato [[UMSDOS]], un FAT con gli attributi [[Unix]] (permessi, proprietario ecc.), che altrimenti non sono supportati in FAT; il suo sviluppo si fermò con l'arrivo del VFAT, ma è tuttora supportato. Il [[sistema operativo]] [[macOS]] può utilizzare il FAT per i volumi non avviabili oppure per il volume di Bootcamp nei MacIntel.
 
== Struttura ==
Line 88 ⟶ 97:
!rowspan="2" valign="top"|Regione dati
|- align="center" valign="middle"
|Settore di avvio||Informazioni FS<br /><s>(''solo FAT32'')</s>||Riservati<br />(''opzionale'')||FAT #1||FAT #2
|- align="center" valign="middle"
|'''Dimensione in settori'''||colspan="3"|variabileVariabile|| colspan="2" |(# FAT)*(settori per FAT)||32 * (# voci root) / bytes per settore||(# cluster) * (settori per cluster)
|}
 
Line 101 ⟶ 110:
 
=== Settore di avvio ===
È importante notare che il primo settore su un dispositivo non necessariamente è il settore di avvio. Per i dispositivi partizionati (per es. gli hard disk), il primo settore è detto [[Master Boot Record]] (abbreviato: ''MBR''); nei dispositivi non partizionati (come i floppy disk) il primo settore è il [[Volume Boot Record]] (abbreviato: ''VBR'').<br />Tutte le versioni FAT hanno in comune i primi 36 bytes:
{| class="wikitable"
|-
Line 126 ⟶ 135:
|0x16||2||Settori per FAT (per FAT12/16)
|-
|0x18||2||Settori per traccia.
|-
|0x1A||2||Numero di testine.
|-
|0x1C||4||Settori nascosti.
|-
|0x20||4||Totale settori. Se minore di 65.535 vale il contenuto all'offset 0x13.
|}
 
Line 138 ⟶ 147:
Introdotto con la FAT32 per accelerare i tempi di accesso di alcune operazioni (i.e. la quantità di spazio libero), occupa generalmente il settore 1, nel record di avvio 0x30. Ha dimensione pari a 512 byte.
 
=== FileTabella Allocationdei Tablefiles ===
Una partizione è divisa in ''cluster'' contigui dalle dimensioni variabili tra 2 e 32 KB. Ogni file è strutturato sul disco come una [[lista concatenata]] di cluster non necessariamente contigui: questa è la ragione principale per cui si parla di [[Frammentazione (informatica)#Frammentazione nella memorizzazione dei dati|frammentazione]] del disco nei filesystem FAT.
 
Ogni record della FAT è composto da 5 campi:
Line 168 ⟶ 177:
Da notare che nella FAT32 sono disponibili solo 28 dei 32 bit disponibili; il bit più significativo è riservato. La regione dati parte dal cluster #2; le altre voci sono riservate alla FAT ed a utilizzo interno.
 
==== Tabella delle directory ====
È un tipo speciale di file che rappresenta una directory; ogni file o cartella memorizzata all'interno è rappresentato da una voce nella tabella secondo il seguente schema:
{| class="wikitable"
Line 221 ⟶ 230:
|}
Nel caso in cui si tratta di un file di tipo etichetta di volume o directory padre (..) i 6 byte all'offset 0x1A sono impostati a zero.
 
== 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 [[GNU/Linux]] venne creato un file system chiamato [[UMSDOS]], un FAT con gli attributi [[Unix]] (permessi, proprietario ecc.), che altrimenti non sono supportati in FAT; il suo sviluppo si fermò con l'arrivo del VFAT, ma è tuttora supportato. Il [[sistema operativo]] [[macOS]] può utilizzare il FAT per i volumi non avviabili oppure per il volume di Bootcamp nei MacIntel.
 
== 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 drive [[Universal Serial Bus|USB]] ed essendo molto limitato il supporto del NTFS nei sistemi operativi non Microsoft, probabilmente questo file system verrà utilizzato ancora a lungo. Con la commercializzazione di Windows Vista SP1 e Windows CE 6.0, la Microsoft presenta l'[[exFAT]] detta anche [[ExFAT|FAT64]] utilizzato prevalentemente per memorie flash.
 
== Note ==
<references/>
 
==Voci correlate==
* [[MS-DOS]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx|Microsoft Extensible Firmware Initiative FAT 32 File System Specification, FAT: General Overview of On-Disk Format}}
* {{FOLDOC}}
* {{cita web|http://www.xs4all.nl/~hjohn/SFS/spaceeff.htm|FAT overhead}}
* {{cita web|httphttps://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx|Microsoft Extensible Firmware Initiative FAT 32 File System Specification, FAT: General Overview of On-Disk Format}}
* {{cita web|http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm|Ridgecrop FAT32 formatter}}
* {{cita web|httphttps://www.ridgecropxs4all.demon.co.uknl/index.htm?guiformat~hjohn/SFS/spaceeff.htm|Ridgecrop Windows Gui Version of FAT32FAT formatteroverhead}}
* {{cita web | 1 = http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm | 2 = Ridgecrop FAT32 formatter | accesso = 5 febbraio 2008 | dataarchivio = 21 luglio 2009 | urlarchivio = https://web.archive.org/web/20090721075507/http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm | urlmorto = sì }}
* {{cita web | 1 = http://www.ridgecrop.demon.co.uk/index.htm?guiformat.htm | 2 = Ridgecrop Windows Gui Version of FAT32 formatter | accesso = 10 agosto 2010 | dataarchivio = 11 giugno 2015 | urlarchivio = https://web.archive.org/web/20150611095322/http://www.ridgecrop.demon.co.uk/index.htm?guiformat.htm | urlmorto = sì }}
 
{{Componenti di Windows}}
{{Norme IEC}}
{{portale|informatica|microsoft}}
 
[[Categoria:File system]]
[[Categoria:Standard ISO/IEC|9293]]