1.9 Il filesystem

Il filesystem è il meccanismo che permette la memorizzazione e la gestione delle informazioni sulla memoria di massa. In GNU/Linux, come in tutti i sistemi operativi Unix-like, il filesystem è strutturato in maniera gerarchica ad albero (v. fig. 1.29), in cui ogni nodo può essere una directory o un file. Una directory è un contenitore che può contenere file e directory. Un file è l’unità (logica) per la memorizzazione di un insieme di informazioni. La relazione tra i nodi è quella di discendenza: un nodo è in relazione con un altro detto padre se esso è un discendente diretto o figlio (ogni nodo figlio ha un unico padre).


pict
Figura 1.29: Esempio di albero.

La root directory, o directory radice, cioè quella dalla quale discendono tutti gli altri nodi, è rappresentata dal simbolo ‘/’ (slash).

Nei sistemi Unix-like è definita anche una working directory (directory di lavoro o directory corrente) che indica la directory di default da considerare per determinate operazioni sul filesystem (una sorta di directory sott’intesa).

Il path (percorso) è l’elenco delle directory da attraversare per raggiungere un determinato nodo dell’albero (file o directory). Questo può essere assoluto o relativo. Un path assoluto è il percorso per raggiungere un determinato nodo a partire dalla root directory (compresa). Quello relativo è il percorso per raggiungere un determinato nodo a partire da una determinata directory (che in genere è la working directory).

Il simbolo utilizzato come separatore dei nomi dei nodi del filesystem è ‘/’, lo stesso utilizzato per rappresentare la root directory. Non ci sarà ambiguità nello specificare il path di un nodo del filesystem, poiché il simbolo ‘/’ sarà interpretato come root directory soltanto nel caso in cui sia specificato come primo carattere del path, altrimenti viene considerato come carattere di separazione tra i nodi dell’albero del filesystem.

Dunque, si supponga di voler raggiungere il file prova contenuto nella directory seconda contenuta nella directory prima che a sua volta è contenuta in / (root directory). Il path assoluto del file in questione è quindi /prima/seconda/prova, mentre il suo path relativo alla working directory, supponendo che questa sia la directory prima contenuta nella root directory, è seconda/prova.

Nel testo si cercherà sempre di fare riferimento a file e directory con path assoluti a meno che il contesto non sia già sufficientemente chiaro.

Per ogni utente è definita una home directory che è la working directory di default. Questa viene anche rappresentata per mezzo del carattere ~’. Il file ~/pippo è quindi il file denominato pippo che si trova all’interno della home directory dell’utente considerato.

I concetti qui accennati saranno trattati nel cap. 4.