Attualmente l’albero delle directory nel filesystem dei sistemi Linux è così organizzato
$ tree -d -L 1 /
/
├── bin Contiene comandi che possono essere usati sia da root che da user o indirettamente usati dagli script.
├── boot Contiene dati richiesti per il boot del sistema.
├── dev Contiene file speciali per i dispositivi.
├── etc Contiene file di configurazione per il controllo dei programmi; statici e non eseguibili.
├── home Contiene file specifici di configurazione di programmi sulla base delle preferenze dell'utente.
├── lib Contiene lbrerie condivise necessarie al boot del sistema ed all'avvio di comandi come root.
├── lib64 Contiene lbrerie condivise necessarie al boot del sistema ed all'avvio di comandi come root.
├── media Contiene sottodirectory di montaggio dei supporti rimovibili.
├── mnt Usata dall'amministratore per il montaggio temporaneo di filesystem.
├── opt Riservata per l'installazione di software aggiuntivo.
├── proc Usato per la gestione dei processi e delle informazoni di sistema
├── root Home directory per il superuser root
├── run
├── sbin Le utility dell'amministratore sono contenute nella directory /sbin, /usr/sbin, /usr/local/sbin. /sbin contiene file binari per l'avvio, il ripristino, il recupero, la riparazione del sistema in aggiunta a quelle contenute in /bin. I programmi eseguiti dopo /usr sono montati e contenuti in /usr/sbin; i programmi eseguiti dall'amministratore di sistema in locale sono contenuti i /usr/local/sbin.
├── srv Dati dei servizi forniti dal sistema
├── sys
├── tmp Contiene i file temporanei dei programmi che lo richiedono
├── usr
└── var Contiene file di dati variabili; spool directory, dati d'amministrazione e di login, file temporanei.
in particolare la directory /usr:
$ tree -d -L 1 /usr
/usr
├── bin Directory principale che contiene i comandi d'amministrazione di sistema
├── etc
├── games
├── include File per C (programming language)
├── lib Contiene file oggetto, librerie non destinati ad essere eseguiti direttamente da script o da utenti
├── lib64
├── libexec
├── local vedi /usr/share
├── sbin File binari non essenziali usati esclusivamente dall'amministratore di sistema
├── share File dati solo leggibili
├── src Contiene file sorgente
└── tmp -> ../var/tmp
Per Fedora 17 si sta lavorando al riordino della gerarchia delle sottodirectory /usr; quasi l’intero sistema di pacchetti installati risiederà nella /usr principale montata in sola lettura mentre il roofs conterrà link simbolici verso i file contenuti nell’albero di /usr.
Graficamente sarebbe:
/
|-- etc
|-- usr
| |-- bin
| |-- sbin
| |-- lib
| `-- lib64
|-- run
|-- var
|-- bin -> usr/bin
|-- sbin -> usr/sbin
|-- lib -> usr/lib
`-- lib64 -> usr/lib64
Vantaggi per Fedora
Layout di filesystem più semplice e pulito, con piena compatibilità
Chiara separazione di risorse specifiche tra sistema operativo e host
Migliore compatibilità possibile, nessuna confusione sulle locazioni degli strumenti di installazione, nessun $PATH fiddling, tutti i possibili percorsi ad un binario funzioneranno sempre.
Obiettivo
La possibilità di condividere /usr è utile soprattutto a macchine virtuali e cluster.
La possibilità di montare /usr in sola lettura (p.e. su supporti in sola lettura) può aggiungere sicurezza alla macchina
L’intera /usr può essere sicuramente “fotografata” (snapshot) durante gli upgrade.
Pagina ufficiale della feature: https://fedoraproject.org/wiki/Features/UsrMove
