Le cose principali da sapere per usare un file system sono:
- il modo di fare riferimento ai file e directory,
- i comandi per lavorare su file e directory,
- le modalità di protezione dei file,
- i modi per creare collegamenti,
- le possibilità di compressione.
Identificazione dei file
I file sono identificati da un nome simbolico (di solito locale a una directory).
In alcuni casi i nomi sono costruiti secondo regole che inducono una classificazione per contenuto; la tecnica più comune è quella delle estensioni. In alcuni sistemi operativi le estensioni non servono e sono opzionali ma possono servire per determinati programmi che le richiedono.
Un file può essere specificato con due modalità diverse:
- attraverso il nome globale (absolute pathname) formato dalla concatenazione della directory radice, di tutte le sottodirectory che permettono di arrivare a quella contenente il file, e dal nome del file (praticamente è la concatenazione di tutti i nomi associati a nodi posti sul cammino che congiunge la radice con il nodo corrispondente al file nell’albero delle directory); i nomi globali sono unici;
- attraverso il nome locale (relative pathname); il nome locale è quello che il file ha all’interno di una directory dichiarata come corrente (current directory); il file potrebbe anche essere in una sottodirectory della directory corrente, in questo caso viene usata la sequenza di nomi che collegano nell’albero la directory corrente con il file; la directory corrente viene considerata come radice del sottoalbero individuato.
In pratica il pathname assoluto è l’elenco delle sottodirectory da attraversare partendo dalla radice mentre il pathname relativo è l’elenco delle sottodirectory a partire dalla directory corrente.
Comandi per lavorare su file e directory
Il file system deve fornire comandi per lavorare sui file e le directory (si tratta dei comandi di base che l’utente deve conoscere per utilizzare il sistema operativo). I comandi principali permettono di:
- creare e cancellare directory e file;
- esaminare il contenuto di directory e file;
- spostare o copiare directory e file.
Protezione
La protezione dei file si realizza indicando quali sono le modalità di accesso consentite per ciascun utente. Il controllo sull’accesso viene effettuato dal file system quando viene richiesta un’operazione sul file.
Il modo più semplice di gestire la sicurezza consiste nell’associare ad ogni file una modalità di accesso, valida per qualunque utente. La modalità di accesso stabilisce quali sono le operazioni consentite sul file e può essere:
- a sola lettura,
- a lettura/scrittura,
- a sola esecuzione,
- ad accesso libero (sono consentite tutte le operazioni: lettura, scrittura, esecuzione).
Un modo più sofisticato consiste nel poter stabilire per ogni file chi e come può accedere. In questo caso ogni file ha un proprietario che stabilisce i permessi di accesso al file. Il proprietario in genere è il creatore del file, ma la proprietà può essere anche ceduta ad altri; in certi casi il proprietario può essere il sistema operativo o l’amministratore di sistema. Il proprietario assegna i permessi di accesso (lettura, scrittura, esecuzione) agli altri utenti; ogni utente può fare una certa operazione se ha il corrispondente permesso di accesso. I permessi di accesso vengono assegnati anche alle directory e indicano le operazioni permesse sulla directory (per esempio elenco dei file contenuti, attraversamento della struttura di directory, cancellazione di file e così via).
I modelli di protezione o sicurezza possono essere:
- con liste di controllo degli accessi relative ai file (ACL); la lista di accesso può essere contenuta nel descrittore del file e caricata in memoria al momento dell’apertura del file;
- liste di capability su un oggetto associate agli utenti (C-List).
Di solito si usano le ACL assegnando i permessi a gruppi di utenti. È importante l’identificazione degli utenti e la loro autenticazione al momento dell’accesso.
I permessi di accesso sono assegnati agli utenti ma le operazioni sui file sono eseguite dai processi; è necessaria una associazione di processi e utenti cioè la definizione dell’utente proprietario per ogni processo; un utente può avere più processi e i permessi dell’utente si estendono ai suoi processi.
Collegamenti
I collegamenti ai file permettono di far comparire lo stesso file in directory diverse.
Se il file system permette collegamenti la struttura non è più ad albero ma a grafo. Se si possono fare collegamenti anche alle directory il grafo può non essere aciclico e questo può creare dei problemi.
Il collegamento può essere realizzato in due modi:
- facendo riferimento al pathname assoluto del file (collegamento simbolico); in questo caso cancellando l’originale gli altri collegamenti non sono più validi;
- facendo riferimento al descrittore del file; in questo caso l’originale non è più distinguibile dai collegamenti e il file continua ad esistere finché non viene cancellato l’ultimo collegamento.
Compressione
Per risparmiare spazio su disco si può effettuare la compressione dei dati. Per comprimere i file si possono usare dei programmi di compressione, ma può essere anche il file system ad offrire dei metodi di compressione incorporati. Se la compressione è offerta dal file system la compressione viene fatta automaticamente senza intervento da parte dell’utente: ogni file viene compresso quando viene salvato in una cartella o una unità compressa e decompresso quando viene estratto o aperto (con un rallentamento dell’operazione ma con risparmio di spazio).