|
|
GoboLinux d'un coup d'oeilTraducteur: Marc FALZON Qu'est-ce que GoboLinux ?GoboLinux est une distribution Linux modulaire : elle organise les programmes de votre système d'une nouvelle manière logique. Au lieu d'avoir des bouts d'un programme jetés dans /usr/bin, d'autres bouts dans /etc et encore d'autres /usr/share/quelquechose/ou/autrechose, chaque programme possède sa propre arborescence de répertoires, les gardant tous bien séparés et vous permettant de voir tout ce qui est installé sur le système et quels fichiers appartiennent à quels programmes d'une manière simple et évidente. Voici ce que vous voyez à la racine d'un système GoboLinux : ~] cd / /] ls Programs Users System Files Mount Depot /Programs est l'endroit où tous les programmes résident. Sans exceptions. Vous pouvez explorer ce qui est installé sur le système en regardant à l'intérieur : /] 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++ ... ... ... ... ... Chaque entrée d'un programme contient tous les fichiers pour ce programme, stockée dans un sous-répertoire versionné.
/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
...
Plusieurs versions d'un programme peuvent être maintenues ensemble simultanément, vous permettant d'alterner entre elles si vous le désirez ou encore d'en utiliser plusieurs en même temps quand c'est nécessaire. /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 Comment cela peut-il fonctionner ?Parce que nous utilisons le système de fichiers pour stocker les programmes de manière organisée, nous l'utilisons aussi pour indexer les fichiers par catégorie ainsi le système peut trouver un fichier sans scanner des centraines d'entrées de programme. Dans GoboLinux, ceci est réalisé avec une série de répertoires contenant des liens symboliques pointant sur les fichiers réels ; notez également comment ceci vous donne une vue pratique de "à quel paquet appartient le fichier 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 ... Le système est configuré pour utiliser ces indices quant il cherche des fichiers : ~] cat /etc/ld.so.conf /System/Links/Libraries ~] echo $PATH /System/Links/Executables ... Vous trouverez des indices pour toutes les principales catégories de fichiers du système : exécutables, bibliothèques, en-têtes, fichiers de données partagés, manuels, et ainsi de suite. L'indexation est récursive, ainsi si une série de programmes partagent une définition de répertoire pour stocker un certain type de fichier, ils auront automatiquement leur propre index aussi (/System/Links/Shared/aclocal en est un exemple). Une autre propriété importante de l'indexation basée sur des liens est que toute référence à un fichier inexistant devient automatiquement un lien brisé, et donc inactif : ceci rend plus facile à remarquer et corriger les problèmes et, plus important, s'assurer que l'index est toujours synchronisé avec l'état fonctionnel du système. Dites "au revoir" au vieux problème d'avoir un gestionnaire de paquets qui se plaint que la libXYZ n'est pas installée alors que vous savez qu'elle est là. Si c'est fonctionnel dans l'index des liens, c'est fonctionnel dans le système, et vice-versa. Mais à propos de la compatibilité avec UNIX ?Le système de disposition de GoboLinux semble être une divergence majeure depuis la tradition UNIX. Est-ce que cela signifie que tous les programmes nécessitement d'être modifiés pour fonctionner selon cette nouvelle disposition ? Heureusement, la réponse est non. À l'aide d'un mappage des chemins traditionnels dans leur emplacement GoboLinux, nous maintenons d'une manière transparente la compatibilité avec l'héritage UNIX. ~] 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 Il n'y a aucune science infuse à cela : /bin est un lien vers /System/Links/Executables. Et en fait, il en va de même pour /usr/bin. Et /usr/sbin... tout les répertoires "de binaires" redirigent au même endroit. Curieusement, cela nous rend encore plus compatibles que d'autre distributions plus standardisées. Dans GoboLinux, tous les chemins standard fonctionne avec tous les fichiers, tandis que les autres distributions luttent avec des incompatibilités tels que des scripts qui plantent car ils font référence à un fichier dans /usr/bin alors qu'il se trouve en réalité dans /usr/local/bin/. Vous avez remarqué que les chemins UNIX ne sont pas apparus dans le listage de la racine du système dans notre tout premier exemple. En réalité ils sont bien là, mais ils sont masqués de la vue en utilisant l'extension noyau GoboHide : ceci est purement à but esthétique et est donc optionnel, bien que GoboLinux ne nécessite aucune modification dans le noyau ni dans aucun composant du système. Notre utilisateur semble en avoir un tas :-) Encore !Un tour d'horizon en ligne ne peut pas vous en dire beaucoup. Il n'y a pas de meilleure façon d'en savoir plus que d'essayer vous-même : GoboLinux est conventionnellement distribué en liveCD, ainsi vous pouvez explorer les coins et recoins du système en action directement sur le CD avant même de l'installer sur votre disque sur. Téléchargez une image du CD et éclatez-vous. Si vous êtes un nouveau venu vous trouverez probablement la structure plus organisée et donc plus confortable ; si vous êtes un utilisateur avancé, vous apprécierez certaintement le contrôle plus fin qu'un système plus modulaire et transparent vous procure. |