Linux & Open Source - È uno dei maggiori problemi per chi si avvicina al mondo del pinguino arrivando da Windows. I nomi cambiano, l'organizzazione dei file e delle cartelle pure, e ci si sente spaesati. Vediamo di far luce sull'argomento.
Il file system presente sui sistemi Linux organizza le proprie cartelle in una gerarchia comunemente detta "ad albero", ossia tutta la struttura parte da punto ben preciso chiamato root, che in italiano significa "radice" e si indica molto spesso con il simbolo "/" (si legge "slash"). Dalla root partono tutte le varie cartelle contenenti le proprie sottocartelle e così via.
Prima di procedere con l'analisi di tutte le cartelle presenti nella root, vi propongo uno schema riassuntivo di quelle principali che ho preparato per l'occasione.
Come potete osservare, ogni cartella presente nella root ha una funzionalità ben precisa e consente di tenere organizzati i file a seconda del loro tipo, che ora andremo ad analizzare.
/bin: contiene programmi e fileeseguibili utilizzati dagli amministratori di sistema (ma anche da normali utenti), e possono anche essere richiamati da script. Da notare che non possono esserci sottocartelle nella cartella /bin.
/boot: questa cartella contiene tutto ciò che serve al sistema per avviarsi e che deve essere eseguito prima che l'utente possa compiere operazioni con il computer. Molto spesso contiene file di configurazione per il boot loader salvato nell'MBR (Master Boot Record) come ad esempio GRUB o LILO; contiene anche l'immagine del kernel che sarà caricata all'avvio.
/dev: qui troviamo i file che rappresentano tutti i dispositivi con cui è costituito il computer: dalla memoria RAM alla scheda video e così via. Questo è probabilmente uno dei concetti più difficili da capire per chi arriva da Windows: i dispositivi sono, come tutto il resto, semplicemente file. In realtà la cosa si rivela utile perché consente ad esempio di indicare il device di output in varie circostanze; in ogni caso tratteremo questo argomento insieme alla nomenclatura dei file presenti in /dev in un'altra sede.
/etc: contiene tutti i file di configurazione di tutti i programmi che necessitano di averne uno. Ricordo che un file di configurazione è un semplice file di testo dove è possibile modificare parametri e impostazioni di un determinato programma. Questa cartella è molto importante perché, come avrete sicuramente capito, anche il sistema stesso ha bisogno di file di configurazione: qui troviamo tra l'altro la tabella delle partizioni da montare (caricare) all'avvio e il file che regola quali gruppi demoni (programmi simili ai servizi di Windows) caricare all'avvio.
/home: all'interno di questa cartella troviamo una sottocartella personale per ogni utente nella quale è possibile conservare tutti i propri documenti come musica e foto. Qui sono anche presenti tutti i file di configurazione per tutti quei parametri che cambiano a seconda di quale utente utilizzi il sistema; solitamente si trovano in cartelle nascoste (cartelle con un "." antecedente il nome).
/lib: questa cartella contiene tutte quelle librerie condivise che sono necessarie per il caricamento del sistema e per l'esecuzione dei programmi. Sono presenti anche tutti i moduli del kernel che sono stati compilati; alcuni di essi vengono caricati all'avvio a seconda della configurazione del sistema.
/media: qui vengono montate tutte quelle periferiche rimovibili come CD-ROM, DVD, floppy, ma anche memorie USB e hard disk esterni. Se cercate la posizione della vostra chiavetta USB, ora sapete dove trovarla.
/mnt: viene utilizzata come contenitore di file system utilizzati temporaneamente da amministratori di sistema, principalmente per manutenzione o ripristino di dati.
/opt: questa cartella viene utilizzata, seppur raramente al giorno d'oggi, per installare pacchetti software, che vengono posizionati in sottocartelle con lo stesso nome del pacchetto.
/tmp: come avrete intuito, qui vengono creati tutti i file temporanei necessari alle varie applicazioni. Viene poi svuotata ad ogni avvio del sistema.
/usr: per analizzare meticolosamente il contenuto e lo scopo di questa cartella servirebbe un articolo a parte. È una delle directory più grandi di tutto il sistema ed è a disposizione dell'utente dove può trovarvi una serie di sottocartelle contenente i programmi installati nella stragrande maggioranza delle distribuzioni GNU/Linux, la relativa documentazione e tutte le librerie necessarie per il loro funzionamento (ovviamente quelle non presenti di default nel sistema), oltre a una serie di codici sorgenti pienamente disponibili ai programmatori per lo sviluppo delle proprie applicazioni .
/var: un'altra grande cartella dei sistemi Linux, che serve principalmente a tenere traccia di tutte le informazioni sul funzionamento della macchina. Si trovano qui tutti i file di log delle varie applicazioni.
/root: è la cartella dell'utente root, il super utente amministratore del sistema per default.
/proc: gestita direttamente dal kernel, contiene una serie di directory e file di testo che contengono informazioni sullo stato del kernel stesso, come l'hardware della macchina, processi e così via.
/sbin: qui sono presenti tutti i programmi eseguibili solo dall'amministratore, e servono principalmente per il ripristino e la manutenzione del sistema.
/lost+found: questa cartella, che si spera rimanga sempre vuota, è d'importanza vitale quando il sistema ha subito un crash improvviso. Qui, infatti, vanno a finire tutti i file corrotti a causa del crash, e di questi il sistema tenterà il ripristino (mediante il programma fsck) al successivo avvio del sistema.