Filesystem
FAT 12/16/32, NTFS, ISO 9660
Prima di iniziare a descrivere i vari metodi
di gestione dei file all'interno dei moderni sistemi di calcolo, e' opportuno
dare delle definizioni che risulteranno spesso usate nel corso dei presenti
appunti come della esperienza futura del tecnico informatico.
Definizioni
SISTEMA
OPERATIVO
Software che implementa una serie di servizi
che vengono sfruttati dalle applicazioni utente pe 818b11i r utilizzare le risorse del
sistema.
FILESYSTEM
Insieme di regole logiche per l'organizzazione
dei file su disco.
PARTIZIONE
Unita' logica in cui e' possibile dividere un
HD. Lo strumento SW classico per gestire le partizioni e' FDISK, ma ce ne sono di molto piu'
sofisticati ed evoluti, ad esempio PARTITION MAGIC.
MBR
Il Master Boot Record e' quella porzione di HD
o floppy che descrive come e dove i vari sistemi operativi a disposizione
dell'utente sono allocati sul disco stesso.
A volte il MBR e' chiamato anche
"partition sector" or the "master partition table" perche'
comprende una tabella che mantiene memoria dell'allocazione delle partizioni in
cui e' suddivisa l'unita' fisica.
Oltre alla tabella che contiene la posizione
delle varie partizioni MBR contiene anche un software che serve ad avviare il
boot del sistema di ogni partizione.
FILE
Unita' logica fondamentale di memorizzazione
delle informazioni a livello utente.
All'interno dei moderni fylesystem (NTFS e
LINUX), tutto e' gestito dal SO come un file.
Ad esempio possiamo notare che se su
piattaforma XP andiamo ad anlizzare le proprieta' di condivisione di un
documento e una cartella, abbiamo la possibilita' di settare gli stessi
parametri di condivizione, protezione ecc.
CLUSTER
Unita' fisica fondamentale di memorizzazione
delle informazioni, nel senso che, salvo casi particolari, quando un dato viene
scambiato con il disco, esso viene trasferito a blocchi, ognuno dei quali e' un
cluster. .
La dimensione del cluster e' funzione della
dimensione della partizione a cui il cluster appartiene. A partizioni “grandi”
(risp. “piccole”) corrispondono cluster “grandi” (rsip. “piccoli”). Bisogna
notare che se un file avesse dimensione 1 Byte (1 B) e il cluster fosse 4 KB,
lo spazio che il file occuperebbe sul supporto fisico sarebbe 4 KB, NON 1 B !
(Non sempre e' cosi'.)
La dimesione dei cluster e' dunque vincolata
alla dimensione di appartenenza del cluster salvo forzature a livello utente.
Assumeremo che la massima dimensione del cluster sia 32KB, ma in realta' e' possibile portarla a
dimensioni diverse.
Vediamo ora in rassegna i piu' comuni
filesystem, con particolare cura a quelli di casa Microsoft.
FAT 12
Vale la pena di dire soltanto che questo
formato di sistema FAT era usato nei primi sistemi DOS per la gestione dei
floppy, compresi quelli da 5.25”
(per avere una idea della datazione di questo filesystem).
Come negli altri filesystem FAT sono permessi
nomi di file che non eccedano il formato “8.3” dove 8 caratteri sono riservati al nome
del file mentre 3 sono riservati al'estensione. Le sue sezioni sono separate da
un “.”.
FAT 16
Filesystem usato nei sistemi Microsoft fino a
Windows 95.
La dimensione massima della partizione che
puo' essere gestita e' 2 GB.
Infatti FAT16 (quando si omette il “16” si fa sempre riferimento a
questo tipo di FAT) usa 16 bit per allocare cluster all'interno del disco. Dal
momento che la dimensione massima del cluster e' 32 KB, otteniamo 216 * 215 = 231
= 2 GB indirizzabili dalla FAT
all'interno della medesima partizione.
Il numero di cluster usati nel disco deve
comunque essere una potenza di due.
Questo rende abbastanza sentito il problema
della frammentazione del disco.
Se dovessimo gestire con questo sistema un HD
da 2.4 GB saremmo costretti a definire due partizioni per il nostro HD, una
da 2 GB e l'altra per i restanti 4 MB.
La versione 16 di FAT permette una scarsa
utilizzazione nella gestione del disco. Abbiamo un miglioramento netto in FAT
32 e ancora di piu' in NTFS, il quale fra l'altro viene usato, come verra' poi
ripetuto, anche nei sistemi Mac.
FAT 32
Filesystem usato nei sistemi Microsoft da
Windows 98 in
poi.
In realta' anche la versione chiamata “2” di Windows 95 prevedeva gia'
questo tipo di upgrade al vecchio sistema FAT 16.
Chiaramente i sistemi operativi che possono
implementare questo filesystem offrono anche una compatibilita' verso il basso.
FAT 32 offre i seguenti vantaggi rispetto alla
versione 16 :
• utilizza 32 bit per la selezione dei cluster, che hanno sempre
dimensione massima di 32 KB. Pertanto avremo una dimensione massima del disco
teorica di 128 TB (1 TB = 1024 GB) ma nella realta', a causa dei limiti fisici
di assegnazione dei settori ai cluster del disco, possiamo gestire una
dimensione massima dichiarata da Microsoft di 2 TB
• abbiamo un utilizzo migliore dello spazio su disco, dovuto a una
dimensione dei cluster (4KB per dischi da 8GB) piu' adatta a diversi tipi di
file. Questo comporta un aumento delle prestazioni del disco che puo' essere
stimato attorno al 10-15 %
• abbiamo una gestione piu' robusta del sistema perche' FAT 32 e' in
grado di creare una copia della FAT e lavorare su essa invece di rischiare di
rovinare quella originale. La regione di boot e' espansa rispetto alla FAT 16
per permettere di memorizzare dati la cui perdita sarebbe critica per il
sistema
•maggiore flessibilita' nella allocazione su disco della root
NTFS (New Tecnology File System)
Filesystem usato nei sistemi Microsoft Windows
NT, 2000 and XP.
Essendo supportato anche la Linux e da Mac, e' l'unica
soluzione (a parte ISO 9660) per la
condivisione di partizioni fra piattaforma diverse.
I cluster hanno sempre dimensione massima di
32 KB ma in questo caso vengono usati 64 bit per la loro allocazione su HD.
Analogamente a prima possiamo ricavare la dimensione massima teorica del disco
gestibile tramite NTFS, che risulta essere oggi tecnologicamente
irraggiungibile in quanto abbondantemente superiorea quella “visibile” con FAT
32.
I SO che implentano NTFS hanno ovviamente
meccanismi per la compatibilita' verso i sitemi FAT.
Tutti i dati memorizzati su disco sono visti
da NTFS come dei file che vengono classificati in due categorie fondamentali :
metafile e datafile.
I metafile contengono informazioni a basso
livello sul supporto di memorizzazione e la sua organizzazione logica, iniziano
con il carattere “$” e al loro contenuto e' affidato il corretto funzionamento
dell'NTFS. E' pertanto fondamentale non cercare di accedere a tali file se non
in casi del tutto eccezionali.
Vale la pena a titolo di esempio, di ricordare
almeno i seguenti metafile : $MTFMirr e $Logfile.
$MTFMirr contiene una copia parziale della
MFT.
$Logfile contiene l'elenco dei file che,
risiedenti in un buffer temporaneo defono essere trasferiti su disco.
I datafile sono quelli che contengono dati
utente(ad esempio documenti di WORD, EXCEL, ACCESS, sorgenti, eseguibili, ecc).
Rispetto a
FAT abbiamo miglioramenti in termini di protezione dei file, di gestione
dei file di grandi dimensioni con attenzione a quelli di basse dimensioni,
algoritmi di compressione di dati automatizzati e altro ancora !
Prima di entrare in alcuni dettagli tecnici,
diamo alcune indicazioni sulle caratteristiche presentate da NTFS a livello
utente :
1.utilizza nomi di file standard da 256 caratteri
2.possibilita' di usare caratteri sia maiuscoli che minuscoli nel
nominare file e cartelle. Per contro, NTFS non e' case sensitive, cioe' non
distingue fra la versione maiuscola e minuscola dello stesso carattere
3.gestione automatica di un registro delle attivita' del sistema, che
permette di ripristinare la condizione del disco nel caso di problemi HW o SW
con il disco. Ovviamente e' possibile monitorare l'attivita' di ogni utente
4.mentre nei sistemi FAT le restrizioni di accesso avvengono solamente a
livello di cartella, in NTFS possiamoeseguire restrizioni anche a livello di
file
5.permette compatibilita' fra Windows e altri SO, infatti un utente Mac
puo' condividere dati con uno Windows, purche' questi usi NTFS e non FAT
6.prevede un agoritmo di conversione e di gestione dei file su disco che
permettono una frammentazione minore rispetto a
FAT, anche se vedremo che la struttura di principio e simile nei due
casi
NTFS a basso livello
La struttura logica approssimativa di una
partizione appena formatta con NTFS si presenta come di seguito :
figura 1 : schema
logico di organizzazione di un disco formattato con NTFS
|
BOOT
|
MFT
|
Free Space
|
More
Meta
data
|
Free Space
|
BOOT
Questa sezione contiene fondamentalmente il
software necessario per avviare in SO contenuto nella partizione a cui
appartiene BOOT stesso.
Il MBR usa questa regione per caricare i file
del kernel del SO in uso nella partizione.
Al centro logico della partizione e' presente
una copia della sezione di BOOT.
MFT
Master File Table (MFT) e' la tabella che
tiene memoria della disposizione fisica di tutti i file su disco, compresa la
posizione del BOOT, il quale a sua volta e' in grado di fare riferimento alla
MFT.
Questa sezione comprende una serie di record
ognuno dei quali fa' riferimento a un file o a una cartella presente sul disco.
Questi record sono simili alle directory entry
di FAT : comprendono la posizione, la dimensione, gli attributi ecc.
Esiste anche un record particolare che fa'
riferimento alla MFT stessa.
Free
Space
Vale la pena ricordare semplicemente che i
dati sono memorizzati sul supporto secondo la modalita' little-endian, cioe' i
byte vengono memorizzati partendo dal piu' significativo.
Chiaramente la dimensione di queste regioni
dipende dalla dimensioni della partizione.
ISO
9660 (CD-ROM)
Viene
trattato solo per completezza, senza avere la pretesa di spiegarne a basso
livello il funzionamento.
Nel filesystem ISO 9660 i
dati vengono memorizzati in settori su un'unica traccia a spirale che parte
dalla zona centrale e si espande verso l'esterno.
In
questo senso, il CD assomiglia molto al nastro quando si è in fase di scrittura
(i dati possono solo essere aggiunti), mentre in lettura si riesce a ottenere
un accesso diretto come si fa con i dischi magnetici. Per questa ragione, lo
stesso file system ISO 9660 è organizzato in modo che la
scrittura avvenga una volta sola, senza la possibilità di cancellare o
modificare dati già inseriti.
Per quanto riguarda le tencniche di
riscrittura dei dischi, si rimanda ad altri appunti o altri corsi piu'
specifici.
Frammentazione del disco (caso FAT)
Alla
frammentazione dei dischi e' dovuto sostanzialmente il calo delle prestazione
di una calcolatore e il suo deterioramento nel tempo.
Il
motivo fondamentale percui abbiamo frammentazione del disco e' l'assegnazione
dei cluster ai file che avviene in modo
poco “lungimirante”. Infatti non si tiene conto di come possano risultare
separati i cluster relativi allo stesso file, ma semplicemente quando viene
trovato un cluster libero da poter assegnare al file che deve essere
memorizzato, lo si assegna.
Cio' che
ne deriva e' una allocazione discontinua dei cluster allo stesso file, il che
evidentemente obbliga la testina del drive a muoversi anche spesse volte nel
corso della lettura del medesimo file con conseguente calo delle prestazioni
del sistema e del tempo di vita del drive stesso.
Si tenga
conto a questo proposito che il disco non viene usato solamente quando l'utente
richiede di lavorare a un documento o accede a un'applicazione ma anche ad
esempio, e in modo del tutto trasparente all'utente stesso, quando si naviga in
INTERNET.
Basti
pensare all'uso che il browser fa dei file temporanei per velocizzare la
navigazione sul WWW.
Per
quanto la documentazione disponibile tenda ad attribuire questo inconveniente
solamente a “vecchi” filesystem quali i FAT, anche nel piu' moderno e diffuso
NTFS abbiamo questo tipo di problema.
Tartteremo,
almeno per il momento, il caso della frammentazione nei sistemi FAT, per
evitare alcune complicazioni tecniche
presenti nel caso dell'NTFS che porterebbero l'attenzione del lettore lontano
dagli scopi dei presenti appunti.
Abbiamo
due fondamentali strutture che servono a gestire l'allocazione dei file su
disco secondo FAT : directory entries e
FAT table.
Directory entries
Rappresenta
l'unita' logica entro cui sono memorizzate le informazioni riguardanti ogni
file o directory come ad esempio il nome, la dimensione, l'estensione, la data
di ultima modifica, i permessi e il numero del primo cluster su disco nel quale
risiedono informazioni riguardanti il file stesso.
FAT table
Contiene
i riferimenti fisici ai cluster su disco. I cluster sono numerati in ordine
crescente e associato ad ogni numero di cluster abbiamo due informazioni : il
riferimento fisico (traccia, cilindro, gruppo di settori) dove il cluster e'
allocato sul disco, e il numero del prossimo cluster che contiene informazioni
sul file corrente se quello attuale non e' l'ultimo cluster del file stesso.
Se un
cluster e' l'ultimo per la memorizzazione del file, la seconda informazione
e' 0xFFFF (per FAT 16) e 0xFFFFFFFF (per
FAT 32).
L'esempio
seguente dovrebbe chiarire come siano
gestiti i dischi tramite FAT :
figura 2 :
memorizzazione di due file con il sistema FAT nell'ipotesi si cluster pari a
4KB
I due
problemi fondamentali che si possono presentare sono :
1.cross
linked cluster :
due entry della FAT table sono associati alla medesima entry della FAT table
2.last
linked cluster :
uno o piu' cluster non hanno FAT o directory entries associate