Richard Stallman et la révolution du logiciel libre - Une biographie autorisée
Chapitre
10
GNU/Linux
2009-11-25 / 2010-01-18


En 1993, le mouvement du logiciel libre en était à la croisée des chemins. Pour les optimistes, tous les signes semblaient indiquer le succès de la culture « hacker ». Wired1, un nouveau magazine branché dans lequel on pouvait lire des articles sur le chiffrement des données, Usenet ou encore la liberté des logiciels, faisait un malheur dans les rayons de la presse informatique.
L’Internet, terme argotique qui avait été tout d’abord l’apanage des hackers et des scientifiques, avait fini par trouver sa place dans le dictionnaire courant. Même le président Clinton l’utilisait. L’ordinateur personnel, au départ simple jouet réservé aux amateurs, avait acquis ses lettres de noblesse, donnant à toute une nouvelle génération d’utilisateurs accès aux logiciels conçus par les hackers. Et si le projet GNU n’avait pas encore atteint son objectif de fournir un système d’exploitation libre complètement opérationnel, il était déjà possible d’essayer sa variante GNU/Linux.
Quelle que soit la façon d’aborder les choses, les nouvelles étaient bonnes, du moins en apparence. Après dix années de lutte, les hackers et leurs valeurs finissaient par faire école au sein du grand public. Des valeurs que les gens finissaient, semblait-il, par comprendre peu à peu.
Mais était-ce vraiment le cas ? À chaque signe positif, les pessimistes voyaient, quant à eux, une contrepartie inquiétante.
Certes, être un hacker était soudain à la mode, mais était-ce une bonne chose que d’être à la mode pour une communauté construite dans la marginalité ? Certes, la Maison Blanche ne tarissait pas d’éloges au sujet de l’Internet, jusqu’à avoir créé son propre nom de domaine, whitehouse.gov, mais il y avait aussi les entreprises, les comités de censures et les représentants de l’exécutif qui n’attendaient qu’une chose : soumettre ce territoire indompté qu’était alors la culture Internet. Certes, les PC avaient gagné en puissance, mais en inondant le marché de ses puces, Intel avait favorisé la mainmise des marchands de logiciels non libres.
Pour chaque utilisateur gagné à la cause du logiciel libre grâce à GNU/Linux, des centaines, voire des milliers, faisaient leur premiers pas sous Microsoft Windows. En effet, les interfaces graphiques de GNU/Linux étant alors des plus rudimentaires, l’emploi de ce système était peu aisé. En 1993, seuls les spécialistes pouvaient l’utiliser. Les premières tentatives du projet GNU visant à développer une interface graphique n’avaient encore jamais abouti.
Quant au contexte politique du moment, il n’était guère favorable. L’application de droits d’auteurs aux interfaces utilisateur constituait encore une réelle menace – l’idée n’ayant pas encore été déboutée en justice. Parallèlement, les brevets portant sur les algorithmes et les fonctions représentaient un danger croissant, menaçant de s’étendre à d’autres pays.
Enfin, il y avait l’étrange nature de GNU/Linux lui-même. Non entravée par des désaccords juridiques (comme c’était le cas pour BSD), son évolution extrêmement rapide avait été si inattendue, son succès si imprévu, que les programmeurs les plus impliqués dans son développement ne savaient finalement pas quoi en faire.
Ressemblant davantage à un recueil de morceaux choisis qu’à un projet unifié, c’était une sorte d’anthologie hacker qui contenait tout, de GCC, GDB et Glibc (la toute nouvelle bibliothèque C du projet GNU) à X (une interface graphique inspirée d’Unix développée par le Laboratoire de sciences informatiques du MIT), en passant par des outils créés par le projet BSD comme Bind2 (Berkeley Internet Naming Daemon, système DNS permettant de remplacer les nombres des adresses IP par des noms de domaines faciles à mémoriser) et une pile TCP/IP.
À tout cela s’ajoutait le noyau Linux, lui-même conçu pour remplacer Minix. Torvalds et son équipe toujours plus nombreuse, plutôt que de développer un tout nouveau système d’exploitation, avaient greffé leur travail à ce gisement GNU de départ. C’est cela qu’exprimerait Torvalds plus tard, évoquant son propre succès : « Je suis en fait une personne très paresseuse, qui aime s’attribuer le travail d’autres personnes. »3
Une telle paresse, tout admirable qu’elle fût sous l’angle de la productivité, était gênante d’un point de vue politique. Avant tout, elle faisait ressortir l’absence de toute visée idéologique de la part de Torvalds. Contrairement aux développeurs du projet GNU, l’étudiant finlandais n’avait pas bâti son noyau par volonté d’offrir la liberté à ses confrères hackers. Il ne l’avait fait que pour avoir quelque chose avec quoi il pourrait lui-même s’amuser. Quelle était donc la nature de ce système mixte et à quelle philosophie serait-il rattaché ? Était-ce l’incarnation de l’esprit du logiciel libre explicité par Stallman au sein du Manifeste GNU ? Ou n’était-ce qu’un amalgame d’outils ingénieux que n’importe quel utilisateur, tout aussi motivé, aurait pu lui-même assembler sur son système maison ?






