Next: Il filesystem root
Up: L'albero delle directory
Previous: L'albero delle directory
Questo capitolo è basato sullo standard dei filesystem Linux, FSSTND, versione 1.2 (vedere la bibliografia, [Qui95]), che tenta di impostare uno standard per l'organizzazione dell'albero delle directory nei sistemi Linux. Uno standard del genere ha il vantaggio che sarà più facile scrivere o portare del software per Linux, e amministrare le macchine Linux, dato che tutto sarà nel posto designato.
Non c'è nessuna autorità che impone a nessuno di uniformarsi allo standard, ma questo ha il supporto della maggior parte, se non di tutte, le distribuzioni Linux. Non è una buona idea rompere con lo standard FSSTND se non per ragioni molto particolari. Il FSSTND tenta di seguire la tradizione Unix e le tendenze più recenti, rendendo i sistemi Linux familiari per chi ha esperienza con altri sistemi Unix, e viceversa.
Questo capitolo non è dettagliato come il FSSTND. Gli amministratori di sistema dovrebbero leggere anche il FSSTND per avere una comprensione completa dell'argomento.
Questo capitolo non descrive tutti i file in dettaglio. L'intenzione non è di descrivere ciascun file, ma di dare una visione del sistema dal punto di vista del filesystem. Ulteriori informazioni su ciascun file possono essere trovate in altre parti di questo manuale o nelle pagine man.
L'albero delle directory completo può essere diviso in parti più piccole, ciascuna sulla sua partizione di disco, per ottimizzare le cose in dipendenza dalla dimensione dei dischi e per rendere più semplice il backup e il resto dell'amministrazione. Le parti principali sono i filesystem root, /usr , /var e /home (vedere la figura 3.1). Ciascuna parte ha uno scopo diverso. L'albero delle directory è stato strutturato in modo che funzioni bene in una rete di macchine Linux che condividano delle parti del filesystem su un dispositivo a sola lettura (ad esempio un CD-ROM), o sulla rete con NFS.
Figure 3.1:
Parti di un albero delle directory Unix.
Le linee tratteggiate indicano i limiti delle partizioni.
|
I ruoli delle diverse parti dell'albero delle directory sono descritte qui sotto.
-
Il filesystem root è specifico per ciascuna macchina (generalmente viene immagazzinato su un disco locale, anche se può trattarsi di un ramdisk o di un disco in rete) e contiene i file necessari per avviare il sistema e per portarlo ad uno stato tale che possa montare gli altri filesystem. Il contenuto del filesystem di root sarà quindi sufficiente per la modalità a singolo utente. Conterrà anche gli strumenti per recuperare un filesystem danneggiato o copiare dai backup i file perduti.
-
Il filesystem /usr contiene tutti i comandi, le librerie, le pagine man e altri file che non vengono modificati durante le normali operazioni. Nessun file in /usr dovrebbe essere specifico per nessuna macchina data, né dovrebbe essere modificato durante il normale uso. Questo permette che il file venga condiviso in rete, cosa che può portare ad un risparmio economico dato che permette di risparmiare in spazio disco (facilmente ci possono essere centinaia di megabyte in /usr ), e può rendere l'amministrazione molto più semplice (basta modificare solo l'/usr principale quando si aggiorna un'applicazione, e non c'é bisogno di farlo separatamente su ciascuna macchina). Anche se il filesystem si trova su un disco locale, può essere montato con accesso a sola lettura, per diminuire le possibilità di corruzione durante un crash.
-
Il filesystem /var contiene dei file che cambiano, come le directory di spool (per la posta, le news, le stampanti eccetera), i file di log, le pagine man formattate e i file temporanei. Tradizionalmente tutto quello che si trova in /var si trovava in qualche posto sotto /usr , ma questo rendeva impossibile montare /usr a sola lettura.
-
Il filesystem /home contiene le home directory degli utenti, cioè tutti i veri dati sul sistema. Separare le home directory su un albero o su un filesystem separato rende molto più semplici i backup: le altre parti in genere non hanno bisogno di backup, o almeno non frequentemente (cambiano poco nel tempo). Una /home grande potrebbe dover essere separata in vari filesystem, cosa che richiede di aggiungerci sotto dei livelli aggiuntivi, ad esempio /home/students e /home/staff .
Anche se le diverse parti sono state chiamate fino ad ora filesystem, non è richiesto che si trovino realmente su filesystem diversi; possono essere tenute su uno stesso filesystem se il sistema è piccolo e monoutente, e l'utente vuole mantenere le cose semplici. L'albero delle directory può essere diviso in filesystem in modo diverso da quanto spiegato, a seconda di quanto sono grandi i dischi e di come lo spazio è allocato per i vari scopi.
La parte importante, piuttosto, è che tutti i nomi importanti funzionino, anche se, diciamo, /var e /usr sono in realtà sulla stessa partizione, i nomi /usr/lib/libc.a e /var/adm/messages devono funzionare, ad esempio spostando i file sotto /var in /usr/var , e rendendo /var un link simbolico a /usr/var .
La struttura dei filesystem Unix raggruppa i file a seconda dello scopo, cioè tutti i comandi si trovano nello stesso posto, tutti i file di dati in un altro, la documentazione in un terzo e così via. Un'alternativa sarebbe raggruppare i file a seconda del programma a cui appartengono, cioè tutti i file di Emacs sarebbero in una stessa directory, tutti quelli di TEX in un altra, e così via. Il problema di quest'ultimo approccio è che rende difficile condividere i file (le directory dei programmi spesso contengono sia file statici che condivisibili, e sia file che cambiano che file che restano invariati), e spesso anche trovare dei file (ad esempio, le pagine man sarebbero in un numero enorme di posti, e fare in modo che i programmi di lettura delle pagine man le possano trovare è l'incubo degli amministratori di sistema).
Next: Il filesystem root
Up: L'albero delle directory
Previous: L'albero delle directory
root
1998-11-08