Com'è strutturato il File System di LINUX

· 3 min lettura
Com'è strutturato il File System di LINUX

Le cartelle presenti nel File System di qualsiasi distribuzione Linux seguono uno standard preciso, scritto dalla Linux Foundation, chiamato "Filesystem Hierarchy Standard" (FHS). L'ultima versione di questo standard è la 3.0, rilasciata il 3 giugno 2015 (fonte).

Le cartelle che sono comprese in tutte le distribuzioni Linux (ma che possono presentare eccezioni a seconda della distribuzione) sono le seguenti:

  • /
    Questa è la radice di tutto il File System di Linux. Non può esistere nulla al di sopra di essa, salvo esplicito cambiamento tramite il comando chroot.
  • /bin
    Tutti i binari delle applicazioni principali di sistema sono contenuti qui.
  • /boot
    Qui sono contenuti i file del bootloader (es. il kernel, initd...) ma non i file di configurazione.
  • /cdrom
    Cartella presente nelle vecchie distribuzioni Ubuntu. I CDRom inseriti nella macchina, comparivano qui.
  • /dev
    Linux vede tutti i dispositivi connessi alla macchina come dei file simbolici. Quei file sono presenti in questa cartella (come hard disk esterni o interni, pen drive USB...). Sono presenti anche dispositivi virtuali (ossia non presenti fisicamente sul disco) come urandom, random, null, zero...
  • /etc
    Tutti i file di configurazione della macchina sono contenuti qui. Sono compresi file di configurazione di applicazioni o sistema. Anche i file di configurazione del bootloader (vedi cartella /boot) sono contenuti qui.
  • /home
    Dentro home sono contenuti tutte le cartelle e i file di configurazione dei profili esistenti sul sistema (che hanno richiesto la creazione di una cartella utente). Paragonabile alla cartella C:\users.
  • /lib
    I binari presenti in /bin attingono le loro librerie da qui per funzionare.
  • /lost+found
    Se il sistema andasse in crash, verrà effettuato un check del file system all'avvio successivo. Ogni file danneggiato, invece di essere cancellato, verrà spostato in questa cartella, permettendo all'utente di leggerli e salvarli, se possibile.
  • /media
    Qui sono contenuti tutti i dispositivi rimovibili connessi alla macchina.
  • /mnt
    Qui sono presenti i file system montati temporaneamente. Tecnicamente il comando mount permette di montare qualsiasi dispositivo in qualsiasi posizione nel sistema, ma questa cartella esiste per tenerli insieme e separati dal resto del file system.
  • /opt
    Sta per "optional packages". I file necessari per il funzionamento di un pacchetto non vengono installati nelle cartelle predefinite, vengono posizionati qui, nelle rispettive sottocartelle (esempio: /opt/applicazione).
  • /proc
    La cartella proc meriterebbe un articolo a parte. Qui sono contenuti file che presentano informazioni o stato del kernel e dei processi di sistema.
  • /root
    Sarebbe l'equivalente della cartella /home, ma per l'utente root, che per motivi di sicurezza, possiede la cartella utente in una locazione differente.
  • /run
    Questa cartella è stata introdotta per contenere i file temporanei necessari al funzionamento delle applicazioni che non possono essere posizionati in /tmp perché potrebbero essere eliminati e potrebbero essere necessari in futuro.
  • /sbin
    Simile alla cartella /bin, ma in questa cartella sono presenti binari che dovrebbero essere eseguiti da utenze amministrative o root.
  • /selinux
    Se la distribuzione utilizza SELinux (Fedora o Red-Hat, per esempio), i file utilizzati da SELinux saranno contenuti qui. Ubuntu non possiede questa cartella, quindi se compare, è sicuramente un bug.
  • /srv
    Sta per "Service Data", contiene le informazioni dei servizi forniti dalla macchina. Se, per esempio, si avesse un web server, la cartella di Apache con gli HTML sarebbe contenuta all'interno di /srv.
  • /sys
    Non presente su tutte le distribuzioni. Contiene le informazioni correnti di kernel, dispositivi e drivers.
  • /tmp
    Tutti i file temporanei dell'utente o di applicazioni vengono contenuti qui. Generalmente, la cartella viene svuotata ad ogni riavvio. Per evitare che file temporanei vengano cancellati tra un riavvio e un altro, si può usare la cartella /var/tmp.
  • /usr
    Binari non fondamentali per il sistema, file di sola lettura o librerie per i binari installati dall'utente sono contenuti qui. Può contenere diverse sottocartelle a seconda della distribuzione.
  • /var
    A differenza di /usr, qui vengono scritti e modificati file continuamente. Contiene la cartella di default per il salvataggio dei log in /var/log.