{"id":1971,"date":"2000-01-01T00:00:00","date_gmt":"1999-12-31T23:00:00","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"1971","status":"publish","type":"post","link":"https:\/\/www.vialattea.net\/content\/1971\/","title":{"rendered":"Quali sono le principali caratteristiche e differenze tra i file system ext2 e FAT?"},"content":{"rendered":"<p>Vedi anche una risposta sulla <a href=\"http:\/\/www.vialattea.net\/esperti\/php\/risposta.php?num=8454\">deframmentazione<br \/>\n        dell&#8217;hard disk<\/a>.<\/p>\n<p>Nelle pagine seguenti vengono descritti i file system (ovvero le strutture<br \/>\n        di memorizzazione dei dati sui dischi magnetici) <tt>ext2<\/tt> e <tt>FAT<\/tt>.\n      <\/p>\n<h2>Il file system <tt>ext2<\/tt><\/h2>\n<p>Il file system <tt>ext2<\/tt> \u00e8 stato introdotto con il sistema<br \/>\n        operativo Linux ed \u00e8 in pratica una versione modificata dei filesystem<br \/>\n        utilizzati su gran parte dei sistemi Unix preesistenti. <\/p>\n<p> Il filesystem viene creato al momento della formattazione del disco,<br \/>\n        o meglio, della partizione, e la suddivide in gruppi (zone). Una tabella<br \/>\n        principale contiene le informazioni globali relative alla partizione:\n      <\/p>\n<ul>\n<li> <b>superblock<\/b>: contiene informazioni complessive sulla partizione<br \/>\n          quali il numero di blocchi complessivo, il numero di inode (vedi sotto),<br \/>\n          il numero di blocchi liberi, un&#8217;indicazione di quando \u00e8 avvenuta<br \/>\n          l&#8217;ultima verifica della struttura, etc. L&#8217;informazione contenuta nel<br \/>\n          superblock \u00e8 cos\u00ed importante che viene duplicata in varie<br \/>\n          zone del disco in modo che possa pi\u00f9 facilmente essere recuperata<br \/>\n          in caso di errore.<\/p>\n<\/li>\n<\/ul>\n<p>All&#8217;interno di ciascun gruppo vengono create le seguenti cinque tabelle:\n      <\/p>\n<ul>\n<li> <b>block bitmap<\/b>: tabella in cui ad ogni bit \u00e8 associato<br \/>\n          un blocco di dati. Lo stato del bit indica se il relativo blocco \u00e8<br \/>\n          libero o allocato ad un file.<\/p>\n<\/li>\n<li> <b>inode bitmap<\/b>: tabella in cui ciascun bit \u00e8 associato<br \/>\n          ad un &#8220;inode&#8221; (vedi sotto). Lo stato del bit indica se il corrispondente<br \/>\n          inode \u00e8 libero o in uso.<\/p>\n<\/li>\n<li> <b>inode table<\/b>: tabella degli &#8220;inode&#8221;. Ogni elemento di questa<br \/>\n          tabella corrisponde ad un singolo file. L&#8217;inode contiene tutte le informazioni<br \/>\n          relative ad un file e principalmente quelle necessarie a reperire i<br \/>\n          dati effettivamente contenuti nel file.<\/p>\n<\/li>\n<li> <b>data blocks<\/b>: la porzione di disco dove sono effettivamente<br \/>\n          memorizzati i dati. Ogni blocco di dati (blocco logico) ha una dimensione<br \/>\n          multipla della dimensione del blocco fisico secondo una potenza di due.<br \/>\n          La dimensione del blocco logico viene stabilita al momento della formattazione.<br \/>\n          Allo scopo di ottimizzare l&#8217;allocazione dello spazio disco il filesystem<br \/>\n          ext2 \u00e8 in grado di gestire &#8220;frammenti&#8221; di blocco nella parte<br \/>\n          finale del file, ovvero ogni file \u00e8 costituito da 0 o pi\u00f9<br \/>\n          blocchi logici e da un frammento finale. <\/p>\n<\/li>\n<li> <b>directory<\/b>: tabella che associa nomi arbitrari agli inode.\n      <\/li>\n<\/ul>\n<p>L&#8217;inode costituisce il tramite per l&#8217;accesso ai dati di ciascun file<br \/>\n        memorizzati nei &#8220;data blocks&#8221;; la sua struttura \u00e8 tale da conciliare<br \/>\n        due esigenze opposte: garantire un accesso veloce ai dati e consentire<br \/>\n        la gestione di files di dimensioni estremamante variabili. A tale scopo<br \/>\n        ogni inode contiene una tabella di 15 puntatori, i primi 12 sono i puntatori<br \/>\n        &#8220;diretti&#8221;, ciascuno di essi contiene l&#8217;indirizzo di un blocco di dati<br \/>\n        appartenente al file. Ci\u00f2 non significa che i files possono essere<br \/>\n        al massimo costituiti da 12 blocchi, infatti il 13<sup>o<\/sup> puntatore,<br \/>\n        \u00e8 il puntatore indiretto di primo livello, ovvero esso punta ad<br \/>\n        un blocco di puntatori, ciascuno dei quali a sua volta contiene l&#8217;indirizzo<br \/>\n        di un blocco di dati. Il 14<sup>o<\/sup> puntatore \u00e8 il puntatore<br \/>\n        indiretto di secondo livello, ovvero punta ad un blocco che contiene puntatori<br \/>\n        ad altri blocchi che a loro volta contengono gli indirizzi dei blocchi<br \/>\n        di dati. Il 15<sup>o<\/sup> puntatore, infine, realizza un ulteriore livello<br \/>\n        ovvero punta ad un blocco contenente una tabella di blocchi che contengono<br \/>\n        puntatori ad una lista di blocchi di puntatori ai dati. <\/p>\n<\/p>\n<p><center><br \/>\n        <img decoding=\"async\" src=\"..\/..\/esperti\/inform\/filesys\/ext2.gif\" alt=\"\"\/> <\/p>\n<h3>Figura 1: struttura dell&#8217;inode<\/h3>\n<p>      <\/center><\/p>\n<p>In tal modo se un file \u00e8 composto da non pi\u00f9 di 13 blocchi,<br \/>\n        l&#8217;accesso ai dati richiede una sola operazione, files di maggiori dimensioni<br \/>\n        richiedono due operazioni, etc. <\/p>\n<p> Oltre alla tabella descritta l&#8217;inode contiene altre informazioni relative<br \/>\n        alla gestione del file, quali ad esempio: la data di creazione, la data<br \/>\n        di ultimo accesso, l&#8217;identificatore di propriet\u00e0, etc.\n      <\/p>\n<p> Allo scopo di consentire l&#8217;identificazione dei files mediante nomi scelti<br \/>\n        arbitrariamente, vengono create le <i>directory<\/i>, ovvero tabelle che<br \/>\n        associano una stringa alfanumerica (ovvero un &#8220;nome&#8221;) ad ogni inode. Le<br \/>\n        directory sono memorizzate in normali files allocati con le stesse tecniche<br \/>\n        dei files di dati. In ogni directory vengono creati automaticamente due<br \/>\n        nomi di files speciali: &#8216;.&#8217;, associato all&#8217;inode del file che contiene<br \/>\n        la directory stessa; &#8216;..&#8217;, associato all&#8217;inode della directory che contiene<br \/>\n        il nome della directory stessa (padre).\n      <\/p>\n<p> Una conseguenza della struttura delle directory descritta e che costituisce<br \/>\n        una caratteristica peculiare dei file system dei sistemi Unix \u00e8<br \/>\n        che un inode pu\u00f2 essere associato a pi\u00f9 di un nome in directory<br \/>\n        diverse, ovvero ciascun file pu\u00f2 essere accessibile con pi\u00f9<br \/>\n        nomi e path diversi. Per questo motivo la cancellazione di un file non<br \/>\n        necessariamente corrisponde alla deallocazione del relativo inoide e dei<br \/>\n        blocchi di dati, in quanto quest&#8217;ultima avviene solo quando viene cancellato<br \/>\n        l&#8217;ultimo riferimento al file.\n      <\/p>\n<h2>Il filesystem <tt>FAT<\/tt><\/h2>\n<p>La struttura del filesystem classico dei sistemi DOS, che permane anche<br \/>\n        nei sistemi Windows 95\/98\/NT (ma windows NT supporta anche un diverso<br \/>\n        tipo di filesystem: <tt>NTFS<\/tt>) viene chiamata <tt>FAT<\/tt> dal nome<br \/>\n        della sua componente principale. La <tt>FAT32<\/tt> costituisce una variante<br \/>\n        a 32 bit introdotta con la release 2 di Windows 95 con lo scopo principale<br \/>\n        di consentire la gestione di partizioni di dimensioni maggiori di 2 Gbytes.\n      <\/p>\n<p> Il filesystem \u00e8 costituito da quattro componenti:\n      <\/p>\n<ul>\n<li><b><tt>FAT<\/tt><\/b>: File Allocation Table o Tabella di allocazione<br \/>\n          dei blocchi (vedi sotto).<\/p>\n<\/li>\n<li><b>Root directory<\/b>: La directory di livello gerarchico pi\u00f9<br \/>\n          elevato (radice).<\/p>\n<\/li>\n<li><b>Clusters<\/b>: i blocchi contenenti i dati dei files.\n<\/p>\n<\/li>\n<li><b>Sottodirectory<\/b>: Le directory di livello inferiore alla radice.\n      <\/li>\n<\/ul>\n<p>La <tt>FAT<\/tt> \u00e8 la struttura principale che consente l&#8217;accesso<br \/>\n        ai dati relativi a ciascun file. \u00c8 costituita da una tabella utilizzata<br \/>\n        come <i>lista<\/i> (linked list): la posizione di ogni elemento nella tabella<br \/>\n        identifica il cluster di dati corrispondente, mentre il valore contenuto<br \/>\n        nell&#8217;elemento \u00e8 l&#8217;indice dell&#8217;elemento successivo facente parte<br \/>\n        dello stesso file. Due valori particolari indicano il cluster libero e<br \/>\n        l&#8217;ultimo cluster di ogni file. <\/p>\n<\/p>\n<p><center><br \/>\n        <img decoding=\"async\" src=\"..\/..\/esperti\/inform\/filesys\/fat.gif\" alt=\"\"\/> <\/p>\n<h3>Figura 2: File Allocation Table<\/h3>\n<p>      <\/center><\/p>\n<p> Nell&#8217;esempio di Figura 2, il file <b>File A<\/b> \u00e8 composto, nell&#8217;ordine,<br \/>\n        dai cluster 3, 7, 4, 2 mentre il file <b>File B<\/b> dai cluster 5, 9,<br \/>\n        10. Le <b>directory<\/b> nel filesystem FAT sono memorizzate in files (tranne<br \/>\n        la radice che viene memorizzata nella struttura del filesystem insieme<br \/>\n        alla FAT). Ogni directory \u00e8 in sostanza una tabella contenente<br \/>\n        le seguenti informazioni:\n      <\/p>\n<ul>\n<ul>\n<li>Nome del file (11 caratteri)\n          <\/li>\n<li>Attributi\n          <\/li>\n<li>Data e ora\n          <\/li>\n<li>Puntatore al primo elemento nella FAT\n          <\/li>\n<li>Dimensione del file\n        <\/li>\n<\/ul>\n<\/ul>\n<p>Nei sistemi Windows 95\/98\/NT vengono inoltre utilizzate ulteriori elementi<br \/>\n        della tabella per memorizzare le versioni estese dei nomi dei files (nomi<br \/>\n        lunghi). <\/p>\n<\/p>\n<h3>Limitazioni del filesystem FAT<\/h3>\n<p>Poich\u00e9 gli elementi della FAT sono di lunghezza fissa, pari a<br \/>\n        16 bits, non \u00e8 possibile indirizzare pi\u00f9 di 65535 clusters<br \/>\n        e poich\u00e9 un cluster non pu\u00f2 essere maggiore di 32768 bytes,<br \/>\n        il filesystem ha un limite massimo superiore di 2 Gbytes per la dimensione<br \/>\n        della partizione. La dimensione del cluster (che deve essere un multiplo<br \/>\n        intero della dimensione del blocco fisico con moltiplicatore pari ad una<br \/>\n        potenza di due) viene scelta pari alla minima dimensione che consenta<br \/>\n        un numero di cluster non superiore a 65535 ed \u00e8 fissata al momento<br \/>\n        della formattazione. <\/p>\n<p> Quindi, poich\u00e9 il filesystem non \u00e8 in grado di gestire<br \/>\n        la frammentazione di clusters, come invece abvviene nel filesystem <tt>ext2<\/tt>,<br \/>\n        all&#8217;aumentare della dimensione delle partizioni corrisponde una dimensione<br \/>\n        del cluster maggiore e di conseguenza una sempre minore efficienza di<br \/>\n        uso dello spazio, in quanto l&#8217;ultimo cluster di ogni file \u00e8 in<br \/>\n        genere solo parzialmente utilizzato (in media resta inutilizzato uno spazio<br \/>\n        pari alla met\u00e0 della dimensione del cluster per ogni file).\n      <\/p>\n<p> Le due limitazioni citate hanno portato all&#8217;introduzione, a partire<br \/>\n        dalla seconda release del sistema operativo Windows 95 (e in quelli successivi),<br \/>\n        della versione a 32 bit della FAT (<tt>FAT32<\/tt>) che sostanzialmente<br \/>\n        mantiene la stessa struttura, ma utilizza elementi a 32 bit, anzich\u00e9<br \/>\n        a 16, consentendo di definire cluster non superiori a 4 Kbytes anche per<br \/>\n        dischi di grandi dimensioni.\n      <\/p>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[&#8230;]<\/p>\n","protected":false},"author":198,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[],"class_list":["post-1971","post","type-post","status-publish","format-standard","hentry","category-hardware"],"_links":{"self":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/1971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/users\/198"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/comments?post=1971"}],"version-history":[{"count":0,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/1971\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/media?parent=1971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/categories?post=1971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/tags?post=1971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}