Mi pare mooolto intelligente! http://www.gobolinux.org/ http://www.gobolinux.org/index.php?page=at_a_glance GoboLinux in breve Cos'è GoboLinux? GoboLinux è una distribuzione Linux modulare che organizza il sistema in maniera nuova, più logica e intuitiva. Anziché essere sparse tra /usr/bin, /etc o /usr/share/ancora/un/altro, le componenti di un programma sono installate ciascuna nella propria cartella, mantenendole nettamente separate /e permettendoti di sapere facilmente quali programmi sono installati e a quale programma appartengono determinati file. Questo è quello che puoi vedere dalla root di un sistema GoboLinux: ~] cd / /] ls Programs Users System Files Mount Depot In /Programs risiedono tutti i programmi. Non ci sono eccezioni. Puoi controllare cosa hai installato guardando il suo contenuto: /] cd /Programs /Programs] ls AfterStep E2FSProgs Htop NTP Subversion ALSA-Driver Ed HTTPD OpenOffice Sudo ALSA-Lib Eject Hydrogen OpenSSH Swfdec ALSA-OSS Elinks IBM-Java2 OpenSSL Synaptics ALSA-Utils Ethereal ID3Lib Pango SysFSUtils Ardour Expat IEEE80211 Patch Sysklogd Audacity File IMLib2 Perl TCL Aumix Firefox InetUtils Pkgconfig TeTeX Autoconf Flac Intltool PodXTPro Texinfo Automake Flex IpodSlave Popt TIFF Bash Fontconfig Iptables PPP TiMidity++ ... ... ... ... ... Ogni cartella contiene tutti i file di un determinato programma, memorizzati in una sottocartella etichettata per numero di versione. /Programs] find Bash Bash Bash/3.0 Bash/3.0/bin Bash/3.0/bin/sh Bash/3.0/bin/bash Bash/3.0/bin/bashbug Bash/3.0/info Bash/3.0/info/bash.info Bash/3.0/man Bash/3.0/man/man1 Bash/3.0/man/man1/bash.1 ... Più versioni dello stesso programma possono essere installate simultaneamente, così da poterle alternare a piacimento o usarle tutte contemporaneamente se necessario. /Programs] ls -l OpenOffice total 8 drwxr-xr-x 9 root root 4096 2005-09-22 01:07 1.1.4 drwxr-xr-x 3 root root 4096 2005-09-23 04:36 2.0 lrwxrwxrwx 1 root root 5 2005-09-23 04:36 Current -> 2.0 /Programs] ls -l GTK+ total 12 drwxr-xr-x 10 root root 4096 2005-10-02 01:39 1.2.10 drwxr-xr-x 9 root root 4096 2005-08-21 05:48 2.6.7 lrwxrwxrwx 1 root root 6 2005-10-02 01:39 Current -> 2.6.7 drwxr-xr-x 4 root root 4096 2005-10-02 01:39 Settings Com'è possibile tutto questo? Il filesystem non viene usato solo per memorizzare in maniera ordinata i programmi, ma anche per indicizzare i file per categoria in maniera tale che il sistema possa trovare quelli necessari senza dover cercare tra centinaia di programmi. In GoboLinux tutto ciò viene realizzato mediante una serie di cartelle contenenti dei collegamenti simbolici, i quali puntano ai file veri e propri. In questo modo puoi anche capire facilmente "a quale pacchetto appartiene il file XYZ". /System/Links/Libraries] ls -l | cut -b 49- ... libgtk-1.2.so.0 -> /Programs/GTK+/1.2.10/lib/libgtk-1.2.so.0.9.1 libgtk-1.2.so.0.9.1 -> /Programs/GTK+/1.2.10/lib/libgtk-1.2.so.0.9.1 libgtk.a -> /Programs/GTK+/1.2.10/lib/libgtk.a libgtk.la -> /Programs/GTK+/1.2.10/lib/libgtk.la libgtk.so -> /Programs/GTK+/1.2.10/lib/libgtk-1.2.so.0.9.1 libgtk-x11-2.0.la -> /Programs/GTK+/2.6.7/lib/libgtk-x11-2.0.la libgtk-x11-2.0.so -> /Programs/GTK+/2.6.7/lib/libgtk-x11-2.0.so.0.600.7 libgtk-x11-2.0.so.0 -> /Programs/GTK+/2.6.7/lib/libgtk-x11-2.0.so.0.600.7 libhfs.a -> /Programs/CDRTools/2.01/lib/libhfs.a libhistory.a -> /Programs/Readline/5.0/lib/libhistory.a libhistory.so -> /Programs/Readline/5.0/lib/libhistory.so.5.0 libhistory.so.5 -> /Programs/Readline/5.0/lib/libhistory.so.5.0 ... Il sistema è quindi configurato in modo da usare questi indici per la ricerca di file: ~] cat /etc/ld.so.conf /System/Links/Libraries ~] echo $PATH /System/Links/Executables ... Troverai indici per tutte le principali categorie di file nel sistema: eseguibili, librerie, headers, dati condivisi, manuali e così via. L'indicizzazione è ricorsiva, in questo modo se un gruppo di programmi condivide la medesima cartella per memorizzare un certo tipo di file, ogni programma otterrà i propri indici automaticamente. Ovvero, una nuova cartella sarà creata in /System/Links/Shared, e questa conterrà dei collegamenti simbolici alle cartelle condivise appartenenti ai singoli programmi (un esempio è /System/Links/Shared/aclocal, contenente i file relativi alla cartella aclocal di ogni programma che ne fa uso). Un'altra importante proprietà che deriva dall'indicizzazione tramite collegamenti simbolici è che i riferimenti a file non esistenti divengono automaticamente collegamenti non validi, quindi inattivi. Questo rende semplice l'individuazione e la risoluzione di problemi e, cosa più importante, assicura che l'indice corrisponda sempre all'attuale stato funzionante del sistema. Di' pure addio al vecchio problema del gestore di pacchetti che si lamenta perché la libreria libXYZ non risulta installata anche se il file è presente. Se il collegamento è valido il file esiste nel sistema, e viceversa. E la compatibilità Unix? La struttura di GoboLinux sembra distaccarsi molto dalla tradizione Unix. Questo significa forse che tutti i programmi devono essere corretti per adattarsi alla nuova struttura? Fortunatamente, la risposta è no. Attraverso una corrispondenza tra i percorsi tradizionali e le loro controparti in Gobolinux, possiamo mantenere la compatibilità con Unix in maniera del tutto trasparente. ~] ls -l /dev/null | cut -b 45- /dev/null ~] ls -l /bin/sh | cut -b 45- sh -> /Programs/Bash/3.0/bin/bash ~] ls -l /usr/include/stdio.h | cut -b 45- stdio.h -> /Programs/Glibc/2.3.6/include/stdio.h Nulla di particolarmente difficile: /bin è un collegamento a /System/Links/Executables. E lo stesso vale per /usr/bin. E per /usr/sbin... tutte le directory "binarie" puntano nello stesso luogo. Ironicamente, /questo ci rende addirittura più compatibili di alcune distribuzioni classiche. In GoboLinux, i percorsi standard funzionano per qualsiasi file, /mentre altre distribuzioni potrebbero dover far i conti con incompatibilità come il malfunzionamento di alcuni script qualora questi facciano /riferimento a /usr/bin/foo mentre il file risiede in realtà in /usr/local/bin/foo. Potresti aver notato dal primissimo esempio che i percorsi standard Unix non sono visibili nella root di sistema. In realtà ci sono, ma sono nascosti alla vista usando l'estensione del kernel GoboHide. Questo è tuttavia un vezzo puramente estetico e del tutto opzionale: GoboLinux non necessita di alcuna modifica al kernel od a qualsiasi altro componente di sistema. Ma i nostri utenti sembrano gradire molto questa possibilità :-) Ancora! Un tour online può accompagnarti solo fin qui. Non esiste niente di meglio che "toccare con mano": GoboLinux è convenientemente distribuita come Live CD, permettendoti di esplorare i pro e i contro del sistema eseguendolo direttamente da CD, anche prima di installarlo sul tuo pc. Scarica l'immagine cd e divertiti -- se sei un nuovo arrivato, troverai probabilmente la nuova struttura più confortevole; se invece sei un utente navigato, gradirai certamente il maggior controllo che un sistema più modulare e trasparente può offrirti. bye -- Marco Ciampa +--------------------+ | Linux User #78271 | | FSFE fellow #364 | +--------------------+ -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx