File Allocation Table
Transcript
File Allocation Table
File Allocation Table Da Wikipedia, l'enciclopedia libera 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, aveva molte limitazioni: 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. 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ò. Nel 1984 la IBM rilasciò i PC AT, con un hard disk di 20 MB. In parallelo Microsoft introdusse l'MSDOS 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 dischetti 5.25" ad alta densità da 1.2 MB, con 15 settori per traccia e quindi ancora più spazio per il FAT. FAT16 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 Per supportare i nomi dei file lunghi, venne introdotto in Windows 95 il VFAT (Virtual 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. 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 268,435,438 (228) 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 (224) cluster, spostando la dimensione massima a 124.55 gigabyte. Le utilities di formattazione e partizionamento di Windows 2000 e XP hanno un limite di 32 GB per le partizioni FAT32, ma è un limite arbitrario: altre utility di terze parti possono tranquillamente creare e gestire partizioni FAT32 fino a 124.55 GB. 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. I valori delle FAT VALORI POSSIBILI FAT12 0x000 FAT16 0x0000 FAT32 0x00000000 Significato associato Cluster non utilizzato 0xFF0-0xFF6 0xFFF0-0xFFF6 0xFFFFFFF0-0xFFFFFFF6 Cluster riservato 0xFF7 Cluster danneggiato 0xFFF7 0xFFFFFFF7 0xFF8-0xFFF 0xFFF8-0xFFFF 0xFFFFFFF8-0xFFFFFFFF Ultimo cluster del file (altri valori) Cluster successivo del file (altri valori) (altri valori) 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: Voce del file ALPHA.TXT nella file directory Nome del file Estensione Cluster iniziale ALPHA TXT 0003 Il file ALPHA.TXT è indirizzato a partire dal cluster 3 (il valore è in esadecimale). 0000 2 Allocazione dello spazio in base alla FAT 0006 0000 0000 0008 0000 FFFF 3 4 5 6 7 8 0000 9 Notiamo che 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. 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 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. Ricavato da "http://it.wikipedia.org/wiki/File_Allocation_Table" DrumiX Web