Filesystem

22 marzo 2011

Questo capitolo è dedicato al filesystem di GNU/Linux ed attualmente offre una panoramica essenziale sul suo funzionamento.

Definizione e tipologie

1) Definizione: il filesystem è una struttura utilizzata per l'organizzazione dei dati in un dispositivo ad accesso diretto, ad esempio un disco rigido; tali dispositivi si contrappongono a quelli ad accesso sequenziale, tipicamente i nastri magnetici.

2) Tipi di filesystem:

Struttura del filesystem

1) Struttura:

Tipi di file

Tutti gli elementi presenti in un filesystem GNU/Linux sono dei file. Partendo da questo presupposto, è facile comprendere come anche le directory, i dispositivi hardware, le partizioni dei dischi, etc., sono essi stessi dei file.

1) Tipi di file:

Inodi del filesystem

1) Definizione: ogni file presente in un filesystem GNU/Linux è rappresentato da un inodo archiviato su disco nella cosidetta tabella degli inodi. I file non vengono identificati dal sistema in base al loro nome ma facendo riferimento al relativo numero di inodo: i nomi dei file, invece, rappresentano soltanto dei collegamenti all'inodo stesso. In sostanza, l'inodo è il file.

Esempio:
creiamo un file di testo vuoto di nome alfa.txt:
$ touch alfa.txt
visualizziamone alcune proprietà:
$ ls -il alfa.txt
2760711 -rw-r--r-- 1 stefano stefano 0 2010-03-23 18:09 alfa.txt
il numero 2760711 identifica l'inodo del file appena creato, il terzo campo invece, il cui valore è 1, rappresenta il numero di collegamenti che puntano a quell'inodo, al momento esiste un solo collegamento, alfa.txt

A questo punto creiamo un nuovo collegamento all'inodo:
$ ln alfa.txt beta.txt
visualizziamo le proprietà di entrambi i collegamenti:
$ ls -il alfa.txt beta.txt
2760711 -rw-r--r-- 2 stefano stefano 0 2010-03-23 18:09 alfa.txt
2760711 -rw-r--r-- 2 stefano stefano 0 2010-03-23 18:09 beta.txt
la prima cosa da notare è che il numero di inodo è per entrambi i collegamenti identico, questo perché fanno riferimento allo stesso inodo, 2760711, inoltre il contatore dei collegamenti ha ora valore pari a 2.

Rimuoviamo quindi il collegamento originale, alfa.txt:
$ rm alfa.txt
visualizziamo le proprietà di beta.txt:
$ ls -il beta.txt
2760711 -rw-r--r-- 1 stefano stefano 0 2010-03-23 18:09 beta.txt
l'inodo 2760711 continua ad esistere, ed il numero dei collegamenti ad esso è sceso a 1.

Nota: il numero di collegamenti all'inodo di una directory è costituito dalla directory stessa (.), dalla directory immediatamente superiore (..) e dal numero di sotto-directory della directory medesima.

Gestione dei dispositivi

1) Innesto e disinnesto dei dispositivi hardware:

Dischetti e filesystem

1) Comando per inizializzare a basso livello un dischetto: fdformat <dispositivo>

2) Comando per creare un file system in un dischetto: mkfs.<filesystem> <dispositivo>

Filesystem disponibili:

File interessanti

Il seguente elenco riporta il percorso assoluto di alcuni file che ritengo utili nell'utilizzo quotidiano di GNU/Linux.

1) File interessanti: