Voici le deuxième billet de la série sur le logiciel libre, contenant ici la Partie 1 du texte.

Sommaire

Partie 1 : Le logiciel libre, toute une histoire

Le concept du logiciel libre n’est pas né en un seul jour. L’histoire de sa création nous fait remonter le temps jusqu’au milieu des années 1970 quand un certain Bill Gates décide de prendre sa plume, enfin plutôt sa machine à écrire, et de se lancer dans la rédaction d’un manifeste contre le libre partage des logiciels. En avançant dans la frise chronologique, nous croiserons également un programmeur américain pestant contre son imprimante pour ensuite faire connaissance avec un étudiant finlandais passionné d’informatique.

Une lettre ouverte pour le logiciel propriétaire

Le 3 février 1976, le cofondateur de la société informatique Micro-Soft, Bill Gates, écrit une lettre publiée dans le bulletin du Homebrew Computer Club1 en s’adressant à tous les « hobbyist » du club, les hackers, les amateurs, les passionnés de bricole d’ordinateurs personnels, qui sont alors accusés de violer les droits d’auteur concernant l’utilisation de Altair BASIC, l’interpréteur BASIC créé par Bill Gates et Paul Allen pour les machines Altair. C’est la première confrontation entre le point de vue mercantile et celui des hackers sur ce qu’est un logiciel. Ce sont ces hackers qui plus tard seront à l’origine de la première définition du logiciel libre.

Resituons-nous dans le contexte informatique de 1976 : jusqu’à cette époque, la science des ordinateurs était surtout une affaire de scientifiques et d’étudiants. C’est dans la première moitié des années 1970 que les premiers ordinateurs personnels sont apparus. Pourtant, ces petits bijoux de technologie n’étaient pas encore destinés au grand public : il fallait de solides connaissances en électronique et en programmation pour réussir à comprendre le fonctionnement de ces machines. Ces quelques privilégiés du savoir technique sont ces hackers, ces "hobbyist" comme les définit Bill Gates. Mais qui dit nouvelle technologie dit également nouveau marché et ces amateurs d’informatique personnelle représentaient alors les clients de ce marché. Le marché du logiciel était alors une notion complètement nouvelle : dans les années où l’informatique était encore réservée aux scientifiques et aux étudiants, seul le matériel était fourni par les constructeurs. Les logiciels étaient écrits par les utilisateurs, qui étaient ensuite gracieusement partagés entre universitaires sans se soucier des histoires de licences ou de droits d’auteur. Avec l’arrivée de l’informatique personnelle, certains entrepreneurs ont su prendre le créneau et créer ainsi le marché du logiciel, développé et vendu par une société qui détient alors tous les droits sur ces logiciels. C’est ce qu’a réalisé Bill Gates avec la société Micro-Soft, et c’est aussi parce que ce concept de marché du logiciel n’était pas encore bien compris par les utilisateurs qu’il a décidé d’écrire une lettre ouverte aux passionnés d’informatique leur demandant de cesser le partage de ses logiciels.

Dans sa lettre, Bill Gates accuse donc 90% des utilisateurs de Altair BASIC de ne pas avoir payé le logiciel. Il présente la culture de partage du logiciel comme une pratique dépassée, qui devrait ne plus exister. Son principal argument était de dire que personne n’est dans la capacité de proposer un logiciel totalement gratuit qui serait en mesure de rivaliser en terme de qualité avec des logiciels réalisés par une équipe de professionnels.

Qui a la possibilité de faire gratuitement un travail d’une qualité professionnelle ? Quel amateur peut embaucher trois hommes pendant un an pour programmer, rechercher les bugs et documenter son produit, puis le distribuer gratuitement ?

Bill Gates, An Open Letter to Hobbyist

Aujourd’hui, le non-fondé de cette affirmation peut-être facilement prouvée par les nombreux projets de logiciels libres élaborés par des communautés de développeurs des quatre coins du monde et qui ont su s’imposer dans le monde informatique.

Le projet GNU et les prémices du logiciel libre

Nous sommes en 1980. À vingt-sept ans, Richard Matthew Stallman est programmeur au Laboratoire d’intelligence artificielle du Massachussetts Institute of Technology. Plusieurs semaines auparavant, la Xerox Corporation, entreprise de fabrication d’imprimante dont le laboratoire est connu pour avoir inventé le photocopieur xérographique2, la souris ou encore les interfaces à fenêtres3, a offert au MIT un prototype de leur nouvelle imprimante. Seulement, cette imprimante présente un défaut récurrent de bourrage papier. Notre ami Stallman en fit les frais, et nous n’allons pas nous en plaindre, car c’est grâce à cet incident que la notion de logiciel libre va naître.