Fin 1993, le nombre des utilisateurs de GNU/Linux penchant pour la seconde définition et commençant à bricoler leurs propres variations sur le thème s’était considérablement accru. Diverses « distributions » furent ainsi développées et diffusées, parfois gratuitement, parfois non, et avec des résultats on ne peut plus inégaux.
« C’était bien avant Red Hat et les autres distributions commerciales, se souvient Ian Murdock, alors étudiant en informatique à l’université de Purdue. Vous n’aviez qu’à feuilleter un magazine Unix pour trouver toutes sortes de petits encarts publicitaires proclamant ‘Linux’. La plupart de ces compagnies couvraient en fait des opérations douteuses, et ne se gênaient pas pour glisser un peu de leur code maison [non libre] dans le mélange. »
Murdock, qui était un programmeur Unix, se souvient avoir été « emballé » par GNU/Linux après l’avoir téléchargé et installé sur son PC pour la première fois. « C’était si excitant, dit-il, que cela m’a donné envie de m’impliquer ». Mais l’explosion des distributions de mauvaise qualité refroidit son enthousiasme naissant. Décidant alors que la meilleure façon de s’impliquer était de créer une version débarrassée de tout additif, il entreprit de recenser tous les meilleurs logiciels libres disponibles, dans l’intention de les intégrer à sa propre distribution. « Je voulais faire quelque chose qui soit à la hauteur de la réputation de Linux », déclare-t-il.
Afin « d’éveiller un intérêt », Murdock envoya un message avec ses intentions sur l’Internet, y compris auprès du groupe de discussion Usenet comp.os.linux. L’une des toutes premières réponses qu’il reçut émanait de rms@ai.mit.edu. Murdock reconnut l’adresse aussitôt. Il s’agissait de Richard M. Stallman, le fondateur du projet GNU, l’homme qu’il connaissait déjà comme « le hacker des hackers ». À la vue de cette adresse parmi ses courriels en attente, Murdock n’en revenait pas. Pourquoi Stallman, alors qu’il dirigeait son propre projet de système d’exploitation, pouvait-il bien s’intéresser à ses récriminations concernant les distributions « Linux » ?
Murdock ouvrit le message. « Il disait que la Free Software Foundation commençait à regarder Linux de près et qu’il se pourrait bien qu’elle soit aussi intéressée par créer un système Linux [sic]. En gros, Stallman avait l’air de penser que nos objectifs étaient compatibles avec leurs principes. »
Ce message représentait un tournant dans la stratégie de Stallman. Jusqu’en 1993, il s’était contenté de ne pas se mêler des affaires de la communauté Linux. Après avoir entendu parler pour la première fois de ce nouveau noyau, il avait demandé à un ami de vérifier s’il possédait les qualités requises. Ainsi se remémore-t-il les faits : « Il m’a rapporté que le programme était modelé sur System V, c’est-à-dire une version inférieure d’Unix. Il m’a dit aussi qu’il n’était pas portable. »
Le rapport de cet ami était correct. Conçu pour fonctionner sur des machines à base d’Intel 386, Linux était fortement lié à cette plate-forme bon marché. Ce que cet ami manqua de rapporter, en revanche, c’était l’énorme avantage du fait que Linux soit alors le seul noyau libre sur le marché. Autrement dit, tandis que Stallman allait passer l’année et demie suivante à lire les rapports d’activité du développeur de Hurd, dont la progression était plutôt lente, Torvalds ralliait les programmeurs qui porteraient ensuite Linux et GNU sur de nouvelles plates-formes.

Précision À propos de Hurd

Hurd est un double acronyme récursif signifiant « Hird of Unix-Replacement Daemons », et Hird : « Hurd of Interfaces Representing Depth ». De plus, comme l’explique Richard Stallman, la sonorité similaire entre Hurd et le mot « herd » (troupeau, en anglais), reflète bien l’idée d’un troupeau de programmes serveurs GNU, rassemblés autour du micro-noyau GNU Mach, et constituant ainsi la moitié supérieure du noyau du système GNU. Mach, quant à lui, fut développé à l’université de Carnegie Mellon entre 1985 et 1994. Après l’arrêt de son développement, le projet GNU en produisit une version modifiée : GNU Mach.
Le très ambitieux projet Hurd connut une histoire mouvementée, si bien que le souhait de voir naître une distribution complète du système GNU ne s’est toujours pas réalisé. De plus, GNU/Linux ayant fait plus que combler la principale faiblesse du projet GNU (le noyau manquant), le développement de Hurd s’en trouva d’autant plus retardé. Le projet Hurd se poursuit néanmoins aujourd hui et une version de Debian propose Hurd comme noyau à la place de Linux : Debian GNU/Hurd. Sur l’histoire de Hurd, on peut se référer à : http://www.gnu.org/software/Hurd/history.html. Pour en apprendre plus sur Mach : http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html.






En cette année 1993, l’incapacité du projet GNU à fournir un noyau fonctionnel entraînait de nombreux problèmes, aussi bien au sein même du projet que dans le mouvement du logiciel libre en général. Dans un article du magazine Wired paru au mois de mars, Simson Garfinkel décrivait le projet GNU comme s’étant « enlisé », en dépit du succès de ses nombreux outils4.
Les membres du projet et de l’institution sans but lucratif qu’était la Free Software Foundation se souviennent que l’atmosphère était encore pire que ne le laissait entendre l’article de Simson Garfinkel. « Il était très clair, pour moi au moins à cette époque, qu’il y avait une fenêtre ouverte pour l’introduction d’un nouveau système d’exploitation, témoigne Chassell. Et dès l’instant où celle-ci serait refermée, les gens s’en désintéresseraient. Et c’est exactement cela qui a fini par se produire. »5
Les difficultés du projet GNU durant la période 1990-1993 ont fait couler beaucoup d’encre. Tandis que certains blâment Stallman, Eric Raymond, un de ses vieux amis qui avait soutenu le projet GNU sans grand enthousiasme, affirme que le problème était en grande partie institutionnel. « La FSF est devenue arrogante, explique-t-il. Ils se sont écartés de leur but, qui était de faire un système d’exploitation fonctionnel, pour faire un système d’exploitation expérimental ». Pire encore : « Ils se croyaient hors d’atteinte de tout ce qui se passait en dehors d’eux-mêmes. »
Murdock porte un jugement moins sévère : « Je pense que le problème est qu’ils étaient un peu trop ambitieux et qu’ils ont dépensé de l’argent pour rien. Au tournant des années 1990, les micro-noyaux étaient à la mode. Malheureusement, c’est à ce moment que le projet GNU a commencé à concevoir son propre noyau. Il s’est donc créé un très gros bagage, et il aurait fallu beaucoup d’efforts pour revenir en arrière. »
Et Stallman de réagir : « L’arrogance perçue par Raymond est un pur fruit de son imagination. Par contre, il voit juste quant à l’une des causes du retard de Hurd : son développeur a repensé et récrit à plusieurs reprises des portions importantes du code, en fonction de ce qu’il avait appris, au lieu d’essayer de rendre le noyau opérationnel le plus rapidement possible. C’était une bonne habitude de conception, mais elle n’était pas adaptée à notre objectif d’obtenir quelque chose de fonctionnel le plus tôt possible. »
Stallman évoque encore d’autres raisons à ce retard. D’une part, les procès Lotus et Apple réquisitionnaient en grande partie son attention ; d’autre part, des douleurs à la main, en l’empêchant de se servir d’un clavier pendant trois ans, l’avaient tenu éloigné de la programmation. Il cite enfin la mauvaise communication entre les différentes parties du projet GNU. « Faire fonctionner l’environnement de débogage demandait un gros travail, se souvient-il. Et l’équipe qui maintenait GDB à l’époque n’était pas très coopérative. » Les développeurs de GDB avaient en effet donné la priorité au support des plates-formes existantes sur lesquelles tournait GDB, au lieu de se consacrer au but général : l’obtention d’un système GNU complet.
Mais surtout, Stallman reconnaît que lui et les développeurs de Hurd avaient foncièrement sous-estimé la difficulté d’étendre le micro-noyau Mach à un noyau Unix complet. « Je m’étais imaginé que la partie [de Mach] parlant avec la machine avait déjà été déboguée, raconte-t-il au cours d’un discours prononcé en l’an 2000, se souvenant des déboires de l’équipe de Hurd. Grâce à cette longueur d’avance, nous aurions dû pouvoir finir le travail plus vite. Mais au contraire, il est apparu que déboguer ces programmes asynchrones et multithreadés6 était vraiment difficile. Il y avait des bogues de synchronisation qui corrompaient les fichiers, et c’était vraiment l’enfer. Et au final, il a fallu de très nombreuses années pour obtenir une version de test »7 (voir encart ci-après).

Note À propos des bogues de synchronisation

Dans les courriels qui ont suivi ce discours, j’ai demandé à Stallman ce qu’il voulait dire exactement par « bogues de synchronisation » (timing bugs). Stallman expliqua que l’expression « erreurs temporelles » était plus exacte pour résumer le problème et fournit une explication technique de la manière dont ces erreurs temporelles peuvent gravement handicaper les performances d’un système d’exploitation : « Les erreurs temporelles se produisent dans un système asynchrone où des tâches parallèles devraient en principe pouvoir se dérouler dans n’importe quel ordre. Or, un ordre particulier amène des problèmes. Imaginez qu’un programme A fasse une tâche X, et qu’un programme B une tâche Y, où X et Y sont toutes deux de courtes tâches de routine qui examinent et mettent à jour une même structure de données. Presque toujours, l’ordinateur exécutera X avant Y ou bien Y avant X, et il n’y aura donc aucun problème. En de rares occasions, par pur hasard, l’ordonnanceur laissera le programme A s’exécuter jusqu’à mi-parcours de X, puis lancera B qui effectuera Y. Ainsi, la tâche Y sera accomplie tandis que X n’est faite qu’à moitié. Comme ces processus mettent à jour la même structure de données, il y aura des interférences. Par exemple, peut-être X aura-t-il déjà examiné la structure de données et ne verra-t-il pas qu’il y a eu une modification, qui causera un échec non reproductible. Cette erreur ne peut en effet être reproduite, car elle dépend de facteurs aléatoires (c’est-à-dire à quel moment l’ordonnanceur décide d’exécuter quel programme et sur quelle durée). Le meilleur moyen d’éviter ce genre d’erreur est d’utiliser un verrou pour s’assurer que X et Y ne se déroulent jamais au même moment. Les programmeurs de systèmes asynchrones connaissent bien l’importance générale des verrous, mais parfois, la nécessité d’un verrou à un certain endroit ou sur une certaine structure de données peut leur échapper. Le programme connaît alors une erreur de synchronisation. »
Avec le temps et le succès grandissant de GNU associé à Linux, il devint évident que le projet GNU devait prendre le train en marche, sans attendre l’achèvement de Hurd. En outre, la communauté entourant GNU/Linux présentait certaines faiblesses. Certes, Linux s’était vu doté de la licence GPL, mais ainsi que l’avait remarqué Murdock, la volonté de traiter Linux comme un système d’exploitation entièrement libre était loin de faire l’unanimité.
Fin 1993, la population totale des utilisateurs de Linux était passée d’une douzaine de fans à un chiffre situé entre vingt mille et cent mille personnes8. Ce qui n’était au début qu’un hobby constituait désormais un marché mûr pour l’exploitation, et certains ne voyaient aucune objection à en tirer profit avec du logiciel non libre. Tel Winston Churchill observant les troupes soviétiques déferler sur Berlin, Stallman éprouvait un sentiment mitigé bien compréhensible à l’heure de célébrer la « victoire » de GNU/Linux9.






Or, bien qu’en retard à la fête, Stallman avait toujours de l’influence. Aussitôt que la FSF eut annoncé qu’elle fournirait son argent et son soutien moral au projet logiciel de Murdock, les autres offres de soutien commencèrent à affluer. Murdock baptisa le nouveau projet Debian – fusion du prénom de sa femme, Deborah, et du sien – et en quelques semaines, la première version de la distribution fut livrée. Selon ses propres mots, « [l’appui de Richard] catapulta Debian du jour au lendemain d’un petit projet intéressant à un événement qui allait retenir l’attention de la communauté. »
En janvier 1994, Murdock publia le Manifeste Debian. Dans l’esprit du Manifeste GNU de Stallman, publié dix ans plus tôt, il expliquait l’importance de travailler en étroite collaboration avec la FSF.
« La Free Software Foundation joue un rôle extrêmement important pour le futur de la distribution Debian. Le simple fait que ce soit elle qui la diffuse est un message envoyé au monde : Linux [sic] n’est pas un produit commercial et jamais il ne devrait l’être ; cela ne signifie pas pour autant que Linux ne sera jamais en mesure d’être compétitif. Pour ceux d’entre vous qui en douteraient, je vous mets au défi d’expliquer le succès de GNU Emacs et de GCC, qui, sans être des logiciels commerciaux, ont pourtant eu un sacré impact sur le marché économique.
Le temps est venu de se concentrer sur le futur de Linux [sic] plutôt que sur l’objectif destructeur consistant à s’enrichir aux dépens de toute la communauté Linux et de son avenir. Le développement et la distribution de Debian ne sont peut-être pas la réponse aux problèmes que j’ai exposés dans ce Manifeste, mais j’espère au moins qu’ils attireront suffisamment l’attention sur ces problèmes afin qu’ils puissent être résolus. »10
Peu après la publication du Manifeste, la FSF émit sa première requête d’importance : Stallman voulait que Murdock appelle sa distribution « GNU/Linux ». Il avait proposé pour commencer le terme « Lignux », combinant les noms Linux et GNU, mais les premières réactions très négatives l’avaient convaincu d’adopter « GNU/Linux », plus long mais moins critiqué.
La démarche de Stallman consistant à ajouter le préfixe « GNU » fut interprétée par certains comme une quête tardive de reconnaissance, qu’il l’eût méritée ou non. Murdock, lui, considérait les choses différemment. Il y vit plutôt une tentative d’agir face à la tension grandissante entre les développeurs du projet GNU et ceux qui adaptaient les programmes GNU au noyau Linux. « On était au bord de la rupture, évoque-t-il. Richard était inquiet. »






