Capitolo 3. Struttura del filesystem

3.1. Perché condividere una struttura comune?

La struttura del filesystem di un sistema operativo è il suo livello più elementare di organizzazione. Quasi tutti i modi in cui un sistema operativo interagisce con gli utenti, le applicazioni e i modelli di sicurezza dipendono dal modo in cui il sistema memorizza i suoi file su un dispositivo di memorizzazione. Per svariate ragioni è importante che gli utenti, così come i programmi, possano fare riferimento a una linea guida comune per sapere dove leggere e scrivere i file.

Un filesystem può essere visto come comprendente due diverse categorie logiche di file:

I file condivisibili sono file a cui vari host possono accedere, mentre i file non condivisibili non sono disponibili per altri host. I file variabili possono cambiare in qualsiasi momento senza interventi esterni. I file statici, come i file di documentazione di sola lettura o i file binari, non cambiano senza un'azione dell'amministratore del sistema o di chi è autorizzato a effettuare una tale operazione.

La ragione che ci porta a classificare i file è quella di aiutarvi a comprendere il tipo di autorizzazione dato alla directory che contiene i file. Il modo in cui il sistema operativo e i suoi utenti utilizzano i file determina la directory dove questi verranno inseriti, indipendentemente dal fatto che la directory sia montata in modalità di sola lettura o di lettura e scrittura e indipendentemente dal livello di accesso autorizzato a ogni file. Il livello massimo di questa organizzazione è fondamentale, poiché l'accesso alle directory sottostanti può essere limitato o possono insorgere problemi di sicurezza, se il livello massimo è disorganizzato o privo di struttura.

Tuttavia, il fatto di avere una struttura non significa molto a meno che non sia standard. La creazione di strutture rivali rischia di causare problemi anziché risolverli. Per questo motivo, Red Hat ha scelto la struttura di filesystem più comune estendendola leggermente per adattarla a file speciali utilizzati all'interno di Red Hat Linux.