Revenons à notre histoire : après avoir lancé l’impression d’un document avec la fameuse imprimante laser fraîchement arrivée au laboratoire, Stallman voulut récupérer ses pages. Problème : dans le bac de l’imprimante, quelques feuilles orphelines appartenant à un de ses collègues, mais aucune trace de son document. Visiblement, il y avait encore une fois un problème de bourrage papier, et le collègue en question n’avait pas voulu s’attarder sur sa résolution. Stallman, lui, chercha un moyen de remédier à ce cafouillage informatique, quitte à sacrifier quelques minutes de travail. Pour cela, il procéderait comme à son habitude de bidouilleur : chercher la solution dans le code source du logiciel pilote de l’imprimante. C’est en cherchant ce pilote que Stallman fit une découverte troublante : habituellement, les sociétés éditant des logiciels mettaient à disposition de l’utilisateur le code source lisible, avec une petite documentation expliquant chaque fonction du code. Or, aucun moyen de trouver une version lisible du code de l’imprimante Xerox. Les fichiers du logiciel étaient fournis sous forme binaire, compilés, rendant impossible leur lecture.

Ennuyé, Stallman remit ce problème à une prochaine fois. Mais cette prochaine fois allait être riche en informations. En effet, une rumeur circulait dans le laboratoire disant qu’un chercheur du département informatique de l’université de Carnegie-Mellon possédait une copie du code source du pilote de l’imprimante. Enthousiaste, Stallman entreprit d’aller rencontrer ce chercheur afin de lui demander une copie du code source. Mais son euphorie fut vite refroidie, car il apprit que l’université Carnegie-Mellon avait été en 1979 le théâtre d’une affaire ayant fait réagir dans le monde de la programmation informatique. Brian Reid, doctorant de Carnegie-Mellon, avait refusé de communiquer à ses pairs le code de son programme de formatage de texte Scribe, ce qui fut considéré comme une trahison de la notion de solidarité qu’entretenaient les puristes du partage des ressources entre programmeurs. Même si ses chances étaient faibles, Stallman alla tout de même trouver ce chercheur, lui demanda le précieux sésame, mais celui-ci refusa, expliquant qu’on lui avait interdit de le faire. Stallman fut pour la première fois de sa carrière de programmeur confronté à une clause de confidentialité dictée par une société informatique à l’utilisateur.

Dans cette confrontation, Stallman vit toute une idéologie s’écrouler : désormais, les sociétés informatiques allaient restreindre la possibilité d’utiliser leurs logiciels aux utilisateurs ayant signé un contrat les interdisant d’étudier le code source du logiciel, de le modifier, ou de le partager. Petit à petit, il retrouva cette situation au sein même du MIT. Cet endroit où, quand il y arriva en 1971, il y avait rejoint une « joyeuse communauté de hackers qui aimaient programmer, qui aimaient découvrir ce qu’on peut faire avec un ordinateur » dont la philosophie était de penser que quiconque étant assis devant un ordinateur devait pouvoir en faire ce qu’il voulait. Ce nouveau système économique du logiciel, Richard Stallman s’est juré de ne jamais y prendre part. Et quand les systèmes d’exploitation devinrent eux aussi « privatisés », obligeant l’utilisateur à ne pas le partager, il décida d’agir.

Je me disais, « C’est mal ! Je ne vais pas vivre comme ça ! » Alors, je cherchais une nouvelle alternative et j’ai réalisé : je suis un développeur de système d’exploitation. Et si je développe un nouveau système d’exploitation, et qu’en tant qu’auteur j’encourage les gens à le partager en disant à tout le monde « Venez, prenez-le, utilisez-le, formez une nouvelle communauté », pas seulement parce qu’il me fallait un moyen pour pouvoir utiliser des ordinateurs sans trahir d’autres personnes, mais parce que je voulais aussi donner ce moyen à tout le monde. Tout le monde pourrait ainsi se sortir de ce dilemme moral. Et alors j’ai réalisé que c’était ce que je ferai de ma vie.

Richard M. Stallman, Revolution OS

En janvier 1984, Richard Stallman démissionna de son emploi au MIT, et commença à développer son système d’exploitation libre : GNU. Le nom GNU est un acronyme récursif qui signifie « GNU is not Unix ». Cet acronyme voulait faire comprendre que le système d’exploitation GNU ressemblait à un système d’exploitation UNIX, mais qu’il n’en était pas un. GNU a été écrit de zéro, from scratch comme disent nos amis anglophones, car UNIX était un logiciel propriétaire, ainsi on ne pouvait pas le partager. UNIX était constitué d’un grand nombre de programmes séparés communiquant entre eux. Stallman s’est donc mis en tête de réécrire chaque programme un à un afin de développer GNU. Mais réécrire chaque programme UNIX de zéro représentait un travail colossal pour une seule personne. Stallman rédigea alors une annonce, invitant les développeurs qui le souhaitaient à venir l’aider à retranscrire les programmes UNIX pour former GNU. La communauté GNU fut formée à partir du moment où quelques personnes ont commencé à rejoindre le projet. Au début des années 1990, Stallman et sa communauté avaient presque remplacé tous les programmes UNIX. Le seul programme qui manquait encore était le noyau, ce programme qui alloue les ressources de l’ordinateur aux autres programmes. Les développeurs de GNU s’attelaient à ce noyau, qu’ils nommèrent Hurd par la suite, mais ne l’avaient pas encore terminé quand un étudiant finlandais, Linus Torvalds, développa le noyau Linux.

Linux, l’élément déclencheur