Dès 1990, un « responsable du développement » était désigné pour chaque programme GNU. Certains programmes tournaient sur de nombreux systèmes différents, et les utilisateurs proposaient souvent des changements pour les porter sur de nouveaux systèmes. Cependant, ne connaissant souvent que leur propre système, ceux-ci ne cherchaient pas spécialement à garder le code propre pour qu’il reste portable facilement sur d’autres systèmes. Prendre en charge un nouveau système tout en gardant le code compréhensible – pour être maintenu de façon fiable pour tous les systèmes – demandait donc la récriture d’une bonne partie des modifications.
Le responsable d’un programme était ainsi chargé d’évaluer les modifications des auteurs/utilisateurs et de leur expliquer comment reprendre certaines parties du portage. Généralement, ces derniers étaient très empressés à s’exécuter, pour voir leurs modifications intégrées à la version standard. Enfin, le responsable incorporait le code ainsi retravaillé, qui serait désormais pris en compte dans la maintenance du programme. Pour certains programmes, ce processus s’était répété des dizaines de fois, pour autant de systèmes différents.
Quant aux programmeurs qui adaptaient les divers programmes GNU au noyau Linux, ils adoptaient tous peu ou prou la même attitude : ils ne se préoccupaient que de leur plate-forme. Mais lorsque les responsables des programmes GNU les sollicitaient pour nettoyer leurs modifications en vue de la maintenance successive, plusieurs d’entre eux faisaient la sourde oreille. Peu leur importait de faire les choses correctement ou de faciliter la maintenance des paquets GNU qu’ils avaient adaptés. Seules leurs propres versions les intéressaient, la tendance étant alors à les maintenir sous forme de branches séparées, ou forks.
Dans l’univers des hackers, la question des forks est du plus grand intérêt. Bien qu’il soit éthiquement permis à un programmeur de faire ce qu’il veut avec le code source d’un programme, il est de bon ton de proposer au développeur original de travailler conjointement pour maintenir une version unique. Les hackers trouvent ainsi habituellement plus utile et approprié de reverser leurs améliorations dans la version principale du programme. Et si une licence de logiciel libre autorise tout un chacun à créer une nouvelle branche d’un programme (le « forker ») – ce qui s’avère parfois nécessaire, le faire sans raison particulière est considéré un acte quelque peu désobligeant.
En tant que leader du projet GNU, Stallman avait déjà fait l’expérience des méfaits d’un fork logiciel en 1991. Il raconte : « Une entreprise, Lucid, a recruté quelques personnes pour écrire des améliorations à GNU Emacs, améliorations censées contribuer à ce programme. Mais les développeurs ne m’ont pas tenu informé de leur projet, développant au lieu de cela plusieurs nouvelles fonctionnalités, de leur propre chef. Comme on pouvait s’y attendre, j’ai approuvé certaines de leurs décisions et récusé les autres. Ils m’ont alors demandé d’intégrer la totalité de leur code, mais apprenant mon intention de n’en utiliser que la moitié, ils ont alors refusé de m’aider à l’adapter. J’ai dû me débrouiller seul. » Le fork avait donné naissance à une version parallèle, Lucid Emacs, ainsi qu’à un amer ressentiment11.
Plusieurs des principaux paquets GNU avaient ainsi donné lieu très rapidement à des forks. Au début, Stallman considérait ces forks comme le produit de l’impatience des développeurs. À l’opposé de la dynamique rapide et informelle de l’équipe en charge de Linux, les mainteneurs du code source de GNU tendaient à être plus lents et circonspects avec des changements susceptibles d’affecter la viabilité à long terme d’un programme. De plus, ils n’hésitaient pas à critiquer sévèrement le code des autres. Avec le temps, à la lecture des courriels envoyés par les développeurs de Linux, Stallman commença à réaliser qu’au fond, peu d’entre eux avaient vraiment conscience du projet GNU et de ses objectifs.
« Nous avons découvert que les gens qui se targuaient d’être des « utilisateurs de Linux » se moquaient bien du projet GNU, exprime Stallman. ‘Pourquoi devrais-je m’embêter à faire tout ça ? disaient-ils. Je n’ai que faire du projet GNU, puisque ça [le programme] marche pour moi. Ça marche pour nous, utilisateurs de Linux, et c’est tout ce qui compte à nos yeux.’ C’était vraiment étonnant, que ces personnes utilisant pour l’essentiel une variante du système GNU s’en soucient si peu. Ils se souciaient de GNU encore moins que quiconque ! »
Abusés par leur propre habitude d’appeler la combinaison des deux programmes « Linux », ils ne se rendaient pas compte que leur système tenait plus de GNU que de Linux.
Afin de préserver l’unité, Stallman demanda aux responsables de développement de faire eux-mêmes le travail qui aurait dû incomber aux auteurs des modifications. Dans la plupart des cas, la tâche était envisageable, mais pas dans celui de Glibc. Abréviation de GNU C Library, Glibc est le paquet qui permet à tous les programmes d’adresser des « appels système » au noyau, en l’occurrence Linux. En effet, tout programme utilisateur, sur un système de type Unix, ne communique avec le noyau qu’à travers la bibliothèque C.
Les modifications visant à faire fonctionner Glibc comme canal de communication entre Linux et tous les autres programmes du système étaient importantes et ciblées, écrites sans tenir compte de leurs conséquences possibles une fois portées sur d’autres plates-formes. Pour le responsable de Glibc, le travail de nettoyage avait de quoi faire peur. Dès lors, la FSF préféra le payer presque une année durant pour réimplémenter ces changements à partir de zéro, et livrer une version 6 de Glibc « clé en main » pour GNU/Linux.






