FILE SYSTEM
Il file system fornisce il meccanismo per
la memorizzazione e l’accesso in linea di dati e programmi appartenenti
al sistema operativo. Consiste in due parti distinte: un insieme di
file e una struttura di directory, che organizza i file nel sistema.
I trasferimenti di Input/Output sul disco sono eseguiti in unità
di BLOCCHI, per migliorare l’efficienza. Ogni blocco è costituito
da uno o più settori, in Windows si chiamano cluster.
Un file system come operazione di base deve inviare dei generici comandi
al driver di dispositivo per leggere e scrivere blocchi fisici su un
disco, per esempio disco 2, cilindro 45, settore 12. Gli utenti non
sono in grado di utilizzare questi comandi, ma utilizzano nomi per i
file e cartelle per indicare la posizione sul disco. Il file system
si occupa di “tradurre”, mappare, i comandi che arrivano dall’utente
(o meglio dal sistema operativo) in posizioni fisiche, necessarie al
controller. In questo modo l’utente non ha bisogno di sapere come è
strutturato fisicamente il disco e non deve utilizzare comandi complicati
per spostare le testine su una precisa traccia del disco.
Il file system si occupa anche della sicurezza e della protezione. Per
esempio, in alcuni sistemi operativi, è possibile indicare chi
è il proprietario del file e quali gruppi di persone possono
leggere o modificare il file.
Usando termini meno tecnici, si può dire che il file system è
quella parte del sistema operativo che si occupa della gestione dei
file. Così come ci sono diversi sistemi operativi, esistono anche
diversi file system; tutti, però, integrano strutture simili
per l’immagazzinamento e la gestione delle informazioni. Queste includono
tipicamente il “boot record” per l’avvio del sistema operativo, i file
e le directory.
Un file system svolge le seguenti funzioni principali:
- Distingue lo spazio libero da quello già utilizzato;
- Mantiene la struttura delle directory e i nomi dei file;
- Tiene traccia dei settori in cui le varie porzioni di ogni file
sono fisicamente allocate;
- Gestisce le informazioni su memoria di massa dandone una visibilità
e una strutturazione logica anziché fisica;
- Identifica i file in modo univoco;
- Fornisce i metodi di accesso per leggere, scrivere e indirizzare
i blocchi di informazioni contenuti nei file;
- Fornisce operazioni di gestione dei file: creazione, predisposizione,
cancellazione, identificazione;
- Realizza meccanismi di controllo sull’accesso per garantire privatezza
e coerenza;
- Nasconde le caratteristiche fisiche dell’unità di memorizzazione;
- Gestisce gli errori e il ripristino da situazioni di malfunzionamento.
Di seguito analizziamo le caratteristiche principali
dei più diffusi file system.
FAT
La FAT è il file system tipico di Dos e Windows 95, ma può
essere usato anche con Windows NT e OS/2. È caratterizzato dall’uso
di una tabella di allocazione dei file (file allocation table), il vero
cuore del file system; questa tiene traccia della posizione fisica su
disco dei file e dei cluster da essi occupati. I cluster sono costituiti
da gruppi di settori, e costituiscono la più piccola unità
di memorizzazione delle informazioni (un file deve occupare almeno un
cluster, e un cluster non può contenere più di un file).
I file possono essere raggruppati in directory e sottodirectory; quella
di primo livello si chiama radice (root directory) e deve essere posizionata
in una specifica locazione sul volume. Nei sistemi operativi che utilizzano
la FAT, la directory radice è rappresentata dal carattere “\”
(back slash, barra inversa), ed è quella visualizzata inizialmente
quando viene caricato il sistema operativo.
FAT 32
È il file system integrato nell’ultima versione di Windows 95
(4.00.950B o superiore). Né Dos, né Windows NT, né
la prima versione di Windows 95 possono riconoscere i volumi con questo
file system. La FAT 32 rappresenta un sensibile miglioramento del tradizionale
file system del Dos, in quanto è basato su una tabella di allocazione
dei file di 32 bit, invece che di 16.
La prima conseguenza è che supporta volumi di dimensioni molto
maggiori (fino a 2 terabyte, cioè 2.000 Gigabyte). Inoltre usa
cluster più piccoli (riesce infatti a dividere in cluster da
4 Kbyte volumi ampi fino a 8 Gigabyte) e presenta una directory radice
che può avere qualunque dimensione e può essere allocata
ovunque. Tutto ciò porta ad una notevole ottimizzazione della
gestione dello spazio e dei file.
NTFS
Il sistema NTFS (New Tecnology File System) è caratteristico
ed esclusivo di Windows NT. Questo file system è controindicato
per l’impiego su dischi di dimensioni inferiori a 400 Mbyte, in quanto
usa una gran quantità di spazio per le strutture interne della
gestione dei dati. Il cuore del sistema è costituito dalla master
file table (MFT); il sistema conserva copie multiple di porzioni critiche
di questa speciale struttura dati, così da limitare al massimo
il rischio di perdita dei file.
Anche NTFS utilizza i cluster per registrare i file, ma la loro dimensione
non dipende da quella del volume su cui sono contenuti; infatti possono
essere usati anche cluster di soli 512 byte indipendentemente dalla
dimensione del volume in oggetto. Usando i cluster più piccoli
si riduce l’ammontare di spazio sprecato e la frammentazione dei file
(memorizzazione su cluster non contigui) a tutto vantaggio della velocità
di accesso ai dati. Per questo motivo NTFS garantisce ottime prestazioni
con i dischi fissi di dimensioni generose. Offre la funzione hot fixing
che rileva e marchia automaticamente tutti i settori danneggiati del
disco, così da evitare che questi vengano usati erroneamente.
HPFS
High Performance File System, si riferisce al file system tipico del
sistema operativo Os/2 di Ibm; è anche supportato dalle versioni
meno recenti di Windows NT. Diversamente da quanto accade con la FAT,
HPFS ordina le directory basandosi sui nomi dei file e usa una struttura
dati più efficiente. Come risultato, l’accesso ai file è
spesso più veloce rispetto al file system del Dos e di Windows.
Garantisce anche un uso più efficiente dello spazio, in quanto
i file vengono allocati in settori anziché in cluster.
EXT2
La sigla Ext2 è l’acronimo di Extended Filesystem 2, il secondo
file system standard di Linux. In Linux non esistono lettere assegnate
alle unità logiche: le partizioni sono disposte nell’albero delle
directory. Una partizione Ext2 può avere la dimensione massima
di 4 TeraByte.
Prima che un disco sia formattato può essere
diviso in partizioni, ognuna delle quali può contenere un differente
file system (formattazione logica), questo è l’argomento del
capitolo 5.
|