C’est en 1969 que Ken Thompson, travaillant pour les laboratoires Bell, créé le système d’exploitation UNICS, qui deviendra par la suite UNIX. Les laboratoires Bell dépendaient de la société AT&T, entreprise vendant des équipements téléphoniques et télégraphiques. Ceux-ci se voyant interdits de commercialiser d’autres produits que les équipements téléphoniques et télégraphiques, le système UNIX fut, à partir de 1975, distribué avec son code source dans les universités à des fins éducatives, moyennant l’acquisition d’une licence au prix très faible. À l’automne 1975, Bill Joy et Chuck Haley, alors étudiants à l’université de Berkeley (Californie), s’intéressent de plus près au système en étudiant son noyau et finissent par créer le système BSD. En 1992, Unix System Laboratories (USL), aile de l’entreprise AT&T chargée de vendre le système UNIX, réagit en attaquant Berkeley Software Design Incorporated (BSDI), corporation mise en place pour développer et vendre une version commerciale de BSD.

Pourquoi parle-je de tout cela dans un chapitre dédié à Linux ? Parce que c’est grâce à ce procès et au retard que prend le développement de Hurd qu’un certain Linus Torvalds va créer le noyau Linux.

À sa sortie, le noyau Linux créé par Linus Torvalds était déjà plutôt stable à la vue du temps passé à le développer. Au départ, Linus souhaitait simplement développer son propre émulateur de terminal pour remplacer celui du système d’exploitation Minix créé par Andrew Tanenbaum4, qu’il jugeait trop rudimentaire. Au bout de quelques mois, ce logiciel devint un véritable noyau de système d’exploitation. Ainsi, le 26 août 1991, Linus Torvalds annonce sur un forum Usenet5 dédié à Minix qu’il est en train d’écrire un nouveau système d’exploitation en tant que « hobby, qui ne sera pas aussi grand et professionnel comme GNU. »

Je suis en train de faire un système d’exploitation (libre) (seulement un hobby, ne sera pas grand et professionnel comme gnu) pour clones AT 386(486). Je travaille dessus depuis avril, et il sera bientôt prêt. […] J’ai actuellement porté bash(1.08) et gcc(1.40), et cela semble fonctionner.

Linus Torvalds, What would you like to see most in minix ?

Le 5 octobre, Torvalds annonce la sortie de la version 0.02 du noyau Linux. En février 1992, le noyau Linux version 0.12 sera publié sous la licence publique générale GPL6 (GNU GPL) et devient officiellement un logiciel libre.

À l’origine, Torvalds n’avait donc pas développé le noyau Linux pour l’attacher au projet GNU. C’est seulement après que des connaissances communes à Torvalds et au projet GNU ont essayé de placer le noyau Linux au centre des programmes GNU pour former un système complet que la symbiose entre Linux et GNU a commencé. C’est cette association permettant de construire un système complet et utilisable sur un ordinateur qui a permis aux logiciels libres de se faire connaître.

À ce propos, il est temps de faire un éclaircissement sur les termes GNU et Linux. On ne sait pas toujours si l’on doit dire « J’utilise un système Linux », ou encore s’il est vrai de dire « J’ai installé Linux sur mon ordinateur ». Comme nous avons pu le voir précédemment, GNU est un ensemble de programmes permettant de former un système d’exploitation. Linux est un noyau de système d’exploitation : c’est le noyau qui va gérer les autres programmes du système. Si par exemple vous utilisez une distribution qui utilise les programmes GNU articulés autour du noyau Linux, comme Debian, Red Hat Linux ou encore Ubuntu, alors il serait convenable de parler de distribution GNU/Linux. En revanche, quand on parle de Linux, on parle seulement du noyau. Il faut aussi prendre en compte que GNU n’est pas utilisé seulement avec Linux, et inversement. Par exemple, une distribution qui utilise les outils GNU et le noyau Hurd développé par le projet GNU, on parlera de distribution GNU/Hurd.

À suivre…


  1. Club d’informatique de la Silicon Valley entre 1975 et 1986. Des passionnés d’informatique s’y retrouvaient régulièrement, parmi les plus célèbres Steve Wozniak et Steve Jobs. 

  2. Procédé d’impression utilisé pour la photocopie et l’impression laser aussi appelé électrophotographie. Xerox Corporation a été le pionnier de l’imprimerie laser, c’est qui explique le mot « xérographie ». 

  3. C’est dans les laboratoires Xerox qu’Alan Kay et l’équipe d’Adele Goldberg inventèrent l’interface graphique moderne et les icônes qui peuvent être contrôlées par la souris, qui fut inventée en 1963 par Douglas Engelbart. 

  4. Andrew Stuart Tanenbaum (1944 - ) est un chercheur et enseignant en informatique connu pour ses ouvrages de vulgarisation, comme Réseaux ou Systèmes d’exploitation. Il est également le créateur du système d’exploitation Minix. 

  5. Système en réseau de forums, inventé en 1979 par un groupe d’étudiants de Caroline du Nord. Ce système était prévu pour fonctionner dans un environnement Unix. 

  6. Licence créée par Richard Stallman après avoir fondé la Free Software Foudation. Nous en parlerons dans un prochain chapitre.