Murdock rapporte que c’est la raison qui aurait précipité Stallman à vouloir à tout prix ajouter le préfixe GNU lorsque Debian publia sa distribution logicielle. « Depuis, le fork a réintégré la branche initiale. Mais, à l’époque, grande était l’inquiétude dans la communauté GNU de voir la communauté Linux faire bande à part, au risque d’aggraver la désunion. »
Si certains considéraient qu’assimiler la combinaison de GNU et de Linux à une « variante » de GNU était faire preuve d’avidité politique, Murdock, déjà sympathisant de la cause des logiciels libres, jugea honnête la requête de Stallman demandant à ce que la version de Debian soit estampillée « GNU/Linux ». « Elle traduisait davantage la recherche d’une unité que celle d’une reconnaissance », déclare-t-il.
Des demandes de nature plus technique s’ensuivirent. Or, bien que Murdock eût été arrangeant sur les questions d’ordre politique, il se montra plus ferme au sujet de la structure et du modèle de développement du logiciel. Ce qui avait commencé comme une démonstration de solidarité devint rapidement un désaccord permanent.
« Ah pour ça, j’ai eu ma part d’oppositions avec lui, assure Murdock en riant. En toute honnêteté, Richard est une personne avec qui il peut être assez difficile de travailler. » Le principal différend portait sur le débogage. Stallman voulait inclure des informations de débogage dans tous les programmes exécutables, de manière à permettre aux utilisateurs/développeurs d’identifier immédiatement les bogues qu’ils auraient pu rencontrer. Au contraire, Murdock estimait que cela rendrait le système de fichiers trop volumineux et affecterait la distribution. Or aucun des deux n’était disposé à changer d’avis.






En 1996, ayant obtenu son diplôme à l’université de Purdue, Murdock décida de passer les rênes du projet Debian, alors en plein essor. Il avait déjà cédé les tâches administratives à Bruce Perens, qui était bien connu pour son travail sur Electric Fence12. Perens, tout comme Murdock, était un programmeur Unix tombé amoureux de GNU/Linux sitôt que ses propriétés Unix furent devenues manifestes. Et tout comme Murdock, Perens sympathisa avec les objectifs politiques de Stallman et de la FSF, quoique de plus loin.
« Je me rappelle que bien après que Stallman ait publié le Manifeste GNU, GNU Emacs et GCC, j’avais lu un article disant qu’il travaillait comme consultant pour Intel, dit Perens, évoquant son premier accrochage avec Stallman à la fin des années 1980. Je lui ai écrit pour lui demander comment il pouvait défendre les logiciels libres d’un côté et travailler pour Intel de l’autre. Il m’a répondu : ‘Je travaille en tant que consultant pour produire des logiciels libres’. Il était parfaitement courtois et j’ai pensé que sa réponse était parfaitement logique. »
En revanche, Perens, éminent développeur Debian, assistait avec consternation aux batailles opposant Stallman et Murdock au sujet de la conception de Debian. Dès son accession à la tête de l’équipe de développement, il prit la décision de mettre de la distance entre Debian et la FSF. « Je ne voulais pas que Richard ait son mot à dire sur la moindre de nos décisions », explique-t-il.
Selon lui, Stallman fut pris de court par la décision, mais eut la sagesse de s’en accomoder : « Il a laissé les choses se calmer, puis a envoyé un message comme quoi nous avions vraiment besoin d’être en relation. Il a demandé que nous appelions le système GNU/Linux, et en est resté là. Cela m’a semblé convenable et j’ai accepté. J’ai pris seul cette décision. Tout le monde a soupiré de soulagement. »






