Cos’è il File System: struttura delle directory in Linux

Struttura del filesystem in Linux e i dettagli delle directory: /etc, /bin, /usr, ecc…

In questo articolo vedremo meglio come è organizzato il File System in Linux e quali sono le carelle che lo compongono.

Filesystem

filesystemIl file system è quella parte del sistema operativo che si occupa di memorizzare le informazioni sul supporto di memoria fisico (es. hard disk).
Il file system definisce la struttura secondo cui i file vengono memorizzati e ritrovati.

Pensateci un attimo: quando salvate un file, nel vostro hard disk in realtà vengono memorizzati una serie di 0 e 1 (codice binario). Non sapete in quale locazione (cella di memoria) vengono salvati, pertanto non sapreste come recuperarli qualora vi servissero.

Qui interviene il File System: esso raggruppa in blocchi (file) le informazioni salvate e consente di assegnare loro un nome, in modo tale da consentirci di identificarle univocamente nel supporto fisico di memoria.
Dunque, il File System ci consente di conservare le informazioni per nome.

Funzionamento del Filesystem

Vediamo come è fatto il file system nel dettaglio:

filesystem

filesystem

Il grande nastro centrale è la nostra memoria fisica, suddivisa in:

  • boot block
  • super block
  • i-nodes
  • data blocks

I data blocks sono le allocazioni di memoria in cui sono memorizzati i nostri file.
Il filesystem si serve dell’i-node per identificare univocamente un singolo file all’interno dei data blocks.

All’interno dell’i-node sono contenute tutte le informazioni sul file: tipo, permessi, dimensioni e i riferimenti alla locazione in cui il file è contenuto (data block).
Il nome del file invece, non è presente all’interno dell’i-node, poiché non viene considerato come una proprietà del file.
Infatti, il nome viene trattato come una semplice “etichetta” che viene associata all’i-node (ogni i-node è identificato da un codice numerico univoco).

Quindi, quando creiamo una cartella (directory block), se inseriamo dei file, il filesystem aggiunge in una lista l’i-node del file e il relativo nome che gli abbiamo dato.

Ora che abbiamo visto meglio l’architettura del filesystem, vediamo come funziona la gerarchia dei file.

Struttura Gerarchica del Filesystem

In linux i file vengono organizzati secondo una struttura gerarchica ad albero, che segue lo standard FHS (Filesystem Hierarchy Standard).

Il punto gerarchico più alto è la directory radice root, che linux indica con il simbolo slash /, dove tutto hai inizio.

filesystem hierarchy

filesystem hierarchy

Come possiamo vedere, all’interno della root è contenuto tutto il sistema operativo, organizzato in altre cartelle.
Per comprendere meglio, la cartella root è quella che ci si presenta davanti quando proviamo ad accedere al disco fisso su cui è installato linux, ed è, volendo fare un paragone con Windows, equiparabile alla cartella C:\.

Le Cartelle del file system

Il secondo livello del file system, discendente di root, è composto dalle cartelle:

  • /bin: contiene i binari dei principali comandi eseguibili dal sistema: cat, ls, pwd, ecc…
  • /boot: contiene tutti i file necessari al Boot Loader per il processo di avvio del sistema. Inoltre, contiene il Kernel.
  • /etc: contiene tutti i file di configurazione del sistema e di controllo
  • /usr: contiene i pacchetti del sistema e le directory e le applicazioni dell’utente
  • /var: contiene file temporanei, log, ecc…
  • /sbin: ci sono i binari del sistema, quindi anche comandi come ifconfig, mkfs, fdisk , ecc…
  • /dev: i file descrittori dei device, ovvero dei dispositivi/periferiche come gli hard disk interni. In linux anche i dispositivi vengono visti come file!
  • /home: cartella principale dell’utente dove vengono salvati i file locali, contenente le cartelle: Documenti, Immagini, ecc…
  • /lib: contiene le librerie essenziali, incluso il compilatore C e le relative librerie.
  • /media: contiene cartelle che servono per gestire media rimovibili montati automaticamente dal sistema, come cd, floppy, ecc…
  • /mnt: usata per montare manualmente i filesystem temporanei dei dispositivi rimovibili come USB e cd. Infatti, una volta attaccata una chiavetta usb, se non “montassimo” il suo filesystem per poterne leggere il contenuto, non saremmo in grado di visualizzarne le informazioni. Solitamente c’è una cartella per ogni dispositivo montato. Per saperne di più: Guida al comando mount.
  • /opt: abbreviazione di “Optional”, contiene sia gli add-ons di alcuni software, sia programmi che non sono necessari al sistema. Molte persone usano questa cartella per creare sotto-directory in cui compilare e installare programmi.
  • /root: home dell’utente root.

Per accedere alla struttura gerarchica del file system, vi basta accedere al vostro disco principale (la visualizzazione varia in base alle distro che utilizzate).

file system entry point

file system entry point

Ed ecco che compariranno le nostre cartelle

Contenuto File System

Contenuto File System

Tipologie di file system

Le tipologie di file system sono molte: ntfs, fat, ext, ecc… Sfoglia la guida su come scegliere il file system più utile per le tue esigenze per imparare le differenze.

Bibliografia per Approfondimenti