Durante la loro esecuzione i processi possono richiedere il salvataggio di un elevato numero di dati. Questi dati possono superare per dimensione lo spazio degli indirizzi riservato al processo e inoltre devono poter sopravvivere alla chiusura dello stesso. I file sono l’astrazione offerta dal sistema operativo per facilitare il salvataggio e il recupero delle informazioni da parte dei singoli processi. Le informazioni memorizzate all’interno dei file sono persistenti, questo significa che esse non sono legate alla vita del processo che le ha create e quindi che un file non verrà distrutto dopo la chiusura del processo che lo ha generato.

I processi possono svolgere diverse azioni sui file, le più comuni riguardano la loro creazione, la loro modifica e la loro eliminazione. La parte del sistema che ha il compito di interfacciare i processi con i file è chiamata File System.

Nelle prossime pagine eseguiremo un confronto tra le diverse caratteristiche dei File System.

Struttura generale di un File System UNIX

Prima di iniziare vediamo brevemente la struttura di un file system UNIX. Consideriamo un disco contenente almeno una partizione UNIX, la sua struttura sarà più o meno la seguente:

Struttura di un file system UNIX
Struttura di un file system UNIX

Come possiamo vedere dallo schema sovrastante, la prima sezione del disco è riservata al Master Boot Records, ed è composta dai primi 512 byte. Il MBR contiene le istruzioni per avviare il boot del sistema operativo oltre che le tabelle delle partizioni del disco. Le tabelle delle partizioni (partition table) contengono tutte le informazioni inerenti alle partizioni presenti su disco, con particolare riferimento alle partizioni attive.

La partizione del disco riservata al sistema UNIX viene suddivisa in:

  • Boot Block, è la regione del disco che contiene il codice necessario ad avviare il sistema operativo;
  • Super Block, contiene alcune informazioni sulle zone successive del disco e i parametri per inizializzare il file system;
  • Free Space Management (talvolta Free Space Mgmt), contiene le strutture dati utili a conservare le informazioni sui blocchi liberi del disco, come ad esempio le bitmap o le lista linkata (di cui abbiamo parlato all’interno del capitolo dedicato alla gestione della memoria);
  • I-node, è zona del disco che racchiude tutti gli i-node;
  • Root Dir, puntatore alla directory di root;
  • Files and directory.