Petit à petit, Debian allait se forger une réputation de « version hacker » de GNU/Linux, aux côtés de Slackware, autre distribution populaire née à la même période en 1993-94. Cependant, Slackware contenait des programmes non libres et Debian, après sa séparation d’avec le projet GNU, l’imita13. Bien que signalés comme « non libres » et ne faisant « pas officiellement partie de Debian », ces paquets ne pouvaient être proposés aux utilisateurs sans que cela ne leur donne une caution implicite. Lorsque le projet GNU prit connaissance de ces pratiques, il dut convenir que ni Debian ni Slackware ne pouvaient être recommandées au public en tant que distributions GNU/Linux.
Hors du royaume des systèmes pour hackers, pourtant, GNU/Linux commençait à faire parler de lui sur le marché des Unix commerciaux. En Caroline du Nord, une entreprise Unix nommée Red Hat était en pleine réorganisation de ses activités pour les recentrer sur GNU/Linux. Son président directeur général était Robert Young, l’ancien éditeur du Linux Journal qui, en 1994, avait demandé à Linus Torvalds s’il regrettait d’avoir mis le noyau sous licence GPL.
La réponse de Torvalds avait alors profondément influencé la vision qu’avait Young de GNU/Linux. Au lieu de chercher à s’imposer sur le marché GNU/Linux par les tactiques habituelles, il se demanda ce qui se passerait si une entreprise adoptait la même démarche que Debian, à savoir assembler un système d’exploitation uniquement à partir de logiciels libres. Cygnus Solutions, l’entreprise montée par Michael Tiemann et John Gilmore en 1990, démontrait déjà qu’il était possible de vendre des logiciels libres en s’appuyant sur la qualité et la personnalisation. Et si Red Hat adoptait cette approche avec GNU/Linux ?
« Dans la tradition scientifique occidentale, on s’élève en s’appuyant sur les épaules des géants, affirme Young, faisant écho à la fois Torvalds et à Sir Isaac Newton avant lui. Dans le monde des affaires, cela signifie éviter de réinventer la roue. La beauté du modèle [de la GPL], c’est que le code est placé dans le domaine public14. Mettons que vous soyez un fournisseur de logiciels indépendant et que vous essayiez de concevoir une application, pour laquelle vous ayez besoin d’un composeur pour modem, eh bien… pourquoi réinventer les composeurs ? Vous n’avez qu’à récupérer PPP15 sur Red Hat [GNU/]Linux et en faire le cœur de votre outil de composition pour modems. Si vous avez besoin d’outils graphiques, pas besoin d’écrire votre propre bibliothèque graphique… Il suffit de télécharger GTK16 ! Vous vous retrouvez soudainement avec la possibilité de réutiliser le meilleur de ce qui a déjà été créé avant vous. Et tout aussi soudainement, votre attention, en tant que vendeur de logiciels, se trouve moins portée sur la gestion des logiciels que sur l’écriture d’applications répondant spécifiquement aux besoins de vos clients. »
En dépit de ces déclarations, Young n’était pas un militant du logiciel libre, incluant volontiers des logiciels non libres dans le système GNU/Linux Red Hat.






Young n’était pas le seul professionnel du logiciel à être attiré par l’efficacité commerciale des logiciels libres. Fin 1996, la plupart des compagnies Unix commençaient à se réveiller et à flairer l’attrait du code source. Et si on en était encore à une bonne année ou deux du passage au plein déploiement commercial du secteur GNU/Linux, quelque chose d’énorme était en train de se produire – tous les familiers du milieu hacker le sentaient. Le processeur Intel 386, l’Internet et le World Wide Web avaient déferlé sur le marché comme autant de raz-de-marée. Quant au logiciel libre, il semblait déjà former la plus grosse lame de fond en préparation.
Aux yeux de Ian Murdock, cette déferlante était tout autant un hommage qu’une punition bien mérités pour l’homme qui s’était consacré si longtemps à forger l’identité du mouvement du logiciel libre. Comme de nombreux fans de GNU/Linux, Murdock avait lu les tout premiers messages et échanges postés. Il avait lu l’avertissement de Torvalds mentionnant Linux comme un simple « passe-temps » et son aveu au créateur de Minix, Andrew Tanenbaum : « Si le noyau GNU avait été prêt le printemps dernier, je ne me serais même pas donné la peine de lancer mon projet »17. Comme beaucoup, Murdock savait que certaines occasions avaient été manquées. Il connaissait aussi l’excitation ressentie en voyant de nouvelles opportunités émerger de la structure même de l’Internet.
« Être impliqué dans Linux à ses débuts était amusant, se rappelle-t-il. En même temps, cela occupait et permettait de passer le temps. Si on relit les vieux échanges sur [comp.os.minix], c’est ce sentiment qui se dégage : Linux était quelque chose avec quoi jouer en attendant que le noyau Hurd soit prêt. Les gens étaient impatients. C’est drôle, mais j’ai l’impression qu’il n’y aurait jamais eu de Linux si Hurd était sorti plus rapidement. »
Fin 1996, toutefois, de telles considérations n’avaient plus lieu d’être, le noyau de Torvalds ayant déjà atteint une masse critique d’utilisateurs. La fenêtre des trente-six mois s’était refermée, signifiant que même si le projet GNU sortait son noyau Hurd, les chances auraient été bien minces pour que, en dehors du noyau dur de la communauté hacker, quelqu’un le remarque. Linux, en comblant la dernière lacune du système GNU, avait accompli la mission du projet GNU, à savoir la production d’un système d’exploitation libre de type Unix.
Quoi qu’il en soit, la plupart des utilisateurs ne comprirent pas ce qu’il s’était vraiment passé, croyant que Linux était le système entier et que Torvalds était son créateur. La plupart installèrent des distributions incluant des programmes non libres et, avec Torvalds comme guide éthique, n’y virent aucune raison de les rejeter.
Malgré tout, une liberté précaire restait à la portée de ceux qui savaient l’apprécier.


