Contact me sending an e-mail (antispam defense activated) |
Title: La gerarchia del filesystem di Linux Author: Sandro Tosi Last modified: 2004-11-01 (2004-10-31) Linux ha una struttura del filesystem a singolo albero: tutti i device (e quindi anche i dischi rigidi) discendono da un'unica radice, `/', e l'accesso ad essi lo si ha con l'operazione di montaggio, cioe` l'associazione tra una directory (mount point) ed il device stesso. A questo punto, l'accesso al disco avverra` accedendo alla directory di mountpoint scelta, mascherando ed unificando la presenza di piu` dischi in un unico albero. L'utilizzo di questa struttura unificata e` dovuto al luogo di nascita dei sistemi Unix (da cui deriva Linux): gli ambienti di ricerca. In questi posti era facile trovare molti dischi, alcuni anche disponibili via rete, per cui gli sviluppatori Unix hanno voluto integrare tutti questi dispositivi di storage in modo semplice e logico. E` nato cosi` il filesystem ``unificato''. Al contrario, nel mondo dei personal computer, si aveva a che fare con floppy disk non hard disk, e nessun supporto di rete. Il sistema operativo era il DOS e si preoccupava maggiormente del numero di drive disponibili piuttosto che di unificare la vista di questi. Abbiamo cosi` che nel mondo Microsoft esiste un albero per ogni device fisico, solitamente indicato da una lettera seguita da due punti: ``A:'', ``B:'', ``C:'', etc. Nella struttura del filesystem Linux, alcune directory hanno un significato ed un contenuto particolare. Vediamo brevemente il significato delle piu` importanti directory che su ogni sistema Linux possiamo trovare (e` possibile ottenere diverse informazioni da ``man hier''; Ma il documento di riferimento e` sicuramente ``The Filesystem Hierarchy Standard'' disponibile all'indirizzo http://www.pathname.com/fhs/): / Il punto di origine di tutto il filesystem Linux. Ogni sottodirectory e` un ramo dell'albero del filesystem e ``/'' ne e` la radice. /bin Contiene i comandi essenziali all'utilizzo del sistema, come ``ls''. /bin e` un'abbreviazione per ``binary executables'', cioe` eseguibili binari. Questa directory e` contenuta nel path di tutti gli utenti, in quanto gli eseguibili contenuti sono quelli di base. /boot Contiene tutti i file necessari al boot di un sistema Linux, e tra questi anche i kernel. /cdrom Mountpoint per il device del cd rom. /dev Contiene i device file, file speciali che permettono di accedere direttamente ai driver per gestire le periferiche. /etc Contiene i file di configurazione globali del sistema; inolte sono presenti i file di inizializzazione, utilizzati al boot per decidere quali processi eseguire. /floppy Mountpoint per il device del floppy disk. /home Contiene le home directories per tutti gli utenti del sistema. Solitamente un utente normale ha accesso solo alla propria home directory, /home/<username>, che viene anche indicata dal carattere speciale ~. /lib Contiene le librerie necessarie ad altri programmi per funzionare. Esse contengono parti di codice comune e dunque condivisibile tra piu` eseguibili. /lib/modules Contiene i moduli dei kernel installati, divisi per directory con nome uguale alla versione del kernel: /lib/modules/`uname -r` e` la directory che contiene i moduli del kernel attualmente caricato. /lost+found In caso di crash e successivo riavvio, i filesystem devono essere controllati contro eventuali errori. fsck, nel caso non riesca a risolvere un'incongruenza, scrive dentro questa directory (presente anche in tutte le altre partizioni che contengono un filesystem) una directory che ha come nome l'inode preceduto da ``#'', al cui interno si trovano le parti di file che non e` stato possibile recuperare. /mnt Contiene i mount point per filesystem esterni. Viene utilizzata come contenitore per altre sottodirectory che saranno mountpoint per i device da montare. Alcune distribuzioni mettono qui il mount point per cdrom e floppy. /opt Sta per ``optional'' ed e` principalmente un retaggio dei sistemi Unix, in cui venivano installati i programmi non contenuti nel sistema operativo. Con le distribuzioni attuali, non viene praticamente utilizzata e viene mantenuta per compatibilita`. /proc Mountpoint per il filesystem virtuale procfs, che consente accesso diretto alle strutture del kernel, mostrando informazioni molto dettagliate sullo stato del sistema. Oltre a leggere i file contenuti, alcuni possono essere anche modificati: attenzione a quello che si modifica! /root La home directory dell'utente root, l'amministratore del sistema. /sbin Contiene file binari essenziali al funzionamento del sistema, e senza i quali il processo di boot fallirebbe. Sono programmi di amministrazione del sistema e soltanto root dovrebbe avere questa directory nel proprio path: /sbin sta infatti per ``superuser binary execuables'' /sys Mountpoint per il filesystem virtuale sysfs introdotto con il kernel 2.6, che separa le informazioni sul sistema (ora contenute qui) e quelle sui processi (rimaste in /proc, com'era nelle intenzioni originali). /tmp E` il posto dove il sistema ed i programmi possono memorizzare file temporanei; non si puo` fare affidamento che i file in /tmp siano preservati tra un'esecuzione del programma e l'altra. Il contenuto viene solitamente cancellato ad ogni reboot. /usr Directory che al suo interno contiene altre sottodirectory per diversi scopi, tutte relative agli utenti. /usr/bin Programmi relativi o utilizzati da utenti. /usr/doc Contiene la documentazione sul software installato. /usr/local Contiene i programmi locali al proprio sistema, solitamente non contenuti nella propria distribuzione. In caso di reinstallazione, basta eseguire una copia di backup di questa directory e restorarla e tutti i programmi aggiuntivi saranno nuovamente disponibili. /usr/src/linux Directory che tradizionalmente contiene i sorgenti del kernel Linux. /var Contiene i file che possono cambiare molto di frequente (da qui il nome). /var/log Contiene i file di log del kernel, dei demoni ed in generale di quei programmi che necessitano di effettuare dei log. Contengono i messaggi delle applicazioni, e consentono di verificare lo stato del sistema. /var/run Contiene i PID di alcuni processi in esecuzione. /var/spool Contiene lo spool di stampa, o delle mail. /var/tmp Questa directory e` resa disponibile per programmi che necessitano di file temporanei ma che siano preservati tra reboot. Il contenuto viene cancellato periodicamente, ma meno frequentemente di /tmp. Come detto, questo elenco non vuol essere ne` completo ne` esaustivo. Per dettagli molto piu` precisi, si faccia riferimento al ``The Filesystem Hierarchy Standard'' gia` citato. |