Guida all'organizzazione del file system su Linux
Data: Marted́, 07 luglio 2009 ore 14:00:00 CEST
Argomento: Rassegna stampa


Ormai è risaputo che da un paio d'anni a questa parte, il mondo GNU/Linux si sta affacciando sempre di più al mondo degli home desktop, costituito dai computer casalinghi, volti all'intrattenimento familiare.

In questa indagine di mercato dove, tra l'altro, si vede Microsoft e i suoi sistemi Windows scendere sotto il 90% delle quotazioni, notiamo invece un timido Linux salire allo 1,02%, quando a gennaio registrava uno 0.64% (qui il rapporto completo sulle quotazioni di Linux e degli altri sistemi operativi).

Certo, è uno 1,02% che a molti farà sorridere, ma la percentuale di utenti che utilizzano il pinguino è in aumento, e credo che almeno il doppio delle persone riscontrate in quell'indagine ha provato, almeno una volta, un sistema operativo GNU/Linux, ma sono poi tornate a Windows o a Mac per vari motivi.

Uno fra questi è la diversa organizzazione del file system rispetto a Windows, che porta in confusione molti aspiranti linux user. Ma dov'è il disco C: ? Ho appena inserito una chiavetta USB, come posso accederne al contenuto? Cosa significa "/" che molti chiamano root? Queste sono alcune delle tante domande a cui cercheremo di dare una chiara risposta in quest'articolo, sperando sia una valida risorsa per chi vuole avvicinarsi al mondo del pinguino.


Differenze tra Windows e Linux

Come abbiamo già detto, la gerarchia del file system su Linux è nettamente differente a quella presente su Windows: in quest'ultimo troviamo tutte le memorie di massa (dischi rigidi, memorie USB e così via) tra le Risorse del Computer, i dispositivi con i quali è costituito il computer (scheda audio e video, processore, host USB, eccetera) si possono gestire nella finestra Gestione Periferiche e gran parte della configurazione del sistema viene memorizzata nel famoso registro di sistema.

Questa organizzazione, che potrà sembrare comoda ai neofiti, tende a nascondere agli utenti più smaliziati e agli smanettoni una grossa fetta della personalizzazione e configurazione del sistema, cosa che in ambiente open source specie su GNU/Linux è inaccettabile, dato che in questi sistemi l'utente deve avere sotto mano tutti gli strumenti per gestire il suo computer nel modo che più gli aggrada.

Il file system su Linux, invece, rende disponibile tutta la configurazione del sistema, esattamente dove si trova: in semplici ma efficaci file memorizzati nel disco fisso, ed è lì che l'utente andrà ad agire per modificare le impostazioni del sistema, senza aver bisogno di interfacce grafiche che spesso tendono a limitare la personalizzazione.

A prima vista questo tipo di organizzazione può sembrare un miscuglio di file che rende la vita impossibile anche ai più determinati, ma non è così, infatti questi file sono disposti in prefissate cartelle ognuna con il proprio scopo ben definito e con un po' di abitudine non si riesce più a farne a meno.

Nel paragrafo successivo andremo a conoscere questa cartelle, a scoprire dove sono posizionate e cosa contengono.

Gerarchia ad albero

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.

MLI_Gerarchia_Linux.png

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 file eseguibili 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.
  • Vorrei farvi notare un altro paio di aspetti interessanti. Innanzitutto, per indicare i percorsi delle cartelle e dei file si utilizza lo slash ("/") anziché il backslash ("") come accade su sistemi Windows: ad esempio, il percorso C:Users omeutente si trasforma in /home/nomeutente in Linux e anche in tutti i sistemi POSIX-compatibile, come UNIX, BSD e Mac OS X.

    Un'altra sottigliezza cui dovete porre l'attenzione è che tutti i percorsi iniziano sempre indicando la root come cartella principale, come effettivamente deve essere. Quando vi riferite, per esempio, a /etc, notate che si indica sempre root / più il nome della cartella, in questo caso etc, e così via.

    Conclusioni

    Quest'articolo è stato scritto per essere d'aiuto a tutte quelle persone che, sebbene desiderose di effettuare lo switch da Windows a Linux, rimangono spiazzate quando si tratta di fare i conti con un'organizzazione differente del file system nel pinguino.

    Una volta abituati, le cose vi sembreranno molto più semplici e la navigazione tra cartelle e file risulterà molto intuitiva. Nei casi migliori comincerete ad amare questa sua organizzazione semplice, ordinata ed efficace tanto da non farne più a meno.

           A cura di

eDog







Questo Articolo proviene da AetnaNet
http://www.aetnanet.org

L'URL per questa storia è:
http://www.aetnanet.org/scuola-news-16349.html