martedì 18 marzo 2008

Filesystem di Linux - Organizzazione gerarchica delle cartelle

Ecco una cosa che volevo scrivere da tempo perché in giro non si trovavano notizie decenti. Dico non si trovavano perche proprio 2 giorni fa TJ(www.tuxjournal.net) ha la bella trovata di anticiparmi. Ovviamente il tutto è non voluto, ma io mi dico lo stesso: "Ma che sfiga!".
Cercherò di differenziare un po' l'articolo, quindi passiamo ora alle cose serie:

Innanzitutto cos è un FileSystem?
Il Filesystem è una tecnica con cui vengono organizzati e memorizzati i dati su un supporto fisico(per intenderci Hard Disk, CD, ecc...).
Passando a SO(Sistemi operativi) più conosciuti, con windows xp la microsoft sancisce il passaggio dal filesystem FAT32 a quello NTFS(più "sicuro" e usato prima nelle versioni NT - per i server).
Linux usa un filesystem chiamato ext3. ext3 è una versione migliorata di ext2 con il "journaling". Il journaling è un sistema che permette di evitare che errori e malfunzionamenti hardware(tipo spegnimento improvviso del computer), danneggino i dati scritti sull'unità.

Montare un disco.
In Linux non si può accedere alle periferica di massa senza prima averle "montate". Quando si montano si crea un entry point in un punto del nostro albero delle directory. Nella nostra Ubuntu le periferiche tipo il lettore DVD e quelle rimovibili(pennette USB) si trovano nella cartella "/media", mentre di norma si ha a disposizione la cartella "/mnt" per generici mount.
Il comando per montare un dispositivo è:
mount [opzioni] <dispositivo_da_montare> <punto_di_mount>
Smontare è invece l'operazione inversa che permette di "staccare" il dispositivo dall'albero delle directory. Per usarlo il comando è:
umount <dispositivo_montato>
Una lista delle periferiche connesse al computer è individuabile sotto la directory "/dev". In questa cartella tutti i vari dispositivi sono visti come file. In Linux tutto è un file.

Passiamo ora alla gerarchia delle cartelle.
In Linux tutto l'albero delle directory ha origine dalla root, indicata con "/".
Le principali sotto-cartelle che troviamo possono risiedere sia sulla stessa partizione che su altre partizioni senza che questo crei problemi.

/bin
Qui vengono memorizzati tutti i vari file binari per gli utenti e gli amministratori. Si trovano qui i programmi come cp, ls, mv, ecc... Per una lista di tutti i comandi da terminale vi rimando ad un prossimo post che farò

/boot
Qui ci sono caricati i file del boot loader

/dev
Qui sono presenti tutti i file delle perifiche connesse al computer

/etc
Qui sono presenti tutti i file di configurazione del sistema. Ci sono anche gli script che si avviano all'avvio del sistema. Tra le sottocartelle principali ricordiamo quella per i file di configurazione del server grafico /etc/X11

/home
Qui nelle varie sottocartelle ci sono i dati personali di tutti gli utenti(es. /home/pippo per tutti i documenti dell'utente pippo). In fase di creazione delle partizioni iniziali è consigliabile creare una partizione(molto grande) apposta per questa cartella, per tenere separati i dati utente da quelli di sistema. Molto utile quindi farlo per formattare senza perdere i dati.

/initrd
Serve se si usa un RAM disk da caricare prima che il sistema di avvii

/lib
Qui sono presente i moduli del kernel e le librerie condivise necessarie per avviare il sistema e per eseguire i binari contenuti in /bin e /sbin

/lost+found<
E' presente su ogni partizione. Serve per recuperare i dati in caso di malfunzionamenti hardware

/mnt
E' un generico mount point per i dispositivi

/media
Come detto prima è la directory di montaggio per i dispositivi rimovibili.

/opt
E' riservata ai software e agli add-ons non presenti nelle installazioni di default. In teoria tutti i software di terze parti si dovrebbero installare qui dentro, ma ora come ora questa cartella non è più molto usata.

/proc
Sono presenti file "virtuali" che contengono informazioni sugli attuali processi attivi nel sistema al momento.

/root
E' la directory home dell'utente root.

/sbin
Qui ci sono gli eseguibili per gli amministratori di sistema.

/tmp
Qui vengono memorizzati tutti i file temporanei.

/srv
Risiedono dati specifici forniti dal sistema.

/usr
Contiene dati condivisi dagli host e generalmente sono in sola lettura. Presenta di solito la documentazione e i codici sorgenti dei programmi.

/var
Contiene i dati variabili come i file di log del sistema, le email, i file di spooling di stampa.



Le directory essenziali per il boot: "/bin", "/boot", "/dev", "/etc", "/lib", "/proc" e "/sbin" devono risiedere sulla stessa partizione.
Per le directory "montabili": "/home", "/mnt", "/tmp", "/usr" e "/var", si possono creare partizioni a parte per rendere più semplice il recupero dei file e delle impostazioni. Queste scelte sono consigliate agli utenti più avanzati, eccetto per la /home. Come ho già detto nella sua descrizione, per la cartella /home è caldamente consigliato la creazione di una partizione a parte, anche per gli utenti meno esperti.

Nessun commento:

Posta un commento