In quest’articolo andremo alla scoperta del filesystem di un sistema operativo Linux dandone una prima visione generale che potrà risultare utile come primo punto di inizio. Molte persone che si avvicinano a questo sistema operativo, si sentono confusi alla vista del suo filesystem, principalmente perché esso si presenta come una non semplice gerarchia di file e directory.
Iniziamo dicendo che in Linux esiste una singola struttura gerarchica delle directory. Ogni cosa inizia dalla directory root, rappresentata da ‘/‘; e si ramifica in una struttura dati ad albero formando directory e sotto directory. Mentre nei sistemi operativi DOS/Windows possiamo avere varie partizioni
all’interno delle quali sono presenti le directory, in Linux tutte le partizioni sono presenti all’interno della directory root eseguendo il ‘mount‘ sotto specifiche directory. Volendo paragonare, la root directory di Linux sarebbe la partizione C: di Windows.
A loro volta, in Windows le varie partizioni vengono identificate durante la fase di boot (fatta eccezione per i dispositivi plug&play). Ma in Linux, se non viene eseguito il mount di una partizione o di un dispositivo, il sistema non conosce l’esistenza di quella partizione o dispositivo. A prima vista questo potrebbe sembrare il modo più semplice per accedere a una partizione o a un dispositivo, ma nonostante ciò questo fornisce in compenso un’alta flessibilità e potenza.
Questo tipo di strutturazione del filesystem, offre molti vantaggi se paragonato con l’approccio utilizzato dai sistemi Windows. Prendiamo l’esempio della directory /usr. Questa contiene molti programmi eseguibili all’interno del sistema. Avendo a disposizione il filesystem di Linux possiamo scegliere di smontarla e rimontarla su un’altra partizione, o ancora su un’altra partizione di un’altra macchina sulla stessa rete. Il sistema sottostante non conoscerà la differenza poiché /usr appare come essere una directory che è parte della struttura delle directory locali. Provate a muovere la directory c:/windows/system32 su un’altra partizione o dispositivo e vedrete cosa accadrà.
* / - è chiamata root del filesystem. E’ un ramo dell’albero del filesystem e il punto di inizio del filesystem stesso. Ogni altra directory o file presente nel sistema e subordinata alla ‘/’. Dal terminale digitando cd / veniamo diretti sulla root del filesystem.
* /root - è la directory home dell’utente root. Questa solitamente conterrà file di log e script usati dall’amministratore del sistema.
* /bin - è la directory dove sono memorizzati i principali file binari sia per l’amministratore che per gli utenti comuni. Esempi sono i programmi “ls”, “cat” e “mv” oltre alle shell come bash, ksh, csh.
* /sbin - è la directory dove sono memorizzati i principali file binari usati dall’amministratore del sistema e dal sistema stesso.
* /dev - questa invece è una directory molto interessante. Essa sottolinea una importante caratteristica del filesystem di Linux. Ogni cosa in Linux è un file o una directory. In questa directory troviamo le varie partizioni montate sul primo master drive del sistema. Ad esempio /dev/cdrom e /dev/fd0 rappresentano rispettivamente il lettore CDROM e il lettore floppy mentre /dev/dsp rappresenta gli speaker del computer. Ogni cosa scritta su questo file verrà automaticamente ridiretta verso i tuoi speaker. Provate dal terminale il seguente comando: cat /etc/fstab > /dev/dsp; sentirete il suono del file fstab.
* /lib - è la directory dove vengono memorizzate le librerie condivise che occorrono alle applicazioni presenti nelle directory /bin e /sbin.
* /boot - è il punto in cui il boot loader cerca per caricare il kernel.
* /mnt - questa directory rappresenta un generico mount point all’interno della quale è consigliabile montare i nostri fylesystem e i nostri dispositivi esterni.
* /etc - è la directory dove trovano luogo molti file di configurazione del sistema. Notiamo che la directory /etc/rc.d contiene gli script per l’avvio del sistema stesso.
* /var - questa directory contiene i dati di spooling quali mail e l’output del deamon della stampante. Nella directory /var/log sono invece contenuti i file di log del sistema.
* /tmp - in questa directory sono contenuti tutti quei file che debbono essere utilizzati temporaneamente. Ad esempio, dove si trovano i file scaricati se non altrimenti indicato.
* /proc - questa directory è in realtà uno pseudo filesystem che risiede nella memoria virtuale mantenendo lo stato di tutti quei dati, interni al sistema, altamente dinamici. La maggior parte delle informazioni presenti in /proc sono consistenti con lo stato corrente del sistema operativo correntemente in esecuzione.
* /opt - questa directory dovrebbe contenere tutto il software e i pacchetti aggiuntivi che non fanno parte dell’installazione di default. In realtà, questa directory non viene usata molto spesso benché faccia parte della struttura standard di una installazione UNIX.
* /home - in questa directory sono presenti, come sotto directory, le directory di tutti quegli utenti che hanno un account sul sistema.
* /usr - questa ha come sotto directory “/usr/bin”, “/usr/sbin” e “/usr/lib” che ha lo stesso scopo delle directory “/bin”, “/sbin” e “/lib”, ma che sono necessari durante la fase di boot del sistema. Molti file binari non essenziali all’utente o al sistema trovano luogo in questa directory. La directory /usr contiene anche la maggior parte della documentazione dei binari e delle librerie installate nel sistema.
di Giuseppe Lo Brutto - TuxJournal.net