Richard Stallman et la révolution du logiciel libre - Une biographie autorisée
Chapitre
7
Une morale à l’épreuve
2009-11-25 / 2010-01-18


Le 27 septembre 1983, les programmeurs se connectant au groupe de discussion Usenet net.unix-wizards reçurent un message peu habituel. Posté aux premières heures du jour, à minuit et demi exactement, et signé rms@mit-oz, l’objet du message était laconique mais attirait l’attention. « Nouvelle implémentation d’Unix », pouvait-on lire.
Pourtant, au lieu de présenter une version fraîchement disponible d’Unix, le premier paragraphe du message était en fait un appel à contribution1 :
Dès le Thanksgiving prochain, je commencerai à écrire un système logiciel complet, compatible Unix, appelé GNU (pour GNU N'est pas Unix), et le distribuer librement à tous ceux qui souhaitent l'utiliser. Je fais appel à toute contribution en temps, en argent, en programmes et en matériel pour faire avancer ce projet.
Pour un développeur Unix expérimenté, le message traduisait un mélange d’idéalisme et d’orgueil démesuré. Non content de s’engager à repartir de zéro dans la reconstruction du système d’exploitation Unix déjà abouti, l’auteur proposait en plus de l’améliorer par endroits. Le nouveau système GNU, prédisait-il, intégrerait tous les composants essentiels : un éditeur de texte, un shell pour lancer des applications compatibles Unix, un compilateur, « et diverses autres choses »2. À cela s’ajouteraient de nombreuses fonctions particulièrement séduisantes, pas encore disponibles dans les autres systèmes Unix : une interface graphique basée sur le langage de programmation Lisp, un système de fichiers résistant aux pannes et des protocoles réseaux prenant modèle sur ceux du MIT.
« GNU sera capable d’exécuter des programmes Unix, mais ne sera pas identique à Unix, écrivait l’auteur. Nous ferons toutes les améliorations utiles, d’après notre expérience au contact d’autres systèmes d’exploitation. »
Prévoyant une réaction sceptique de la part de certains lecteurs, l’auteur poursuivait l’exposé de son ébauche de système d’exploitation avec une brève note biographique intitulée « Qui suis-je ? » 3:
Je suis Richard Stallman, l'inventeur de l'éditeur Emacs si souvent imité, et je travaille actuellement au Laboratoire d’intelligence artificielle du MIT. J'ai beaucoup travaillé sur des compilateurs, des éditeurs, des débogueurs, des interpréteurs de commandes, ainsi que sur l'ITS et le système d'exploitation des machines Lisp. J'ai été le premier à mettre au point un affichage indépendant du terminal pour ITS. De plus, j'ai mis en place un système de fichiers résistant aux pannes et deux systèmes de fenêtrage pour machines Lisp.
Le destin a finalement voulu que le projet fou de Stallman, le projet GNU, ne soit pas lancé en ce jour de Thanksgiving. Ce ne fut qu’en janvier 1984 que Stallman, tenant sa promesse, s’immergea entièrement dans le développement de programmes Unix. Pour un architecte logiciel nourri au lait de l’ITS, c’était comme concevoir un petit centre commercial en banlieue après avoir rêvé de palais mauresques. Néanmoins, bâtir un système d’exploitation de type Unix avait certains avantages insoupçonnés. Car malgré sa puissance, l’ITS avait également un talon d’Achille : les développeurs du MIT l’avaient écrit spécifiquement pour la puissante architecture du PDP-10. Quand les administrateurs du AI Lab choisirent de remplacer cette machine au début des années 1980, le système d’exploitation, comparé jusqu’alors par les hackers à une cité grouillante d’activité, ne fut subitement plus qu’une ville fantôme.
Unix, à l’inverse, avait été conçu pour le portage, ce qui l’immunisait contre un tel danger. À l’origine développé par les jeunes chercheurs d’AT&T, le programme avait échappé au contrôle des dirigeants de l’entreprise et trouvé la terre promise dans le monde des systèmes informatiques universitaires, moins soucieux des contingences matérielles. Disposant de ressources plus limitées que celles de leurs frères du MIT, les développeurs d’Unix avaient adapté le logiciel pour qu’il puisse piloter un assortiment de matériels des plus divers : le PDP-11 16 bits, tout d’abord, considéré par les hackers du AI Lab comme une machine adaptée uniquement aux petits travaux, mais aussi, plus tard, les unités centrales 32 bits telles le VAX 11/780. En 1983, quelques sociétés, parmi lesquelles Sun Microsystems, notamment, avaient lancé le développement d’une génération d’ordinateurs de bureau plus puissants baptisés « stations de travail », afin de tirer profit de ce système d’exploitation toujours plus présent sur les machines de capacités équivalentes à l’ancien PDP-10.
Pour faciliter le portage, les développeurs d’Unix ajoutèrent une couche d’abstraction entre le logiciel et la machine. Plutôt que d’écrire du code spécifiquement pour une machine donnée – comme cela avait été le cas avec l’ITS et le PDP-10 – ils utilisèrent un langage de haut niveau appelé C. Ils se concentrèrent sur les interfaces et les spécifications liant entre eux les nombreux sous-composants du système d’exploitation, au lieu de s’attacher exclusivement aux composants eux-mêmes. Ainsi créèrent-ils un système qui pouvait facilement être adapté pour s’exécuter sur n’importe quel type de machine. Si un utilisateur n’était pas satisfait d’un composant, il lui était alors possible, via ces interfaces, d’en retirer une partie spécifique pour le corriger, ou de le remplacer. En bref, l’approche d’Unix mettait en avant flexibilité et économie, d’où son adoption rapide4.
La décision d’amorcer le développement du système GNU avait été provoquée par l’abandon de l’ITS, système que les hackers du AI Lab avaient passé tant de temps à perfectionner. La mort du programme, qui signifait aussi celle de la communauté qui le soutenait, fut un coup dur pour Stallman. Si l’épisode de l’imprimante laser Xerox lui avait ouvert les yeux sur l’iniquité de la privatisation des logiciels, l’anéantissement de la communauté le mettait face à un choix cornélien : capituler et rejoindre le camp privateur, ou s’y opposer.
À l’instar de son code source, les causes de la mort de l’ITS étaient profondément enracinées dans le passé. En 1980, la plupart des hackers du AI Lab travaillaient déjà sur le développement de la machine Lisp et son système d’exploitation.
Inventé par John McCarthy, chercheur pionnier en intelligence artificielle au MIT à la fin des années 1950, Lisp était un langage élégant, bien adapté à l’écriture de programmes complexes pour le traitement de données à structure irrégulière. Le nom du langage est la contraction de LISt Processing (traitement de liste). Après le départ de McCarthy pour le laboratoire d’intelligence artificielle de Stanford, les hackers du MIT perfectionnèrent le langage en créant un dialecte local dénommé MacLisp. Ce nom faisait référence au projet MAC, projet de recherche de la DARPA5 qui avait donné naissance au AI Lab et au Laboratoire de sciences informatiques. Menés par Richard Greenblatt, ils fabriquèrent à la fin des années 1970 un ordinateur spécialement optimisé pour Lisp, la machine Lisp, avant de lui dédier un système d’exploitation complet, lui aussi basé sur Lisp.
Toujours en 1980, deux compagnies, formées par deux groupes rivaux de hackers, avaient vu le jour dans le but de fabriquer et de vendre des copies de la machine Lisp. Greenblatt avait lancé Lisp Machines Inc. (LMI), comptant se passer d’investissements extérieurs pour former une pure « compagnie de hackers ». Mais la plupart d’entre eux rejoignirent Symbolics Inc., start-up plus conventionnelle dirigée par Russell Noftsker, un ancien administrateur du AI Lab. Dès 1982, toutes ces recrues cessèrent de travailler au MIT.
Seuls quelques hackers étant restés pour tenir la boutique, les délais de maintenance des programmes et des machines s’allongèrent – si tant est qu’ils fussent mis à jour. Pire encore, selon Stallman, le labo amorçait un « changement démographique ». Les hackers qui formaient autrefois une minorité active au sein du AI Lab étaient presque tous partis, tandis que « les professeurs et les étudiants qui n’aimaient pas vraiment le PDP-10 étaient tout aussi nombreux qu’auparavant. »6
C’est aussi en 1982 que le AI Lab reçut la machine qui devait remplacer son principal ordinateur, le PDP-10, alors âgé de plus de douze ans. Or si le modèle de Digital (DEC) alors en cours, le Decsystem 20, était compatible avec les programmes des utilisateurs, il aurait fallu récrire en profondeur l’ITS, ou du moins le « porter » à nouveau, pour que les hackers puissent continuer à l’utiliser. Craignant que le labo n’ait perdu un nombre trop important de ses programmeurs de talent, les membres de la faculté firent pression pour obtenir Twenex, un système d’exploitation commercial développé par Digital. Minoritaires, les hackers n’eurent d’autre choix que de s’incliner.
Figure 7.1 - PDP-10 avec processeur KL-10 (un PDP-10 similaire à celui du AI Lab) Stanford Artificial Intelligence Laboratory, 1979.
« Sans hackers pour maintenir le système, nous allons droit au désastre ; il nous faut un logiciel commercial. » Stallman se souviendrait de ces mots prononcés par les membres de la faculté quelques années plus tard. « ‘Nous pouvons compter sur la société [Digital] pour en assurer la maintenance’, affirmaient-ils. La suite a prouvé qu’ils se trompaient lourdement, mais c’est pourtant ça qu’ils ont fait. »7
Au début, les hackers considérèrent le système Twenex comme un nouveau symbole d’autorité ne demandant qu’à être détourné. Le nom même du système était une provocation. Officiellement dénommé TOPS-20 par DEC, il se présentait comme le successeur du TOPS-10, le système d’exploitation non libre distribué pour le PDP-10. Or, en réalité, le TOPS-20 n’avait pas grand chose à voir avec le TOPS-10. C’était un dérivé du système Tenex que Bolt Beranek Newman avait développé pour le PDP-108. Stallman, qui était à l’origine du nom « Twenex », explique qu’il l’a inventé pour éviter d’utiliser celui de TOPS-20. « Ce système était loin d’être le meilleur, il était donc hors de question de lui donner un nom aussi flatteur, se souvient-il. C’est pourquoi j’ai décidé de glisser un W dans son nom et de l’appeler Twenex. »
La machine sur laquelle tournait le système Twenex/TOPS-20 fut elle aussi dotée d’un sobriquet : Oz. Elle avait hérité ce surnom car elle avait besoin d’un petit PDP-11 pour faire fonctionner son terminal, dit la légende. Un hacker, voyant fonctionner pour la première fois le tandem KL-10–PDP-11 aurait fait référence à l’entrée en scène de l’orgueilleux magicien du film Le Magicien d’Oz : « Je suis le grand, le puissant Oz, entonna-t-il, ne faites pas attention au PDP-11 qui se cache derrière la console ! »9
Si la découverte du KL-10 ne manqua pas de provoquer les rires des hackers, leur premier contact avec Twenex leur fit rapidement perdre tout sens de l’humour. Non content de se prévaloir d’une sécurité intégrée, le système de sécurité était devenu une obsession pour les ingénieurs qui avaient conçu les utilitaires et les applications. Avec Twenex, ce qui revenait autrefois à jouer au chat et à la souris avec les mots de passe dans le cadre du dispositif de sécurité en vigueur au laboratoire de sciences informatiques s’apparentait désormais à une guerre ouverte pour l’administration du système. Les administrateurs arguaient du fait que sans sécurité, le système Oz était davantage enclin aux pannes accidentelles. Les hackers répliquaient que de tels accidents pourraient être évités grâce à la refonte du code source. Malheureusement, le nombre d’entre eux ayant le temps et l’envie de procéder à ce type de vérification avait diminué, à tel point que c’est l’argument des administrateurs système qui eut le dessus.
La politique initiale voulait que tout membre du AI Lab ait les droits pour contourner les restrictions de sécurité. Or toute personne se dotant de ces privilèges était en mesure d’en priver n’importe quelle autre, qui se trouvait alors dans l’impossibilité de les restaurer. Naturellement, une poignée de hackers fut tentée de prendre le contrôle total du système en gardant pour eux seuls ces privilèges…
Détournant des mots de passe et à l’aide du débogueur lancé dès le démarrage, Stallman réussit à déjouer ces tentatives. Après avoir mis en échec un second « coup d’état » de ce type, il envoya un message d’alerte à tout le personnel du AI Lab : « Une nouvelle tentative de prise de pouvoir a eu lieu, écrivit-il. Jusqu’ici, les forces aristocratiques ont été défaites. » Afin de protéger son identité, il signa son message « Radio Free OZ ».
Mais le déguisement était bien mince. En 1982, l’aversion de Stallman pour les mots de passe et le secret était d’une telle notoriété que des utilisateurs externes au AI Lab employaient son compte comme passerelle pour accéder à l’Arpanet – le réseau informatique financé par la recherche, ancêtre de l’Internet actuel. Parmi ces « touristes » du début des années 1980, on compte Don Hopkins, un programmeur de Californie. Grâce au téléphone arabe des réseaux de hackers, il avait appris que tout ce qu’un intrus avait à faire pour accéder au célèbre système ITS du MIT était d’ouvrir une session sous les initiales RMS et de répéter ce même monogramme de trois lettres en guise de mot de passe.
« Je serai éternellement reconnaissant au MIT de m’avoir, comme de nombreux autres, laissé utiliser librement ses ordinateurs, déclare Hopkins. Cela a beaucoup compté pour un grand nombre d’entre nous. »
Cependant, cette politique « touristique », ouvertement tolérée par les responsables du MIT au cours des années ITS10, tourna court quand Oz devint le premier maillon de raccordement du labo à l’Arpanet. Les premiers temps, Stallman poursuivit sa stratégie qui consistait à reprendre son identifiant de connexion comme mot de passe, permettant ainsi aux utilisateurs extérieurs d’avoir un accès via son propre compte. Mais la fragilité d’Oz incita par la suite les administrateurs à interdire l’accès aux intrus qui, par pure maladresse ou par malveillance délibérée, auraient pu endommager le système. Lorsque ces mêmes administrateurs exigèrent par la suite de Stallman qu’il cesse de diffuser son mot de passe, ce dernier, invoquant son éthique personnelle, préféra cesser complètement d’utiliser Oz. 
« [Lorsque] les mots de passe ont fait leur première apparition au AI Lab, j’ai [décidé] de suivre ma conviction selon laquelle il ne devrait pas y avoir de mots de passe. Dans la mesure où je ne crois pas qu’il soit vraiment souhaitable d’avoir une quelconque sécurité sur un ordinateur, je ne vois pas pourquoi j’aurais dû collaborer avec ce régime sécuritaire. »11
Le refus de Stallman de s’incliner devant le grand et puissant Oz était représentatif de la tension croissante entre hackers et responsables du AI Lab au début des années 1980. Une tension qui allait malgré tout passer au second plan, occultée par le conflit qui faisait rage au sein même de la communauté des hackers… À l’arrivée du Decsystem 20, celle-ci était bel et bien divisée en deux camps, fédérés chacun autour d’une des sociétés LMI ou Symbolics.
Symbolics, grâce à ses investissements externes, avait recruté des développeurs du AI Lab et les faisait travailler à l’amélioration de divers composants du système d’exploitation de la machine Lisp, hors du giron du laboratoire. Fin 1980, la société avait recruté quatorze hackers du laboratoire comme conseillers à temps partiel pour le développement de sa version de la machine Lisp. Les quelques autres qui restaient se mirent à travailler pour LMI12. Quant à Stallman, préférant la vie sans contraintes du laboratoire et non enclin à prendre parti, il fit le choix de ne rejoindre aucune des deux sociétés.
Les premiers temps, les hackers continuèrent à passer une partie de leur temps au MIT, contribuant au développement de la machine Lisp. Les deux sociétés, Symbolics et LMI, avaient acquis du MIT la licence du code source. Cette licence les obligeait à retourner leurs modifications au MIT, sans toutefois les contraindre à laisser l’institut redistribuer leurs modifications. Malgré cela, au milieu de l’année 1981, elles donnèrent leur accord de principe autorisant cette redistribution. Ainsi, toutes leurs améliorations du système furent intégrées à la version du MIT et partagées entre tous les utilisateurs de machines Lisp. C’est ce qui permit à ceux restés au centre de conserver leur neutralité.
Or, le 16 mars 1982, date mémorable pour Stallman car c’était son anniversaire, les cadres de Symbolics mirent fin à cet accord. La raison de cette décision était simple : porter atteinte à LMI. En effet, du fait qu’elle employait un nombre plus restreint de programmeurs et de personnel en général, c’est LMI qui aurait tiré les principaux bénéfices du partage des améliorations, selon Symbolics. En mettant fin au partage du code, les cadres de Symbolics espéraient ainsi liquider leur rivale. C’est pourquoi ils décidèrent d’appliquer la licence à la lettre.
Désormais, au lieu de contribuer directement aux améliorations de la version du MIT, ce dont LMI pouvait profiter, ils se contentèrent de fournir une copie de leur version complète du système à l’usage des employés du MIT. Tout utilisateur se retrouvait alors à tester cette version dans l’unique intérêt de Symbolics et, s’il y apportait des améliorations, il était plus que probable qu’elles soient utiles avant tout à Symbolics.
En tant qu’administrateur responsable de la machine Lisp du laboratoire (assisté de Greenblatt, dans les premiers mois), Stallman était fou de rage. Les programmeurs de Symbolics avaient en effet laissé dans le code des centaines de modifications inachevées, à l’origine de nombreuses erreurs. Considérant cette annonce comme un ultimatum, il riposta en coupant la liaison sans fil entre la société et le laboratoire. Il se jura ensuite de ne jamais plus travailler sur la machine de Symbolics et s’engagea à poursuivre le développement du système du MIT, de manière à défendre LMI contre sa rivale. « De mon point de vue, le AI Lab était un pays neutre, tout comme la Belgique durant la Première Guerre mondiale, explique Stallman. Si l’Allemagne envahit la Belgique, la Belgique déclare la guerre à l’Allemagne aux côtés de la Grande-Bretagne et de la France. »
Lorsque les cadres de Symbolics prirent conscience que leurs dernières fonctionnalités étaient encore implémentées systématiquement dans la machine Lisp du AI Lab et, par extension, dans celle de LMI, cela ne les enchanta guère. Mais Stallman, qui connaissait les implications de la loi sur le copyright, repartait de zéro dans la récriture des fonctionnalités. Tirant parti de la lecture du code source fourni au MIT par Symbolics, il faisait en sorte de comprendre les erreurs et leurs corrections de manière à produire un code source aussi différent que possible.
Inutile de dire que les cadres de Symbolics n’en croyaient pas un mot. Ils installèrent un programme espion sur la machine de Stallman afin d’obtenir des preuves contre lui. Pourtant, lorsqu’ils plaidèrent leur cause auprès de l’administration du MIT, au début de l’année 1983, les preuves avancées étaient bien minces : à peine une douzaine d’occurrences dans le code source où les deux versions apparaissaient modifiées de manière similaire.
Lorsque les administrateurs du AI Lab présentèrent ces preuves à Stallman, ce dernier les réfuta en démontrant que les similarités dataient en fait d’avant la séparation. Il en profita pour retourner l’argument contre ses accusateurs : si, après les milliers de lignes de code qu’il avait réécrites, Symbolics n’avait pas de preuves plus convaincantes, cela démontrait qu’il s’était véritablement appliqué à éviter toute copie de code. Son travail ayant été approuvé par l’administration du AI Lab, il continua à intégrer les changements effectués par Symbolics jusqu’à la fin de l’année 198313.
Stallman modifia néanmoins sa manière de procéder : « Pour plus de sûreté, j’ai cessé de lire leur code source [pour y chercher les nouvelles fonctionnalités ou changements majeurs]. Je ne me suis plus référé qu’à la documentation, en partant d’elle pour écrire le code. » Quant aux améliorations les plus importantes, il les concevait seul, sans attendre la publication de la nouvelle documentation. Une fois celle-ci disponible, il modifiait alors ses ajouts de façon à les rendre compatibles avec l’interface de Symbolics. Enfin, la lecture du code source fourni par la compagnie lui permettait d’y trouver la correction des bogues mineurs, et ainsi de les corriger à son tour, de manière différente.
Cette expérience conforta Stallman dans sa détermination. Tout à la création des nouvelles fonctions destinées à remplacer celles de Symbolics, il engagea les membres du AI Lab à poursuivre leur travail sur le sytème du MIT, de manière à fournir un flux soutenu de rapports de bogues. Il s’assura par la même occasion que les programmeurs de LMI disposent toujours d’un accès direct à ces modifications. « Je devais punir Symbolics coûte que coûte, serait-ce la dernière chose que je dusse faire », affirme Stallman.
De telles déclarations sont riches d’enseignement. Non seulement mettent-elles en lumière le tempérament quelque peu belliciste de Stallman, mais elles reflètent également l’intensité émotionnelle du conflit.
Si le désespoir de Stallman atteignait un tel degré, c’est qu’il ressentait comme la « destruction » de son « foyer », la disparition de la sous-culture très unie des hackers au AI Lab. Au cours d’un entretien par courrier électronique avec Levy, il allait par la suite se comparer à la figure historique d’Ishi, le dernier survivant des Yahis, une tribu du nord-ouest de la côte Pacifique qui fut décimée lors des guerres indiennes des années 1860 et 1870. Une analogie qui élève sa lutte pour la survie à un niveau épique, aux frontières du mythe14.
Du côté de Symbolics, on envisageait les choses différemment. En effet, plutôt que de considérer leur entreprise comme une force exterminatrice, nombre des collègues de Stallman y voyaient l’occasion tardive de trouver enfin leur place. En commercialisant la machine Lisp, la compagnie exportait les principes d’ingénierie logicielle des hackers hors de la tour d’ivoire du AI Lab, pour les faire pénétrer le domaine commercial, où les principes de conception étaient dictés par des gestionnaires. Au lieu de voir en Stallman un résistant, beaucoup le considéraient comme un rétrograde.
À tout cela s’additionnaient des conflits personnels. Bien avant que Symbolics n’ait débauché la majeure partie des hackers du AI Lab, Stallman indique que plusieurs d’entre eux l’évitaient déjà. « On ne m’invitait plus à Chinatown, se souvient-il. La coutume inaugurée par Greenblatt voulait que si vous partiez dîner en ville, vous fassiez le tour ou envoyiez un message pour proposer à tous ceux du laboratoire de vous accompagner. C’est vers 1980-1981 que l’on a cessé de m’inviter. Comme si cela ne suffisait pas, quelqu’un m’avoua même plus tard qu’on l’avait poussé à me mentir pour tenir leurs dîners sans moi secrets. »
Stallman avait été blessé par cet ostracisme mesquin, mais il ne pouvait rien y faire. L’ultimatum de Symbolics fit passer le problème d’un rejet personnel à une plus grande injustice. Lorsque la société cessa de redistribuer ses améliorations de code source à seule fin de mettre en faillite sa concurrente, Stallman décida de contre-attaquer. En se terrant dans les bureaux du MIT pour y réécrire chaque nouvelle fonctionnalité, chaque nouvel outil, il donnait à tous les utilisateurs de machines Lisp, y compris les clients de LMI, un accès aux mêmes fonctions que celles fournies par Symbolics.
Son statut de légende vivante n’en fut que renforcé au sein de la communauté. Déjà consacrée lors de son travail sur Emacs, la capacité de Stallman à produire seul un travail équivalent à celui de toute l’équipe des programmeurs de Symbolics (équipe au sein de laquelle on comptait plus d’un hacker légendaire), constitue l’un des plus grands exploits humains de l’ère de l’information.
Y voyant le « coup de maître [d’un] John Henry virtuel de la programmation », l’auteur Steven Levy remarque que nombre des rivaux de Stallman, chez Symbolics, ne pouvaient faire autrement que de tenir en estime, même à contrecœur, leur ancien camarade idéaliste. Levy rapporte les propos de Bill Gosper, qui finira par travailler pour Symbolics dans les bureaux de Palo Alto, exprimant son émerveillement pour le travail fourni par son ex-collègue durant cette période :
« S’il aurait pu m’arriver de trouver mauvais quelque chose écrit par Stallman (cela est peu probable, mais quelqu’un aurait pu m’en convaincre…), eh bien même alors, j’aurais continué à dire : ‘Attendez une minute ! Stallman n’avait personne avec qui débattre des nuits entières, là-bas. Il a travaillé seul ! C’est tout bonnement incroyable que quelqu’un ait pu réaliser tout cela tout seul !’ »15
Les mois passés à lutter contre Symbolics laissèrent à Stallman un mélange de fierté et de profonde tristesse. Libéral convaincu dont le père avait servi pendant la Deuxième Guerre mondiale, il n’avait rien d’un pacifiste. De bien des manières, la guerre contre Symbolics représentait le rite de passage auquel il s’était préparé depuis qu’il avait rejoint le personnel du AI Lab, dix ans plus tôt.
Mais en même temps, ce conflit coïncidait avec la traumatisante destruction de la culture hacker, au sein de laquelle Stallman avait évolué depuis son adolescence. Un jour, raconte-t-il, alors qu’il faisait une pause dans l’écriture du code, il éprouva un sentiment bouleversant au moment de traverser la salle des machines du laboratoire. Il y faisait face à la carcasse massive du PDP-10 abandonné. Saisi par les voyants éteints, voyants qui autrefois clignotaient silencieusement pour indiquer l’état du programme en cours, il ressentit une émotion similaire à celle que lui aurait inspirée la vision d’un être cher défunt.
« Je me mis à pleurer d’un coup, là en plein milieu de la salle des machines. Voir cette machine-là, morte, sans plus personne pour s’en occuper, me remémora ô combien ma communauté avait été détruite. »
Mais Stallman n’aurait guère le temps de pleurer. En dépit de toutes les passions qu’elle avait provoquées et de tout le travail consacré à son élaboration, la machine Lisp n’avait donné lieu qu’à une escarmouche sur le champ des grandes batailles en cours sur le marché des nouvelles technologies. La course implacable vers la miniaturisation des ordinateurs apportait avec elle de nouveaux microprocesseurs plus puissants, qui n’allaient pas tarder à contenir toutes les capacités matérielles et logicielles de la machine, à l’image d’une métropole moderne dévorant les ruines d’un vieux village fantôme.
Surfant sur cette vague du microprocesseur, des centaines, pour ne pas dire des milliers, de logiciels non libres, chacun protégé par un patchwork de licences utilisateur et de clauses de confidentialité, interdisaient aux développeurs l’examen ou le partage du code source. Les licences furent d’abord rudimentaires et mal taillées, mais en 1983, elles étaient devenues assez solides pour satisfaire les tribunaux et dissuader tout contrevenant potentiel. Le logiciel, autrefois considéré comme une forme de garniture offerte par les fabricants pour donner plus de saveur à leurs coûteux systèmes informatiques, devint rapidement le plat principal. Toujours plus affamés de jeux et de nouveautés, les utilisateurs en omettaient de demander la recette, comme on le fait traditionnellement après chaque repas.
Nulle part cet état de fait n’était plus évident qu’au royaume de l’ordinateur individuel. Des compagnies comme Apple ou Commodore faisaient la fortune de jeunes entrepreneurs grâce à la vente de machines dotées de systèmes d’exploitation intégrés. Ignorant tout de la culture hacker et de son aversion pour le logiciel pré-compilé, la plupart des utilisateurs n’éprouvèrent pas le besoin de protester lorsque ces compagnies cessèrent de fournir leurs programmes accompagnés des fichiers contenant le code source. Et si quelques adeptes rebelles de l’éthique hacker réussirent à lui donner une petite place sur le nouveau marché, le fait est que ce dernier ne récompensait, pour l’essentiel, que les programmeurs suffisamment prompts pour créer de nouveaux logiciels et assez futés pour écrire des licences (CLUF) et en verrouiller l’usage.
Parmi les plus célèbres d’entre eux figurait Bill Gates. Ayant rapidement abandonné ses études à Harvard, Gates était un jeune chef d’entreprise, co-fondateur de la société de logiciels Micro-Soft (qui s’écrirait plus tard Microsoft), établie à Albuquerque. Bien que Stallman, de deux ans son aîné, ne l’ait pas su alors, Gates avait, sept ans avant l’envoi du message de rms au groupe net.unix-wizards, adressé lui aussi une lettre ouverte à la communauté des développeurs. Sa « lettre ouverte aux amateurs », du 3 février 1976, destinée aux utilisateurs de PC copiant les programmes de Micro-Soft, condamnait sans appel la notion de développement communautaire des logiciels.
« Qui peut se permettre d’effectuer un travail professionnel pour rien ? Quel amateur peut-il investir trois années de sa vie à développer, trouver tous les bogues et documenter son produit, pour ensuite le distribuer gratuitement ? » demandait Bill Gates16.
Bien que peu de hackers du AI Lab l’aient lue, cette lettre illustre néanmoins le changement d’attitude qui s’est opéré à l’égard des logiciels, tant de la part des compagnies qui les vendent que de celle des développeurs commerciaux. Pourquoi traiter le logiciel comme un produit sans valeur alors que le marché en a décidé autrement ?
Au tournant des années 1980, la vente de programmes ne constituait plus seulement un moyen d’amortir les coûts : c’était devenu un enjeu politique. À l’heure où l’administration Reagan s’empressait de démanteler nombre de règlements fédéraux et suspendait les projets publics échafaudés durant le demi-siècle qui avait fait suite à la Grande Dépression, plus d’un programmeur considérait l’éthique des hackers comme anti-compétitive et, par extension, anti-patriotique. Au mieux, c’était un retour aux attitudes anti-corporatistes de la fin des années 1960 et du début des années 1970. Tel un banquier de Wall Street découvrant un de ses vieux T-shirts hippies caché entre ses chemises Cardin et ses costumes trois-pièces, nombre d’informaticiens ne regardaient plus l’éthique des hackers que comme le rappel embarrassant d’une époque idéaliste.
Pour un homme qui avait vécu toutes les années 1960 tourné vers les années 1950, Stallman n’avait que faire de vivre en décalage par rapport à ses pairs. Cependant, programmeur habitué à travailler avec les meilleures machines et les meilleurs logiciels, il se retrouvait face à ce qu’il ne pouvait qu’appeler un « choix moral cornélien » : soit il ravalait ses objections contre les logiciels « propriétaires » – terme alors employé par Stallman et ses pairs pour qualifier les programmes dont les termes de copyright ou de licence en restreignent la copie ou la modification – soit il consacrait son existence à l’élaboration d’un autre système libre de logiciels.
Après deux années de lutte contre Symbolics, Stallman avait suffisamment gagné en confiance pour choisir la seconde solution. « J’aurais pu tout aussi bien arrêter toute activité informatique, indique-t-il. Je ne suis pas spécialement doué, mais je suis sûr que j’aurais pu faire serveur. Probablement pas dans un restaurant chic, mais j’aurais bien trouvé une place quelque part. »
Mais laisser tomber complètement la programmation pour devenir serveur, cela aurait voulu dire abandonner une activité qui lui tenait tant à cœur. Stallman devait admettre que, depuis son entrée à Cambridge, le développement logiciel avait bien souvent été sa seule source de plaisir. Plutôt que de tout lâcher, il décida de s’accrocher.
Athée, Stallman refuse les notions de destin, de karma ou autre vocation divine, qui influeraient sur le cours de notre existence. Il a le réel sentiment, néanmoins, que sa décision de combattre les logiciels non libres en créant un système d’exploitation qui aiderait les autres à faire de même, est toute naturelle. Après tout, c’était bien la combinaison de son obstination, de son intuition et de sa virtuosité dans l’écriture du code, qui lui avait permis d’envisager cette alternative que nombre d’autres n’auraient même pas pu imaginer. Dans son article intitulé « Le projet GNU », il affirme son adhésion aux idéaux contenus dans les mots du sage juif Hillel : « Si je ne suis pas pour moi, qui le sera  ? Et si je ne suis que pour moi, qui suis-je ? Et si pas maintenant, quand ? »17
En public, Stallman évite toute référence religieuse et relate sa décision en termes pragmatiques.
« Je me suis demandé, que pourrais-je faire, moi, développeur de systèmes d’exploitation, pour améliorer la situation ? Ce n’est qu’après avoir longuement examiné la question que j’ai pris conscience qu’un développeur de systèmes d’exploitation était précisément ce qu’il fallait pour résoudre le problème. »
Dès lors, tout le reste allait, selon ses propres mots, « se mettre en place ». En 1983, le MIT fit l’acquisition, auprès de Symbolics, de machines Lisp de seconde génération. Sur ces modèles, le système interne n’avait aucune chance de fonctionner. Et une fois la plupart des machines remplacées, Stallman aurait dû tout arrêter, dans l’incapacité de maintenir le système de manière efficace, par manque de rapports de bogues de la part des utilisateurs. Quoi qu’il en fût, il ne souhaitait pas poursuivre. Le système du MIT n’était pas libre, et même si les utilisateurs avaient accès au code source, ils ne pouvaient pas le redistribuer. Sans compter qu’il avait réussi son pari : LMI avait survécu et développait désormais seule ses logiciels.
Plutôt que de passer sa vie à châtier ceux qui avaient détruit son ancienne communauté, Stallman préféra en fonder une nouvelle. Ainsi décida-t-il de refuser tout programme qui le forcerait à compromettre ses convictions morales, et de consacrer sa vie à la création de logiciels permettant d’éviter ce genre d’écueil, à lui comme aux autres. S’engageant à bâtir un système d’exploitation libre « ou [à] mourir à la tâche… de vieillesse, bien entendu », plaisantait-il, Stallman démissionna du MIT en janvier 1984, afin de se lancer dans le projet GNU.
Sa démission le soustrayait du giron légal du MIT. Mais il avait encore suffisamment d’amis et d’alliés au AI Lab pour conserver un accès gracieux à son bureau. Il parvint également à s’assurer des missions en tant que consultant externe pour soutenir les phases initiales du projet GNU.
En démissionnant, Stallman n’en avait pas moins tué dans l’œuf tout débat sur un éventuel conflit d’intérêt ou sur l’appartenance au MIT du logiciel en question. Lui que la crainte de l’isolement social avait conduit à se réfugier tant et plus au sein du AI Lab en tant que jeune adulte, construisait désormais un pare-feu légal entre cet environnement et lui.
Les premiers mois, il travailla également à l’écart de la communauté Unix. Bien que son annonce au groupe net.unix-wizards ait attiré des messages de sympathie, peu de volontaires s’engagèrent à rejoindre la croisade dès la première heure.
« La réaction de la communauté fut assez unanime, se rappelle Rich Morin, alors à la tête d’un groupe d’utilisateurs Unix. ‘Quelle superbe idée ! disait-on. Maintenant, nous voulons voir votre code. Montrez-nous qu’on peut le faire’. »
Conscient de l’ampleur du travail, Stallman décida d’essayer de réutiliser des logiciels libres existants partout où cela était possible. Il commença par rechercher les programmes et outils libres susceptibles d’être convertis en programmes et outils GNU. L’un des premiers candidats fut un compilateur appelé Vuck, qui convertissait des programmes écrits en langage C, très populaire à l’époque, en code compréhensible pour une machine. Traduit du néerlandais, l’acronyme du programme signifiait « Kit de compilation de l’université libre ». Plein d’optimisme, Stallman s’enquit de savoir si le programme était libre. Quelle ne fut pas sa déception lorsque l’auteur l’informa que l’expression « université libre » faisait référence à la Vrije Universiteit Amsterdam (Université Libre d’Amsterdam) !
« Il m’a répondu, moqueur, que si l’université était libre, le compilateur, lui, ne l’était pas », se souvient Stallman. L’auteur de Vuck ne se contenta d’ailleurs pas d’un refus. Il suggéra même à son interlocuteur d’abandonner le projet GNU pour développer des modules complémentaires qui amélioreraient les ventes de Vuck, en prenant part aux bénéfices. « C’est pourquoi j’ai décidé que mon premier programme pour le projet GNU serait un compilateur multi-langage et multi-plate-forme »18, ajoute Stallman.
À défaut de Vuck, il trouva un compilateur Pastel19, écrit par des programmeurs du Lawrence Livermore National Lab. Ils lui en donnèrent une copie et, selon leurs dires, le compilateur était libre d’être copié et modifié. Malheureusement, le programme ne convenait pas, nécessitant des ressources bien trop importantes en mémoire. Il analysait en effet la totalité d’un fichier en mémoire centrale, ce qui avait pour effet d’empêcher les autres données de circuler tant que la compilation n’était pas terminée. Sur de gros ordinateurs, ce défaut de conception était pardonnable. Sur les systèmes Unix, en revanche, il constituait une barrière infranchissable, les machines 32 bits étant alors elles-mêmes souvent trop peu puissantes pour fournir autant de mémoire à un seul programme.
Dans un premier temps, Stallman fit faire au programme des progrès considérables. Il ajouta au compilateur un frontal compatible C et le testa sur le gros Vax, dont le système pouvait dédier davantage de place à la mémoire. Mais lorsqu’il tenta de le porter sur le processeur 68010 et investiga la raison du plantage, il comprit que le problème de taille de mémoire l’obligerait à récrire entièrement un nouveau compilateur à partir de zéro. C’est d’ailleurs ce qu’il finirait par faire plus tard, en créant le GNU C Compiler, plus connu sous le nom de GCC. Mais en 1984, il était encore trop tôt pour aviser quoi faire avec le compilateur ; Stallman mit donc cette tâche en attente et préféra concentrer toute son attention sur le reste du projet GNU.
Ainsi commença-t-il, dès septembre 1984, le développement d’une version GNU d’Emacs, le programme qu’il avait lui-même maintenu une décennie durant. Au sein du monde Unix, les deux éditeurs de texte alors disponibles étaient vi, écrit par Bill Joy, cofondateur de Sun Microsystems, et ed, de Ken Thompson, des laboratoires Bell, par ailleurs co-créateur d’Unix. Tout aussi utiles que populaires, aucun de ces deux programmes n’offrait pourtant les possibilités d’extension sans limites d’Emacs.
En y repensant, Stallman déclare qu’il n’y avait rien de stratégique dans sa décision : « Je voulais un Emacs et c’était l’occasion d’en développer un. »
Une fois de plus, il avait trouvé un code préexistant grâce auquel il espérait gagner du temps. En écrivant une version Unix d’Emacs, il se retrouva vite sur les pas de James Gosling, un diplômé de Carnegie Mellon, auteur d’une version d’Emacs en C baptisée Gosling Emacs ou Gosmacs. La version de Gosling incluait un interpréteur de langage Lisp simplifié, appelé Mocklisp. Bien que son auteur ait placé Gosmacs sous copyright et vendu les droits à UniPress, une compagnie logicielle privée, Stallman fut conforté dans ses intentions par l’un de ses collègues qui avait participé aux premières phases de développement de Gosmacs. Celui-ci assurait en effet que Gosling, alors encore doctorant à Carnegie, lui avait donné par courriel la permission de distribuer sa propre version de Gosmacs, en échange de sa contribution au développement.
Stallman avait pensé en premier lieu ne modifier que les commandes utilisateur, afin d’offrir une compatibilité parfaite avec l’Emacs original tournant sur PDP-10. Pourtant, s’apercevant combien Mocklisp était faible en comparaison du vrai Lisp, il se sentit vite contraint d’en revenir à l’original. Tout naturellement, l’envie lui vint de récrire la plus grande partie du cœur de Gosmacs, mais d’une manière totalement différente, afin de tirer parti de la puissance et de la flexibilité de Lisp. Ainsi, dans le programme GNU Emacs disponible sur l’Internet au milieu de l’année 1985, seuls quelques fichiers contenaient encore du code de Gosmacs.
Cela n’empêcha pas que lorsqu’elle eut vent du projet, la firme UniPress nia les affirmations du développeur qui prétendait avoir reçu le droit de distribuer sa propre version du programme. Hélas, celui-ci ne put remettre la main sur l’ancien e-mail en question pour se défendre. Stallman coupa court en récrivant tout bonnement le code des quelques modules résiduels de Gosmacs.
Néanmoins, la simple idée que des développeurs puissent liquider leurs droits – et, au-delà, l’idée même qu’un développeur dispose de tels pouvoirs commerciaux – lui était intolérable. Dans le discours qu’il prononça en 1986 à l’Institut technique royal suédois, il montra du doigt l’incident d’UniPress comme un nouvel exemple des dangers liés à la privatisation des logiciels.
« Parfois, je me dis que l’une des meilleures choses que je pourrais faire dans ma vie serait de dégotter une quantité gigantesque de logiciels couverts par le secret commercial, et d’en distribuer des copies au coin de la rue. Ainsi, il n’y aurait plus de secret commercial, dit Stallman. Ce serait sans doute une manière beaucoup plus efficace d’offrir aux gens de nouveaux logiciels libres plutôt que de tout écrire moi-même ; mais les gens seraient encore trop lâches pour les prendre. »
En dépit de la tension qu’elle avait provoquée, la controverse sur le code de Gosling aida en fait Stallman et le mouvement pour le logiciel libre sur le long terme. Stallman fut ainsi forcé de trouver des solutions aux faiblesses de la « Commune Emacs »20 et du contrat de confiance informel qui laissait la porte ouverte aux abus. Cela l’obligea aussi à préciser les objectifs politiques du mouvement du logiciel libre.
Suivant la sortie de GNU Emacs en 1985, Stallman publia « Le manifeste GNU », un complément à l’annonce initiale de septembre 1983. Une importante section de ce document était consacrée aux nombreux argumentaires déployés par les programmeurs des secteurs privés et universitaires pour justifier de la prolifération des logiciels privateurs. L’un des arguments avancés, en particulier, « Les programmeurs ne méritent-ils pas une récompense pour leur créativité ? », recevait une réponse qui contenait en elle toute la colère de Stallman à la suite de l’affaire Gosling : « Si quelque chose mérite une récompense, c’est bien la contribution à la société, écrivait Stallman. La créativité peut être un apport à la société, mais uniquement dans le cas où cette dernière est libre d’en utiliser le produit. Si des programmeurs méritent d’être récompensés pour la création de programmes novateurs, ils méritent tout autant d’être punis s’ils en limitent l’utilisation. »21
Avec la publication de GNU Emacs, le projet GNU avait enfin du code à montrer. S’ensuivirent tous les soucis propres à n’importe quelle entreprise produisant du logiciel. En effet, de plus en plus de concepteurs Unix se frottaient au logiciel, et l’argent, les cadeaux ou les demandes de copies sur bande commencèrent à affluer. Pour gérer les aspects commerciaux, Stallman réunit quelques-uns de ses collègues pour former la Free Software Foundation (FSF), une organisation à but non lucratif pour aider le projet GNU à atteindre son but le plus rapidement possible. Avec Stallman comme président, et quelques amis et collègues hackers comme membres du conseil, la FSF permit de donner une vitrine publique au projet.
Robert Chassell, à l’époque programmeur chez LMI, devint l’un des cinq membres du conseil de la FSF à la suite d’une conversation avec Stallman alors qu’ils dînaient ensemble. Il endossa également le rôle de trésorier de l’organisation, un rôle initialement modeste mais qui prit rapidement en importance.
« Je pense qu’en 1985, le total de nos transactions, recettes et dépenses comprises, s’élevait à environ 23 000 dollars, évoque Chassell. Richard avait son bureau et, pour le reste, nous occupions tout l’espace disponible. Tout le fourbi, et surtout les bandes, était rangé sous mon bureau. Cela dura jusqu’à ce que, un peu plus tard, LMI nous prête un local pour stocker les bandes et autres choses de ce genre. »
Au-delà de son rôle de vitrine, la FSF était devenue également le centre de gravitation de tous les programmeurs désabusés. Sur le marché d’Unix, d’apparence encore si collégiale, même lors de l’annonce initiale du projet GNU, la concurrence faisait rage. Tentant de resserrer leur emprise sur les clients, des compagnies commençaient à refuser l’accès au code source d’Unix, tendance qui ne fit qu’accroître le nombre de requêtes concernant les projets de logiciels GNU en cours. Les Unixiens de la première heure, qui avaient par le passé considéré Stallman comme un hurluberlu turbulent, commencèrent à voir en lui un prophète ou une Cassandre du logiciel, selon l’état d’esprit – espérance ou désespoir – avec lequel chacun d’entre eux abordait l’issue du problème.
« Beaucoup ne réalisent pas, jusqu’à ce que cela leur arrive, la frustration qu’il peut y avoir à travailler plusieurs années sur un programme pour se le voir finalement enlever, explique Chassell, résumant par là les sentiments et opinions exprimés dans la correspondance reçue par la FSF pendant les premières années. Quand cela vous arrive une seconde fois, vous commencez à vous dire que cela commence à bien faire ! »
C’est l’expérience de sa propre spoliation qui décida Chassel à prendre part à la FSF. Avant de travailler pour LMI, il avait été engagé pour écrire un livre d’introduction à Unix, pour Cadmus, une compagnie de logiciels située dans la région de Cambridge. Mais lorsque l’entreprise ferma ses portes, emportant dans sa chute les droits du livre, Chassell tenta en vain de les racheter.
« Pour ce que j’en sais, raconte-t-il, ce livre repose toujours sur une étagère quelque part, inutilisable, incopiable, tout simplement hors système. C’était vraiment une bonne introduction, si je puis me permettre. Cela n’aurait pris que trois ou quatre mois, peut-être, pour la transformer en une introduction parfaitement adaptée à GNU/Linux aujourd’hui. Tout ce travail, hormis ce qu’il me reste en mémoire, a été perdu. »
Condamné à voir le fruit de son labeur partir à vau-l’eau pendant que son employeur d’autrefois luttait contre la faillite, Chassell déclare avoir eu alors un avant-goût de la colère qui menait Stallman au bord de l’apoplexie.
« Le plus clair à mes yeux, c’est que si on veut avoir une vie convenable, on ne peut accepter de s’en voir interdire l’accès à certains fragments. Toute cette idée d’être libre d’entrer, de rectifier quelque chose et de le modifier, quoi que cela puisse être, voilà qui change tout ! On peut alors se réjouir du fait qu’après avoir vécu quelques années, ce que l’on a accompli reste valable. Parce que sans cette liberté, votre travail est juste bon à vous être retiré, pour être ensuite rejeté, abandonné ou tout du moins dénué de tout lien avec votre personne. C’est un peu comme perdre un bout de sa vie. »


5. La DARPA (Defense Advanced Research Projects Agency) est l’agence du Département de la Défense des États-Unis chargée de la recherche et du développement des nouvelles technologies. Elle est réputée être à l’origine d’avancées technologiques majeures telles que le réseau Arpanet, ancêtre de l’Internet.
8. Sources multiples : une interview de Richard Stallman, un e-mail de Gerald Sussmann, et le Jargon File 3.0.0. http://catb.org/jargon/html/T/TWENEX.html
10. Voir « MIT AI Lab Tourist Policy » http://www.art.net/~hopkins/Don/text/tourist-policy.html
13. Le Livre de H. P. Newquist, The Brain Makers, affirme de manière erronée que le AI Lab avait demandé à Stallman de se tenir éloigné du projet de Machine Lisp.
14. Dans son livre Hackers, Steven Levy se réfère à cette période lorsqu’il écrit que Stallman est « le dernier des vrais hackers ». Mais ne nous y trompons pas : si Levy utilise l’expression « vrais hackers », c’est pour distinguer la communauté du MIT de deux autres communautés hackers qu’il décrit et nomme plus loin dans son livre. C’est lorsque celle du MIT fut dissoute, laissant Stallman isolé, qu’il devint le dernier des « vrais hackers », une expression que d’ailleurs jamais Stallman n’a employée pour lui-même.
16. [Gates, 1976] Une copie de cette lettre An open letter to hobbyists figure sur Wikipedia (en anglais) : http://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists
17. [Stallman, 1999] , p.56 Stallman ajoute une note de bas de page à ce propos : « Je suis athée et je n’ai d’obédience pour aucun chef religieux, mais j’ai parfois de l’admiration pour ce que l’un d’entre eux peut dire. »
19. Le langage Pastel fut ainsi nommé ainsi car considéré comme une version altérée du langage Pascal (« Off-color Pascal »).
20. Cf. chap. 6.



  Poule ou l'oeuf

One minute, please...

Fermer