Tutti i computer moderni sono dotati di un Hard Disk, un componente essenziale che ha la funzione di conservare i dati in modo permanente. Ma come riesce il computer ad accedere ai milioni di bit di dati contenuti all’interno del disco rigido? Per farlo c’è bisogno del file system, ovvero di un meccanismo secondo il quale tutti i milioni di file presenti sul disco rigido vengono posizionati ed organizzati al suo interno. Esistono vari tipi di file system che vengono creati attraverso la formattazione logica del disco rigido e che si differenziano tra loro sia per la caratteristiche tecniche, sia per la tipologia di sistema operativo che si utilizza sul nostro computer.

Oggi andremo ad analizzare i vari tipi di file system che vengono utilizzati per la gestione dei seguenti sistemi: DOS, Windows, GNU, Linux e Mac OS. Tutti i file system sono basati sulla gestione dei cluster, le unità di allocazione dei dischi rigidi, che sono la più piccola unità che il sistema operativo possa di gestire.

FAT

L’acronimo FAT sta per File Allocation Table ed è stato il primo file system che venne sviluppato da Bill Gates in collaborazione con Marc McDonald. Inizialmente la FAT veniva utilizzata solo dal sistema Basic ”stand-alone” di Microsoft, ma presto venne scelta anche daTim Paterson per lo sviluppo del sistema DOS. Paterson capì subito le potenzialità di questo sistema di allocazione dei file che, grazie alla sua gestione separata del contenuto della directory (divisa per nome, dimensione e data di creazione del file), da come i dati stessi venivano salvati sul disco rigido. Successivamente la FAT venne scelta anche per sistemi operativi più complessi il principale dei quali è stato Microsoft Windows.

Le prime versioni della FAT furono la FAT12 e la FAT16 che a livello tecnico si caratterizzavano per la possibilità di sfruttare tabelle a 12 e 16 bit. Nei primi anni lo sviluppo del file system era dedicato alla possibilità di utilizzare meno spazio possibile per la frammentazione interna e quindi per l’archiviazione dei dati. Un ulteriore passo in avanti venne fatto con la VFAT che venne introdotta con il sistema operativo Windows 95 e supportare così anche i nomi dei file lunghi (fino a 255 caratteri).

Oggi la FAT è supportata ancora da moltissimi sistemi operativi per via della sua semplicità, caratteristica che la rendono adatta ad sia ai desueti Floppy Disk che alle Memory Card. Inoltre la FAT viene utilizzata ancora oggi per la condivisione dei dati tra due o più sistemi operativi diversi installati sullo stesso Hard Disk.FAT32

Il principale sviluppo tecnico del file system FAT avvenne con l’introduzione del FAT32 il cui nome deriva dalla capacità degli indirizzi per i cluster che diventa di 32 bit (anche se poi in realtà vengono utilizzati solamente 28 bit). Il suo sviluppo fu fortemente voluto da Microsoft che decise in modo autonomo di creare il nuovo FAT. Con il nuovo sistema gli ingegneri di Microsoft riuscirono quindi a ridurre in modo significativo la dimensione dei cluster e di conseguenza limitarono notevolmente l’utilizzo dello spazio fisico sul disco fisso.

La FAT32 venne introdotta per la prima volta nella versione OSR2 di Windows 95 e successivamente venne utilizzata prima su Windows 98 e poi su Windows Me (Millennium Edition) che è stata l’ultima versione di Windows ad utilizzare questo file system.

EXFAT

Il file system EXFAT, conosciuto anche con il nome di FAT64, venne introdotto da Microsoft assieme con Windows Embedded CE 6.0. L’acronimo sta per Extended File Allocation Table e vuole indicare la Tabella di Allocazione File Estesa. L’intenzione di Microsoft era quella di creare un sistema che potesse favorire la gestione dell’archiviazione dei dati nei dispositivi di dimensioni contenute come ad esempio le memorie flash. Con EXFAT la dimensione dei cluster arriva a raggiungere un valore teorico di 2^255 byte, consente di memorizzare oltre 1000 file in ogni cartella e soprattutto offre delle ottime prestazioni in particolar modo nelle operazioni di allocazione di spazio libero sul disco.

