File system In informatica, un file system è, informalmente, un

Transcript

File system In informatica, un file system è, informalmente, un
File system
In informatica, un file system è, informalmente, un meccanismo con il quale i file
sono immagazzinati e organizzati su un dispositivo di archiviazione.
Più formalmente, un file system è l'insieme dei tipi di dati astratti necessari per la
memorizzazione (scrittura), l'organizzazione gerarchica, la manipolazione, la
navigazione, l'accesso e la lettura dei dati.
I dispositivi di archiviazione sono molteplici (dischi rigidi, floppy, pendrive e dischi
ottici) il compito del file system è quello di astrarre la complessità di utilizzo dei
diversi media proponendo una interfaccia per i sistemi di memorizzazione, in
maniera efficiente, comune a tutti.
Dal punto di vista dell'utente, un file system è composto da due elementi:
 File: unità logica di memorizzazione.
 Directory: un insieme di informazioni per organizzare e fornire informazioni sui
file che compongono un file system.
File
Il file è un entità atomica di assegnazione e gestione della memoria secondaria,
rappresenta una serie di informazioni correlate, e ad esse fornisce una vista logica
uniforme.
 Nome: stringa di caratteri che permette agli utenti ed al SO di identificare un
particolare file nel FS.
 Tipo: necessario in alcuni sistemi per identificare il tipo di file, in genere
questa identificazioni viene effettuata per mezzo dell'estensione.
 Locazione e dimensione: informazione sul posizionamento del file in memoria
secondaria, può essere disposto anche in blocchi non contigui.
 Data e ora: informazioni relative al tempo di creazione ed ultima modifica del
file.
 Informazioni sulla proprietà: utenti e gruppi proprietari, utilizzato per
Accounting ed autorizzazione.
 Attributi di protezione: informazioni di accesso per verificare chi è autorizzato
ad eseguire operazioni sul file (lettura/scrittura).
Directory
Una directory è una specifica entità del file system che elenca altre entità,
tipicamente file e altre directory, e che permette di organizzarle in una struttura ad
albero. Essa è pertanto definibile come un indirizzo, percorso (path) o locazione del
file system in cui sono presenti file o altre directory.
Un tipico file system può contenere anche centinaia di migliaia di file: le directory
consentono di suddividerli in gruppi più piccoli, tenendoli ordinati e facilitandone
l'uso da parte degli utenti e dei programmi. Ogni entità del file system diventa
individuabile tramite un pathname, ovvero un nome qualificato dai nomi delle
directory che occorre attraversare per accedervi, a partire dalla radice dell'albero
oppure dalla directory corrente.
Una directory elencata in un'altra directory è anche detta subdirectory, mentre
quella che la elenca è la sua directory superiore (o directory di livello superiore).
Una directory associa dei nomi alle strutture dati nel file system che rappresentano il
contenuto dei file e delle altre directory, in modo da potervi fare riferimento per
nome; ciò è particolarmente evidente nei sistemi Unix (ove le directory associano dei
nomi a degli inode) nel momento in cui si vuole ad esempio modificare il nome di un
file, operazione per la quale è necessario disporre dei permessi di scrittura sulla
directory che lo elenca piuttosto che sul file stesso.
Inode-UNIX
Nei sistemi Unix un inode è una struttura dati sul file system che archivia le
informazioni base dei file, delle directory o di qualsiasi altro oggetto. Le informazioni
includono:
 la dimensione del file e la sua locazione fisica (se risiede su un dispositivo a
blocchi come, ad es., un hard disk)
 il proprietario e il gruppo di appartenenza
 le informazioni temporali di modifica (mtime), ultimo accesso (atime) e di
cambio di stato (ctime)
 il numero di collegamenti fisici che referenziano l'inode
 i permessi d'accesso
 un puntatore allo spazio del disco che contiene i files veri e propri
Ogni inode ha associato un numero univoco all'interno del dispositivo e ogni file
presente è identificato come un collegamento fisico all'inode tramite il suo numero.
Quando un programma cerca di accedere ad un file tramite un nome
(es.documento.txt), il sistema operativo cerca l'inode corrispondente e recupera
tutte le informazioni sopra descritte per operare correttamente con il file.