# FHS: una introduzione Il `Filesystem Hierarchy Standard` (`FHS`) definisce un layout standardizzato per la struttura del filesystem nei sistemi operativi Unix-Like. Si tratta di una raccomandazione volta a uniformare la struttura delle directory e il loro contenuto. Sebbene non sia obbligatorio, il FHS viene adottato dalla maggior parte delle distribuzioni Linux. ## Struttura delle directory Di seguito sono elencate le principali directory definite dallo standard, con una breve descrizione del loro scopo e contenuto: - `/`: rappresenta la directory principale, situata al vertice della gerarchia. Tutte le altre directory sono contenute al suo interno - `/bin`: contiene i binari essenziali necessari per il funzionamento del sistema - `/boot`: include i file necessari al processo di avvio, come l'immagine del `kernel Linux` e il file `initrd` - `/dev`: ospita i file di dispositivo, che rappresentano le periferiche hardware del sistema - `/etc`: contiene i file di configurazione del sistema, generalmente in formato testo - `/home`: ogni utente dispone di una propria home directory, in cui possono essere archiviati i file personali - `/lib`: include le librerie condivise necessarie per l'esecuzione dei binari presenti in `/bin` e `/sbin`. Queste librerie sono necessarie per l’avvio del sistema e per il funzionamento dei comandi di base - `/media`: funge da punto di mount per i supporti rimovibili, come chiavette USB e dischi esterni, montati dall'utente - `/mnt`: directory utilizzata come punto di mount temporaneo per filesystem aggiuntivi - `/opt`: destinato all'installazione di pacchetti software applicativi di terze parti - `/root`: rappresenta la directory home del superutente - `/sbin`: contiene i binari di sistema, ovvero i comandi per la gestione e la manutenzione del sistema operativo. Sono accessibili di norma solo agli utenti con privilegi elevati - `/tmp`: directory per i file temporanei, che possono essere creati e utilizzati da vari processi - `/usr`: destinata ai dati utente di sola lettura - `/proc`: un filesystem virtuale che contiene dati relativi ai processi in esecuzione - `/var`: directory per i dati variabili, che vengono scritti durante il funzionamento del sistema, come log - `/var/tmp`: un'altra posizione per i file temporanei. A differenza di `/tmp`, i file qui archiviati persistono generalmente anche dopo il riavvio del sistema - `/run`: contiene i dati delle variabili di runtime utilizzati dai processi in esecuzione, come i file di identificazione di processo (file con estensione *.pid*). Questa directory deve essere ripulita durante l'avvio del sistema