Il filesystem, codesto sconosciuto

Il filesystem, letteralmente ``sistema di archivio'', definisce i metodi e le strutture dati che un sistema operativo usa per tenere traccia dei file su disco: un po' come il tipo di armadio e di appendiabiti da usare per i nostri vestiti; esempi di filesystem (armadi) sono l'usatissimo ext3 di Linux, l'ISO9660 dei CD-ROM. Linux riconosce un numero elevato di filesystem21, i quali differiscono tra loro per il modo in cui i dati sono organizzati fisicamente sul disco; a complicare (o semplificare?) le cose c'è da dire che queste differenze sono mascherate all'utente dal filesystem ``virtuale''; è come avere davanti una maschera di carnevale: la maschera appare sempre la stessa anche se viene indossata da persone diverse.

Filesystem è anche il termine applicato all'insieme di dati gestito da un sistema software di gestione dei file che implementa una struttura gerarchica ad albero rovesciato, dove i file sono le foglie dell'albero e il punto d'inizio è, guarda caso, root, che significa radice. Quest'unica struttura gerarchica per l'organizzazione dei file e delle cartelle è stata oggetto di un notevole sforzo di standardizzazione che ha prodotto lo FHS (Filesystem Hierarchy Standard). Esso rappresenta il punto di arrivo di un processo di standardizzazione del filesystem di Linux cominciato nel 1993 e giunto poi a comprendere tutti i sistemi tipo Unix per l'interessamento della comunità BSD22. La piena conformità allo FHS rientra tra gli obiettivi di Debian, che organizza il proprio filesystem secondo le cartelle principali seguenti:

``/''
cartella radice
bin
contenente i comandi essenziali
boot
contenente i file statici del bootloader
dev
contenente i dispositivi per usare le periferiche
etc
contenente i file di configurazione del sistema
home
contenente le cartelle degli utenti
cdrom
punto di montaggio del lettore CD-ROM
floppy
punto di montaggio del lettore di dischetti
lib
contenente le librerie condivise essenziali e i moduli del kernel
mnt
punto di montaggio per esigenze locali
opt
inizialmente vuota, destinata a contenere software non presente nella distribuzione Debian
root
cartella dell'ammnistratore di sistema
sbin
contenente comandi essenziali per l'amministratore di sistema
tmp
contenente file temporanei
usr
cartella contenente numerosissime sotto-cartelle con gran parte dei file binari del sistema; evidenziamo in particolare:

/usr/share/doc/
contenente la documentazione dei programmi installati
/usr/local/
cartella inizialmente vuota ma destinata a software installato dagli utenti
/usr/src/
contenente codice sorgente (tipicamente il sorgente del kernel)
var
contenente dati variabili
Ricordate sempre che pur avendo la possibilità, in qualità di amministratore, di creare qualunque sotto-cartella o modificare qualunque file in qualunque luogo del filesystem, tutte le cartelle sopra elencate, ad eccezione di /opt, /usr/local, /home, /mnt, sono riservate al sistema e conviene non toccarle a meno che non si sappia bene cosa si sta facendo. Si sottolinea infine che il carattere ``/'' indica sia la cartella radice che l'elemento separatore delle sotto-cartelle: ciò che potrebbe essere motivo di confusione.

Mauro Darida 2006-07-25