Linux Filesystem

Pensa ad una mensola che ha più ripiani che possono essere utilizzati per riporre vari oggetti. 

Questi scaffali ti aiutano a organizzare gli articoli per forma, dimensione, tipo, ecc. 

Lo stesso concetto si applica ad un filesystem, che è un metodo di memorizzazione e organizzazione di raccolte arbitrarie di dati in forma comprensibile all’essere umano.

Diversi tipi di filesystem supportati da Linux:

  • Filesystem convenzionali su disco: ext2, ext3, ext4, XFS, Btrfs, JFS, NTFS, ecc.
  • Filesystem di archiviazione flash: ubifs, JFFS2, YAFFS, ecc.
  • Filesystem per database
  • Filesystem per scopi speciali: procfs, sysfs, tmpfs, squashfs, debugfs, ecc.


Partizioni e Filesystem

Una partizione è una sezione fisicamente contigua di un disco.

Un filesystem è un metodo per memorizzare/trovare i file su un disco rigido (di solito in una partizione). 

Si può pensare ad una partizione come ad un contenitore in cui risiede un filesystem, anche se in alcune circostanze, un filesystem può estendersi su più di una partizione se si usano collegamenti simbolici, di cui parleremo molto più avanti.

Un confronto tra i filesystem in Windows e Linux è dato nella tabella di accompagnamento:

Windows Linux
Partizione Disk1 /dev/sda1
Tipo filesystem NTFS/VFAT EXT3/EXT4/XFS/BTRFS...
Parametri montaggio DriveLetter MountPoint
Directory base (dove si trova il sistema operativo) C:\ /

Filesystem Hierarchy Standard (FHS)

I sistemi Linux memorizzano i loro file importanti secondo un layout standard chiamato Filesystem Hierarchy Standard (FHS), che è stato a lungo mantenuto dalla Linux Foundation. 

Uno standard è progettato per assicurare che gli utenti, gli amministratori e gli sviluppatori possano muoversi tra le distribuzioni senza dover ri-imparare come il sistema è organizzato.

Linux usa il carattere '/' per separare i percorsi (a differenza di Windows, che usa '\') e non ha lettere di unità. Più unità e/o partizioni sono montate come directory nel singolo filesystem. 

I supporti rimovibili come drive USB e CD e DVD appariranno come montati a /run/media/nomeutente/disklabel per i sistemi Linux recenti o sotto /media per le distribuzioni più vecchie. 

Per esempio, se il tuo nome utente è mario una chiavetta USB etichettata UBUNTU potrebbe essere trovata su /run/media/mario/UBUNTU e un file CIAO.txt su quel disco sarebbe su /run/media/student/UBUNTU/CIAO.txt.

Filesystem Hierarchy Standard (FHS)
Filesystem Hierarchy Standard (FHS)

Tutti i nomi dei filesystem Linux sono case-sensitive, quindi /boot, /Boot, e /BOOT rappresentano tre diverse directory (o cartelle).

Molte distribuzioni distinguono tra le utilità di base necessarie per il corretto funzionamento del sistema e altri programmi e collocano questi ultimi nelle directory sotto /usr (think user).