File System Gnu\Linux concetti di base

0

linux

In questo articolo vedremo alcuni concetti basilari del file system Gnu\Linux e vedremo alcune analogie con Windows

Virtual File System (o VFS).

Lo spazio disponibile sull’hard disk , dove vengono archiviati tutti i file è organizzato in quello che viene definito un file-system.
Lo spazio disco è normalmente suddiviso in settori contigui di dimensione fissa(Impostata nella formattazione). Il sistema organizza questo spazio in modo da poter recuperare velocemente le informazioni memorizzate su

questi settori, anche se sono sparsi sul disco. In questo modo possiamo vedere un unico file anche se i settori che lo compongono sono più di uno.

(fig1)

clusterhard-disk

Se nel nostro hard disk i file vengono frammentati possiamo avere un decadimento delle prestazioni. In windows è presente l’utility defrag per riorganizzare i blocchi, in Gnu\Linux questo processo è molto ridotto,  l’esigenza di riunire i blocchi è meno rilevante, per le prestazioni del sistema.

 L’albero dei file ed il Filesystem Hierarchy Standard

In un sistema unix-like,come Gnu\Linux, l’albero delle directory è unico: non troveremo quindi dei volumi come possiamo trovare in Windows.
All’avvio il kernel “monta” la directory radice dell’albero (ved figura 2), tutti le restanti periferiche ,verranno poi montati in opportune sotto directory della radice.

 

Diretory Contenuto
/bin
/boot
/dev
/etc
/lib
/media
/mnt
/opt
/run
/sbin
/srv
/tmp
/usr
/var
comandi essenziali.
file statici necessari al bootloader.
file di dispositivo.
file di configurazione della macchina.
librerie essenziali e moduli del kernel.
mount point per dispositivi rimovibili.
mount point montaggi temporanei.
pacchetti software addizionali.
dati di run-time volatili.
comandi di sistema essenziali.
dati per i servizi forniti dal sistema.
file temporanei.
gerarchia secondaria.
dati variabili.

 

/boot   Contiene tutti i file necessari al procedimento di boot (immagini del kernel, del bootloader, ramdisk, ecc.)

/dev    Contiene i file di dispositivo, che permettono l’accesso alle periferiche. Il contenuto è nella maggior parte dei casi generato dinamicamente ed è montata su un    filesystem temporaneo che viene popolato in fase di avvio tramite udev.

/etc      Contiene i file di configurazione del sistema e gli script di avvio. Non deve contenere programmi binari e non pu` stare su un filesystem diverso da quello della radice.

/home  Contiene le home directory degli utenti.

/lib        Contiene le librerie condivise essenziali, usate dai programmi di /bin e /sbin, e deve essere sullo stesso filesystem della radice.

/media Contiene i mount point per i dispositivi rimovibili, come CDROM, floppy, chiavette USB, dischi USB o Firewire, ecc.

/mnt      Contiene i mount point per i montaggi temporanei ad uso dell’amministratore di sistema.

/opt       Contiene eventuali pacchetti software aggiuntivi. Può essere su qualunque filesystem. Un pacchetto deve installarsi nella directory /opt/package dove package e` il nome del pacchetto. All’amministratore è riservato l’uso di alcune directory opzionali: /opt/bin,  /opt/doc, /opt/include, /opt/info, /opt/lib e /opt/man. File variabili attinenti ai    suddetti pacchetti devono essere installati in /var/opt ed i file di configurazione in /etc/opt, nessun file attinente ai pacchetti deve essere installato al di fuori di queste   directory.

/proc  E’ il mount point standard del filesystem virtuale proc. Questo è un filesystem speciale che permette di accedere a tutta una serie di variabili interne al kernel (relative a parametri e impostazioni di tutti tipi) con l’interfaccia dei file.

/root    E’ la home directory dell’amministratore. Di norma la si mantiene nello stesso filesystem  della radice; il suo uso è opzionale ma questa è la collocazione consigliata.

/run     Presente solo nelle distribuzioni più recenti, viene utilizzata per mettere a disposizione fin dall’avvio una directory su cui viene montato un filesystem temporaneo e su cui  sono mantenuti i cosiddetti dati di run-time volatili.

/sbin    Contiene i programmi essenziali ad uso dell’amministratore del sistema (come init o fsck). Deve stare sullo stesso filesystem della radice. Vanno messi in questa directory solo i programmi essenziali per l’avvio del sistema, il recupero e la manutenzione dei filesystem.

/srv       E’ stata introdotta per mantenervi i dati relativi ai vari servizi che possono essere stati installati su una macchina (come ad esempio le pagine servite da un web server) che . L’architettura di un sistema GNU/Linux in precedenza venivano installati direttamente sotto /var. Non ne è definita una ulteriore suddivisione, ma in genere si tende a creare una sottodirectory per ciascun servizio (ad esempio www, svn, ecc.).