Questo file system è stato incluso sia in Windows XP che in Windows Vista ed è supportato anche dal sistema operativo Apple denominato Mac OS X.

NTFS

Il file system NTFS nasce negli anni novanta sempre per mano di Microsoft. L’acronimo sta ad indicare New Technology File System e a livello tecnico si contraddistingue dal file system FAT per l’utilizzo di un nuovo sistema basato su una struttura chiamata Master File Table (detta anche MFT, tabella di file master). La MFT del sistema NTFS da la possibilità di inserire delle informazioni dettagliate associate ai file dati che supportano ancora l’utilizzo di nomi lunghi. La grande differenza rispetto al FAT32 è la sensibilità alle lettere maiuscole: in poche parole con la sua introduzione si possono differenziare le lettere maiuscole e minuscole nei nomi dei file. Da un punto di vista tecnico, con il file system NTFS sono migliorate anche le prestazioni relative all’accesso ai file che risulta essere molto più rapida rispetto ad una partizione di tipo FAT dato che utilizza un albero binario performante per localizzare i file.

Con il sistema NTFS sono stati fatti dei grandi passi in avanti anche dal punto di vista dell’affidabilità. Trattandosi infatti di un sistema di tipo transazionale, NTFS garantiva la salvaguardia dei dati anche in caso di blackout visto che nel caso in cui un’operazione venga accidentalmente interrotta a metà viene persa solo quell’operazione senza compromettere tutto ilfile system.

NTFS è stato creato per essere utilizzato sui sistemi operativi con kernel NT. Sono state distribuite ben 5 versioni di questo file system: le prime 3 vennero utilizzate su Windows NT, mentre le ultime 2 erano presenti rispettivamente su Windows 2000 (la versione NTFS V5.0) e sulla prima versione di Windows XP (la versione NTFS V5.1).

HFS

Il sistema Hierarchal File System, conosciuto più comunemente come HFS, è un file systemintrodotto da Apple Computer nel 1985 e sviluppato appositamente per i computer con sistema operativo Mac OS. HFS è il file system che in casa Apple ha preso il posto del vecchioMacintosh File System (conosciuto anche come MFS) che veniva utilizzato dai primi modelli di Mac. Con l’introduzione del sistema HFS gli ingegneri di Cupertino volevano dare facilmente accesso a tutte le informazioni che venivano utilizzate ed elaborate già in quegli anni dai computer Macintosh. HFS permetteva infatti di attribuire ai file dei nomi che potevano raggiungere la lunghezza di 31 caratteri, ma soprattutto introdusse i metadati legati ai file. Inoltre con il nuovo file system è stato possibile anche memorizzare in modo separata i dati e le risorse di uno stesso file.

Il primo sistema operativo Mac a supportare il file system di tipo HFS è stato il System 5 ed è stato utilizzato anche per tutte le versioni successive fino ad arrivare al sistema operativo Mac OS 7.6.1.

HFS+

L’evoluzione del file system HFS è stata la versione Plus, introdotta nel Gennaio del 1998 e meglio conosciuta con il nome di HFS+. Come la versione precedente si tratta di un file systemprimario dedicato ai computer Macintosh e sviluppato autonomamente da Apple che lo introdusse per la prima volta assieme alla release di Mac OS 8.1. Successivamente è stato utilizzato anche sugli iPod.

La prima modifica è relativa alla grandezza dei file che sotto la gestione di HFS+ diventano più grandi visto che gli indirizzi dei blocchi passano da 16 bit a 32. HFS Plus inoltre utilizza il sistema di codifica Unicode che permette ai file di avere una lunghezza che arriva fino a 255 caratteri UTF-16.

Lo sviluppo del file system HFS Plus è andato di pari passo a quello dei sistemi operativiMacintosh. Un importante miglioramento di HFS+ è quello che venne rilasciato con la versione Mac OS X 10.2.2 in cui vennero introdotte le prestazioni di journaling (facendolo diventare quindi un sistema di tipo transazionale) che migliorarono in modo netto la salvaguardia dei dati.

Dopo essere stato introdotto con la release di Mac OS 8.1 il file system HFS Plus è stato il sistema primario di tutte le successive versioni di Mac OS e di quelle del sistema operativo Mac OS X.

EXT3

Nei mondo dei sistemi operativi open source uno dei file system più diffusi è senza dubbio l’ext2(acronimo di Second Extended Filesystem) che è stato utilizzato per moltissimi anni dai maggiorisistemi operativi GNU/Linux. ext2 può essere considerato il padre di ext3, il file system sviluppato in gran parte da Stephen Tweedie ed introdotto nel mese di Novembre del 2001 per cercare di colmare le lacune tecniche del suo predecessore.

Con la programmazione di ext3 viene introdotto il journaling del file system, caratteristica che come nel caso degli altri file system migliora l’affidabilità del sistema evitando che malfunzionamenti hardware possano danneggiare i dati presenti sull’hard disk. Un altro miglioramento molto importante è quello relativo alla scrittura dei dati sul disco fisso che viene migliorata sia in termini di prestazioni (diventando notevolmente più veloce) che in termini di spazio (occupando meno spazio).

Una delle caratteristiche molto apprezzate è la possibilità di passare da un file system di tipo ext2ad uno di tipo ext3 senza dover effettuare ricorrere il backup ed il ripristino dei dati.

Da un punto di vista puramente tecnico non ci sono grosse differenze rispetto al sistema ext2 in quanto ext3 consente la scrittura di file che possono arrivare fino a 2 TB, mentre la massima dimensione del file system è di 32 TB.

Ext3 viene utilizzato nei principali sistemi operativi GNU/Linux, alcuni dei quali lo utilizzano ancora oggi.

EXT4

L’ultima versione dell’extended filesystem ha preso il nome di ext4 (acronimo di Fourthun File System). Si tratta di un sistema di tipo journaled sviluppato tra gli altri da due programmatori del calibro di Andrew Morton ed Alex Tomas che è incluso nel kernel Linux a partire dalla versione 2.6.19.

La modifica più sostanziale è quella relativa all’estensione della dimensione massima di un singolo file che passa a 16TiB (ext4 usa ben 48 bit per l’indirizzamento dei blocchi), mentre la dimensione massima del filesystem può arrivare addirittura ad 1EiB. Inoltre con questo nuovo sistema è stato eliminando il limite di directory presenti sul filesystem che quindi possono essere infinite.

Anche in questo caso, come per le versioni precedenti, è possibile convertire un filesystem inext3 direttamente in ext4 senza perdita di dati (quindi senza dover effettuare operazioni di backup e ripristino).

La novità più importante riguarda le prestazioni del nuovo file system. Con ext4 infatti sono state introdotte delle nuove funzionalità molto importanti che hanno reso il sistema molto più veloce del precedente. La prima di queste è la pre-allocazione dei file, ovvero l’allocazione dello spazio dedicato ad un file che avviene ancora prima della sua creazione. A questa si aggiungono anche l’allocazione multiblocco che garantisce l’allocazione contemporanea di più gruppi di blocchi, ed infine l’allocazione sfalsata nella quale, per ridurre la frammentazione, i singoli blocchi vengono allocati nel momento della scrittura sul disco.

Come per ext3, anche ext4 supporta il journaling in tutte le modalità, ma in questa versione gli utenti possono scegliere anche di disattivare la funzione di journaling attivando la modalità ”No Journaling”.

Share Button