1. Wired signifie câblé ou branché, au sens propre comme au figuré – NdT.
2. Bind est le sigle de Berkeley Internet Naming Daemon, démon (programme) de nommage pour l’Internet de Berkeley, devenu aujourd’hui Berkeley Internet Naming Domain. Bind est ce qu’on appelle un serveur de noms de domaines (DNS) – NdT.
3. Torvalds a cité cette phrase à de nombreuses reprises. La référence la plus notoire figure dans l’essai de Eric S. Raymond, La Cathédrale et le Bazar (mai 1997). Voir E. S. Raymond, The Cathedral and the Bazaar, O’Reilly, 1999, 2001 (http://www.catb.org/~esr/writings/cathedral-bazaar/). Traduction en français disponible sur http://www.linux-france.org/article/these/cathedrale-bazar/cathedrale-bazar.html.
5. La préoccupation de Chassell au sujet d’une « fenêtre » de trente-six mois qui allait se refermer pour le lancement d’un nouveau système d’exploitation ne se limitait pas au projet GNU. Au début des années 1990, le développement des versions libres de la Berkeley Software Distribution était entravé par les poursuites intentées par Unix System Laboratories, restreignant la distribution des logiciels dérivés de BSD. Alors que de nombreux utilisateurs considèrent les dérivées de BSD, comme FreeBSD et OpenBSD, supérieures à GNU/Linux tant sur les performances que sur la sécurité, le nombre de leurs utilisateurs ne représente qu’une fraction de celui des utilisateurs de GNU/Linux. Pour une analyse du succès de ce dernier en comparaison des autres systèmes libres, se référer à l’ouvrage du hacker néo-zélandais Liam Greenwood [Greenwood, 1999].
6. Le multithread est la capacité d’un programme à disposer de plusieurs traitements simultanément actifs au sein d’un même processus. (Source : Le Jargon Français, http://jargonf.org) – NdT.
7. Extrait du discours du Maui High Performance Computing Center (cf. chap. 8).
8. Les chiffres concernant la population des utilisateurs de GNU/Linux sont on ne peut plus lacunaires, d’où l’étendue de la marge que j’avance ici. Le chiffre 100 000 provient du site de Red Hat « Milestones » .
9. J’avais déjà écrit cette analogie avec Winston Churchill quand Stallman m’envoya de lui-même son propre commentaire sur Churchill : « La seconde guerre mondiale et la détermination nécessaire pour vaincre ont été des souvenirs prédominants durant mon enfance. Les déclarations telles que celle de Churchill – ‘Nous les combattrons sur les zones de débarquement, nous les combattrons sur les plages… jamais nous ne nous rendrons !’ – ont toujours retenti en moi. »
11. Jamie Zawinski, un ancien programmeur de Lucid, qui passa ensuite à la tête de l’équipe de développement de Mozilla, possède un site Internet documentant le fork Lucid/GNU Emacs, intitulé « The Lemacs/FSFmacs Schism » : http://www.jwz.org/doc/lemacs.html. La réponse de Stallman se trouve sur son site personnel, dans l’article intitulé « The origin of XEmacs » : http://stallman.org/articles/xemacs.origin.
12. Sur Electric Fence, cf. note chap. 9.
13. En juin 1996, Debian Buzz contenait le programme non libre Netscape 3.1, dans sa section Contrib.
14. Young utilise le terme « domaine public » de manière erronée ici. Le domaine public signifie « non couvert par copyright ». Or le code sous licence GNU GPL ne peut être dans le domaine public car il doit être sous copyright pour que la GNU GPL ait force de loi.
15. PPP est le composeur pour modem (modem-dialer) inclus dans la distribution Red Hat.
16. GTK (The Gimp ToolKit) ou GTK+ est un ensemble de bibliothèques logicielles permettant de réaliser des interfaces graphiques. Cet outil a été développé à l’origine pour le logiciel de graphisme Gimp, mais est utilisé dans de nombreux projets, notamment les environnements de bureau (Gnome, XFCE, etc.).
17. Cette citation est tirée de l’échange houleux et très médiatisé sur l’Internet, qui opposa Torvalds à Tannenbaum après la parution de la première version de Linux. Pour défendre son choix d’un noyau monolithique non portable, Torvalds affirme avoir commencé à travailler sur Linux dans le but de connaître davantage son nouveau PC 386. Voir DiBona, Ockman & Stone, 1999, p. 224.



  Poule ou l'oeuf

One minute, please...

Fermer