/tmp     La directory viene usata per mantenere file temporanei. Viene cancellata ad ogni riavvio, ed i programmi non devono assumere che i file siano mantenuti fra due esecuzioni successive.

/usr   E’ la directory principale che contiene tutti i programmi i file ed i dati non variabili, che possono anche essere condivisi fra pi` stazioni di lavoro. Può essere montata su un filesystem separato rispetto a / e può essere montata in sola lettura. Prevede una ulteriore gerarchia di directory in cui i vari file vengono organizzati; lo standard
richiede obbligatoriamente le seguenti:

  • bin contiene i programmi usati dall’utente installati direttamente dal sistema (o dalla distribuzione originale). Non pu` essere ulteriormente suddivisa.
  • include contiene tutti i file di dichiarazione delle funzioni di libreria usati dal compilatore e dai programmi C e C++
  • lib contiene le librerie, file oggetto e binari relative ai programmi di bin e sbin. Può contenere sottodirectory con tutti i file relativi a singoli programmi.
  • local contiene una replica della gerarchia di /usr dedicata ai file installati localmente dall’amministratore. In genere qui vengono installati i programmi compilati dai sorgenti e tutto quello che non fa parte della distribuzione ufficiale.
  • sbin contiene i programmi per la gestione di sistema ad uso dell’amministratore non essenziali all’avvio.
  • share contiene una gerarchia in cui sono organizzati tutti i file e i dati che non dipendono dall’architettura hardware: sono sempre obbligatori man per le pagine di manuale, e misc; se installati vi possono trovare anche una serie di altre directory come: dict per i dizionari, doc per la documentazione, games per i dati statici dei giochi, info per i file del relativo sistema di help , terminfo per il database con le informazioni sui terminali, zoneinfo per i dati relativi ai fusi orari (per l’elenco completo si consulti il sito citato). Deve essere posto dentro misc tutto quello che non viene classificato nelle altre directory opzionali. Mentre sono obbligatorie solo se i relativi pacchetti sono installati, le seguenti directory.

/var  Contiene i file variabili: le directory di spool, i file di log, i dati transienti e temporanei,in modo che /usr possa essere montata in sola lettura. E preferibile montarla in un
filesystem separato; alcune directory non possono essere condivise. Anche in questo caso i file sono organizzati in una ulteriore gerarchia standardizzata che prevede la
presenza delle seguenti sottodirectory:

  • cache dati di appoggio e memorizzazione temporanea per le applicazioni.
  • lib informazioni di stato e dati delle applicazioni.
  • local dati variabili relativi ai pacchetti di /usr/local.
  • lock file di lock, se si usa /run è un collegamento simbolico a /run/lock.
  •  log file di log delle applicazioni.
  • opt file variabili per i pacchetti di /opt;
  • spool directory per le code contenenti i dati in transito delle applicazioni (lavori di stampa, posta elettronica, ecc.);
  • tmp file temporanei non cancellati al riavvio del sistema.

a queste si aggiungono tradizionalmente altre directory, come /var/backups, /var/cron, ecc. non indicate dallo standard.

Maggiori dettagli: documento ufficiale di definizione del FHS, disponibile all’indirizzo http://www.pathname.com/fhs/.

questo è un riassunto grafico:

(fig2)

filesystem-standard

 

Alcune analogie Windows Gnu\Linux

RisorseDelComputer computer
Risorse del Computer Windows  Computer Gnu\Linux Mint

 

disco c win file-systemOS
Contenuto disco C:\ in Windows  Contenuto File System

 

Programmi etc
Cartella Programmi Windows.   Cartella delle configurazioni dei programmi “etc”

 

utenti win2 home
Cartella Utenti.  Cartella Home

Alcune differenze pratiche fra Windows e Linux nella gestione dei file.

attributi-win nascosto
Dalle proprietò del file se è presente un flag in “Nascosto” ilfile non viene visualizzato se non è attivato il visualizzafile nascosti. Se il file inizia con un punto,questo viene nascosto. Significache se non è attivato il visualizza file nascosti non vedremo il file.

 

estenz-win estenz.lin
Le estenzione del file determina quale programma verrà utilizzato per il suo utilizzo. Es: nome.pdf verrà utilizzatoacrobat reader per visualizzarlo.

Linux riconosce i tipi di file usando il ‘magic number’, vale adire una sequenza di byte presente all’inizio del file. Così, adesempio, se all’inizio del file la sequenza ‘0xffd8’,file in questione è un’immagine in formato jpeg,

a prescindere dall’estensione che può avere.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *