Filesystem FAT 12/16/32, NTFS, ISO 9660

Materie:Appunti
Categoria:Sistemi
Download:71
Data:08.02.2007
Numero di pagine:8
Formato di file:.doc (Microsoft Word)
Download   Anteprima
filesystem-fat-12-16-32-ntfs-iso-9660_1.zip (Dimensione: 15.56 Kb)
trucheck.it_filesystem-fat-12-16-32,-ntfs,-iso-9660.doc     55 Kb
readme.txt     59 Bytes


Testo

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 per 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
1/3

Esempio