Comprendre GNU/Linux (ou du moins savoir trouver l'information technique)

Quoi?

En avril dernier, après avoir accompli un stage de neuf mois au près de la société Mandrakesoft, je me suis mis en tête de comprendre les bases du fonctionnement de GNU/Linux et d'établir une page de mon Intelligent Summer exposant les ressources qui m'ont été les plus utiles.

Pourquoi?

En tant qu'ancien chef de produit pour la société Mandrakesoft, éditrice du système d'exploitation Mandrakelinux (une version modifiée de GNU/Linux, concurrent de Microsoft Windows), je me dois de savoir utiliser ce système. Ou du moins de savoir où trouver l'information technique sur ce sujet. L'objectif étant pour moi de: Ma première piste fut de constituer un système propre à l'école Tema, du moins "from scratch" (sans base applicative, ou plus crument "basé sur rien"). Mais n'étant pas technicien, je ne pouvais me hasarder dans ce développement que je ne pourrais pas maintenir à jour. Toutefois, cela est possible à la lecture de l'excellent livre LFS ("Linux From Scratch"). Les inconvénients majeurs liés à faire une version de Linux à partir de rien sont les suivants: J'avais donc besoin d'une version déjà existante de GNU/Linux pour accéder à une documentation conséquente.

Comment?

Pour cela, je me suis intéressé aux différentes distributions (c'est-à-dire "version de") GNU/Linux, en essayant de trouver la plus didactique. Celle qui me permettrait d'apprendre le plus. Je commencais tout naturellement par une approche avec Mandrakelinux.

Mandrakelinux

Mandrakelinux est la version la plus conviviale de GNU/Linux. Elle a pour objectif de rendre le système accessible aux débutants, notamment pour les usages les plus courant (bureautique, communication, etc.). Dans cette optique, Mandrakelinux est optimisée pour le profane. Mandrakelinux dispose d'une documentation librement téléchargeable relativement simple et construite autour du thème "comment réaliser telle ou telle action?". Afin de comprendre GNU/Linux, je devais baser mon travail sur une documentation non seulement conséquente, mais portée sur la technique (le fond) et non sur l'ergonomie (la forme). Anecdote: Du fait de mon ancien poste, j'ai pu contribuer à cette documentation. Mon nom y figure donc dans les remerciements.

Linux From Scratch

Linux From Scratch est une documentation purement technique des opérations à réaliser pour obtenir un système GNU/Linux fonctionnel et correspondant aux attentes du lecteur. LFS est conséquent, mais répétitif: la construction devient très vite une suite de compilations manuelles des programmes et s'avère est un processus très long. Le processus laisse si peu de marge de manoeuvre que l'on regrette que toutes les opérations rébarbatives ne soient pas automatisées. Toutefois, je recommande au lecteur interessé de prendre connaissances du chapitre suivant, très instructifs: Explication du modèle de chargement des processus de démarrage (Que se passe-t-il avant l'apparation du bureau et pourquoi?).

Gentoo

Conseillé par la communauté GNU/Linux francophone, j'ai porté mon choix sur la distribution Gentoo. Gentoo est un compromis harmonieux entre une distribution basée uniquement sur des sources (telle que LFS) et une distribution basée sur des binaires (telle que Mandrakelinux. Les binaires sont des sources déjà compilées). Les binaires sont plus simples d'installation mais par définition plus lents et représentent une solution de facilité par rapport aux sources: Installer un .rpm (équivalent du setup.exe Windows) ne permet pas d'en apprendre plus sur GNU/Linux. Gentoo est comparable à une LFS automatisée: les compilations se font sur simple demande de l'utilisateur. Par exemple, grâce à la commande suivante : emerge mozilla ... Gentoo recherche les codes sources du logiciel nommé "Mozilla" et les compile de lui même. Gentoo se révele disposer d'un forum très actif, regorgeant de ressources utiles. La documentation officielle conséquente ainsi que le manuel d'installation représentent une mine d'information d'une qualité rare. Ces documents sont disponibles en français, toutefois la connaissance de la langue anglaise est nécessaire pour les forums. A titre indicatif, je recommande la lecture du passage "Comprendre la terminologie réseau", qui permet de comprendre le role d'une adresse ip, comment se construit un reseau, etc. Ce passage est notamment un bon apport au cours "Fundamentals of Computing" enseigné à Tema.

Le gros problème

L'installation en elle-même d'un système GNU/Linux sur un ordinateur portable Samsung V20 (modèle utilisé par la majorité de la promotion Tema2005) n'est pas problématique. L'ensemble du matériel est reconnu et pleinement géré, à la seule exception cependant de... la gestion de la batterie.

D'où provenait le problème?

Grâce aux lectures précédemment citées, j'ai appris qu'une batterie contient ce que l'on appelle "une table d'allocation". Celle-ci permet à la batterie de dialoguer avec l'ordinateur et d'indiquer en temps réel le niveau d'utilisation. C'est un protocole standardisé de communication. "Standardisé" signifie ici qu'existent des spécifications et des normes qui sont rendues publiques et que les constructeurs de matériel respectent généralement dans un but d'interopérabilité. Malheureusement le constructeur Samsung a, par moment, dérogé à ces specifications. Leurs gestions par Microsoft étant permissives, les utilisateurs de Microsoft Windows ne se rendent pas compte que la table d'allocation de leur batterie est mal construite: Les informations indiquée sur la gauge de batterie peuvent être erronées.

Comment résoudre le problème

Afin d'obtenir un affichage de ma gauge de batterie sous GNU/Linux, j'ai du corriger ma table d'allocation et recompiler mon noyau Linux. Ma table d'allocation corrigée est disponible en ligne. Encore faut-il savoir utiliser ces fichiers. Le forum de Gentoo nous vient en aide grâce à ce tutoriel, expliquant à la fois "comment corriger une table d'allocation" (déjà fait dans notre cas) et "comment l'utiliser". D'autre part, la page personnelle de Frédéric Parrenin détaille, en anglais l'installation de GNU/Linux sur un ordinateur portable Samsung V20.

D'autres problèmes?

Je n'ai à l'heure actuelle expérimenté aucun problème avec ma distribution Gentoo GNU/Linux. Toutefois, la gestion de la batterie est un bon exemple de l'apport de cette expérience: je suis désormais capable de résoudre un problème purement technique en naviguant au milieu de la documentation technique. Autrement dit, je suis désormais capable de lire des spécifications et ainsi de "justifier mon argumentation lorsque je négocie une dead-line avec les développeurs". A titre personnel, l'objectif concernant cette partie de mon Intelligent Summer est atteint.
Informations complémentaires

Pourquoi cette partie ?

Suite à mon stage de troisième année, le système GNU/Linux est devenu pour moi une passion à laquelle j'ai consacrée beaucoup de mon temps. L'apprentissage de la lecture des spécifications, et autres manuels peut évoquer la maxime "apprendre à apprendre", slogan actuel de l'école Tema.

Pourquoi dire "GNU/Linux" ?

...Et pas tout simplement "Linux" ? Car Linux est le nom du noyau du système GNU/Linux. Comme kernel32.dll est le noyau du système Microsoft Windows. Par l'appellation GNU/Linux, on désigne l'ensemble du noyau Linux et des outils libres (GNU) qui l'entoure. Sans GNU, "Linux" seul ne servirait à rien.