Histoire du logiciel libre

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L'histoire du logiciel libre est intimement imbriquée avec celle de l'informatique et celle du génie logiciel. Elle ne commence en tant que telle qu'à partir du moment où est apparu le besoin de distinguer le logiciel libre du logiciel propriétaire, selon le principe énoncé pour Le Cru et le cuit.

Ces prémices datant de la fin du XXe siècle, il ne peut s'agir d'une discipline académique. L'histoire du logiciel libre est donc présentée ici de façon informelle.

Prémices[modifier | modifier le code]

Manipulation des nombres sur un boulier

Historique[modifier | modifier le code]

Le logiciel libre trouve ses sources dans le rapport au savoir et à la connaissance générale propres à l'informatique. Le terme « informatique » est à prendre ici dans son sens premier de mécanisme d'information automatique, comparable aux formes les plus archaïques comme le boulier, compréhensible et réutilisable par n'importe qui.

L'ENIAC, la première machine brevetée comme ordinateur, mais pas forcément le premier ordinateur.

Plus récemment, certaines de ces logiques élaborées en intelligence artificielle empruntent des principes aux mathématiques et aux neurosciences entre autres, toujours sans restrictions liées à des notions de propriété intellectuelle.

Parmi les nombreux précurseurs qui ont effectué la transition entre un paradigme de connaissances multiples et un paradigme logiciel, on peut citer John von Neumann et Julian Bigelow avec la machine ENIAC de 1948. Celle-ci fut brevetée comme le premier ordinateur numérique, mais un procès en 1973 jugea qu'elle avait repris les idées de l'ordinateur ABC. C'est peut-être le premier conflit de propriété sur la paternité des logiques liées à l'informatique.

Période universitaire[modifier | modifier le code]

Jusque dans les années 1970, les logiciels étaient plus ou moins libres d'être étudiés, utilisés, modifiés, du moins à l'intérieur du cadre universitaire, suivant ainsi la logique des sciences en général. Ce n'était pas forcément lié aux lois en vigueur, mais aucun intérêt commercial ne s'y opposait puisque seules de grosses compagnies pouvaient acheter des ordinateurs et les logiciels associés. Elles avaient tout intérêt à permettre la création de communautés de développeurs pour favoriser l'amélioration du logiciel (qui était donc leur propriété).

Autrement dit, le peu de personnes compétentes et la structure du marché pour lequel était utilisé le logiciel le rendait plus ou moins libre dans les faits.

Transition[modifier | modifier le code]

Richard Stallman, le créateur du mouvement du logiciel libre

C'est dans ce contexte, dans les années 1980, qu'un programmeur de système d'exploitation au Massachusetts Institute of Technology (MIT), un certain Richard Stallman, commence à constater des restrictions des possibilités d'utilisation. Il se trouve face au problème éthique de devoir développer des logiciels dont l'utilisation sera restreinte, qui ne pourront pas être partagés en raison des droits du propriétaire du logiciel (souvent distinct du créateur). Stallman commença à constater ces restrictions en présence de programmes sur lesquels il ne pouvait intervenir, un pilote d'imprimante notamment[1]. Robert Sproull aurait refusé de lui fournir le code source en raison d'un contrat de non divulgation que Xerox avait passé avec lui, pratique encore peu courante à l'époque[2].

Bien qu'anecdotique, cette petite histoire est souvent prise comme étant le point de départ de l'informatique libre, puisque c'est à partir de là semble-t-il que ce Richard Stallman consacrera son énergie à résoudre ce problème de conscience, ce qui fera de lui le premier et le plus emblématique des ambassadeurs du logiciel libre.

Le mouvement du logiciel libre[modifier | modifier le code]

Un mouvement social s'est petit à petit constitué pour faire évoluer les droits que les utilisateurs ont sur le logiciel afin d'accéder à la libre circulation des informations dans ce domaine.

Les idées[modifier | modifier le code]

Exposition des problèmes[modifier | modifier le code]

Richard Stallman explique dans "Pourquoi les logiciels ne doivent pas avoir de propriétaire" une « analogie abusive avec les objets matériels[3]. ». Pour expliquer ce qui sera repris dans la notion de Biens rivaux il y utilise la métaphore culinaire (qu'il reprendra régulièrement[4]) pour dissocier le plat qui, s'il est pris par quelqu'un d'autre peut entraîner un manque, et la recette de cuisine. Partager la recette selon lui ne peut être que bénéfique, puisque cela ne crée pas de manque, et qu'au contraire peut profiter à celui qui la donne s'il peut profiter à son tour des améliorations apportées.

Il précise dans le "manifeste GNU" que

« Extraire de l'argent des utilisateurs d'un programme en restreignant leur utilisation du programme est destructif parce que, au bout du compte, cela réduit la quantité de richesse que l'humanité tire du programme. {…} C'est la morale kantienne, ou règle d'or. Puisque je n'aime pas la situation qui résulte d'une rétention générale de l'information, il me revient de considérer comme immoral d'agir ainsi[5]. »

Le problème n'était donc pas seulement de permettre la réutilisation du code source, mais de faire en sorte que l'information qu'il contient reste en libre circulation, et que les avantages qu'il procure restent librement utilisables.

Stallman précise les raisons de cette différenciation[6] : de son point de vue, ramenés à quelques concepts élémentaires les logiciels sont des idées, et on peut les découper en logiques simples dont le nombre devient alors limité.

De ce point de vue une partie de code réutilisable peut se trouver en situation de ne pouvoir fonctionner qu'associé à des éléments propriétaire. Dans ce cas, son utilisation dans un contexte fonctionnel est donc soumis aux limites de copyright des éléments propriétaires indissociables.

Solution utilisée[modifier | modifier le code]

Levitating Gnu par Nevrax Design Team

Considérant que le système d'exploitation est un élément stratégique indispensable, il entreprit en 1983 la conception d'un système d'exploitation libre, GNU, auquel il se consacra entièrement à partir de 1984 après avoir démissionné du MIT.

Pour mettre en place son projet GNU, il dut préciser les principes du logiciel libre décomposés en quatre libertés fondamentales : celle d'utiliser, d'étudier, de modifier et de redistribuer des versions modifiées.

Le copyleft[modifier | modifier le code]

Logo du copyleft

Les principes énoncés pour le logiciel libre étaient déjà existant dans le cadre universitaire par exemple, mais pour développer GNU, les contributeurs intéressés par le projet (et Richard Stallman lui-même) voulaient être certain que leurs apports resteraient libres.

L'idée d'interdire d'interdire sera alors exprimée par le copyleft (ou gauche d'auteur[7]) dont la finalité est clairement exposée dans le manifeste GNU :

« L'idée centrale du gauche d'auteur est de donner à quiconque la permission d'exécuter le programme, de le copier, de le modifier, et d'en distribuer des versions modifiées - mais pas la permission d'ajouter des restrictions de son cru. C'est ainsi que les libertés cruciales qui définissent le « logiciel libre » sont garanties pour quiconque en possède une copie; elles deviennent des droits inaliénables[8]. »

Ce copyleft va au-delà des principes du logiciel libre en les imposant définitivement à tout ce qui est créé à partir d'éléments copyleftés. Il a alors été qualifié viral et la question de savoir si appliquer le copyleft rend le logiciel plus libre ou moins libre est l'un des débats sans fin les plus courants (voir troll).

Les Licences GNU[modifier | modifier le code]

Ce principe de copyleft dut s'inscrire dans le cadre légal pour être utilisable. C'est avec Eben Moglen que sont mise au point les licences qui précisent sur le principe du droit d'auteur les conditions d'utilisation que celui-ci impose aux utilisateurs, en l'occurrence la pérennité des principes du logiciel libre.

Les licences GNU font leur apparition avec la licence GNU Emacs de 1985. Mais cette licence manque de formalisme juridique, ne s'applique qu'au logiciel GNU Emacs, et exige l'envoi de toute modification du code au projet GNU, ce qui crée une hiérarchisation de fait entre programmeurs. Stallman s'attache donc rapidement à élaborer une licence mieux rédigée, plus égalitaire et d'un objet plus général, la GPL. Celle-ci va évoluer sur plusieurs années, jusqu'à la version 1.0 de 1989. La GNU General Public License sera rapidement accompagné de versions adaptées à des cas particulier, la LGPL (GNU Lesser General Public License et la GFDL (GNU Free Documentation License).

Les groupes[modifier | modifier le code]

La Free Software Foundation[modifier | modifier le code]

Free Software Foundation logo and wordmark.svg

La mise au point du système GNU exigeait la réunion de personnes, la création d'une communauté, autour du projet. La création de la Free Software Foundation (FSF) en 1985 avait ce rôle, rôle que l'on peut retrouver sous diverses formes d'associations liées aux développement de tous les grands logiciels libres.

Mais en tant que mouvement précurseur, la FSF a aussi un rôle plus imbriqué avec la défense du logiciel libre en général, avec des intentions plus sociales et politiques. On peut citer sa présence indirecte dans des domaines comme les brevets logiciels, ou les systèmes de gestion des droits des utilisateurs (DRM).

Le mouvement Open source[modifier | modifier le code]

Opensource.svg

Les principes du logiciel libre ne se limitent pourtant pas à ceux du mouvement initial associé au projet GNU, souvent jugé radical, et parfois anti-commercial. Parmi les mouvements émergents il y a celui de l'Open Source né en 1998.

La figure emblématique de ce mouvement est Eric Raymond qui a analysé les avantages de ce mode de fonctionnement et les a exposé dans son livre "La cathédrale et le bazar". Il est également le fondateur avec Bruce Perens de l'Open Source Initiative qui se veut plus proche des problèmes techniques et économiques. La définition de l'Open Source aurait été faite par ce dernier à partir des principes du logiciel libre selon Debian[9].

Pour les uns, et notamment ses créateurs, cette institution défend le logiciel libre mais sous une forme plus présentable et moins ambigüe. Pour les autres, dont Stallman, même à travers une pratique technique identique, ce mouvement tend à perdre la motivation première de défense des libertés.

C'est également une question à l'origine de débats accentuant les discordes, bien qu'il existe des mouvements qui tendent à réunir les deux camps, comme à travers le terme FLOSS, et que la différence soit souvent purement syntaxique dans l'esprit de ceux qui les emploient[10].

Le logiciel libre est également défendu par des réseaux militants alternatifs comme Samizdat. Samizdat est ainsi à l'origine de l'organisation des Zelig Conferences.

L'évolution du logiciel libre[modifier | modifier le code]

Arbre généalogique des systèmes Unix, les versions libres commencent à partir de BSD et GNU

Il existait avant le projet GNU de nombreux logiciels libres, principalement les travaux issus des grandes universités; on peut citer le système de fenêtrage X Window repris dans le projet GNU, mais ils ont toujours ou très majoritairement été inclus ou associés à des structures dites propriétaires dans le cadre de leur utilisation.

Les distributions[modifier | modifier le code]

BSD[modifier | modifier le code]

Historiquement il existait déjà très tôt des systèmes d'exploitation libres qui n'imposent pas de par leur licence de droits inaliénables de l'utilisateur à la façon copyleft. Ils sont souvent défendus comme étant donc plus libres. Le plus emblématique est le système BSD, une autre architecture de type Unix dont la première version date de 1977 et que l'on retrouve sous de nombreuses déclinaisons, y compris dans des systèmes d'exploitation dit propriétaires qui peuvent en utiliser des parties, comme NeXTSTEP puis Mac OS X.

C'est le premier système d'exploitation libre, car il répond aux qualifications de logiciel libres qui seront établies plus tard. Si le mouvement du logiciel libre ne l'a pas adopté pour autant, c'est que ces licences accordent des droits proches du domaine public, ce qui était jugé trop permissif pour aboutir à des systèmes préservant les libertés de l'utilisateur. Cette idée est source de polémique et ne peut de toute façon pas stigmatiser le mouvement BSD comme le prouve le développeur Theo de Raadt.

Linux[modifier | modifier le code]

Les distributions GNU/Linux issues du mouvement des logiciels libres

Le premier système d'exploitation libre à la sauce copyleft donc issu du projet GNU n'est apparu qu'en 1992 avec la première réunion des éléments de GNU en développement depuis 1984 et du Noyau Linux. Ce dernier a été créé par Linus Torvalds sur la base de Minix, et diffusé sous licence GPL en 1991. Il a ensuite été sans cesse amélioré par de très nombreux autres programmeurs de par le monde (dont Alan Cox) pour devenir un des noyaux de système d'exploitation de référence.

C'est sur cette base dite GNU/Linux mais plus couramment appelée Linux que se sont constituées les premières Distribution Linux, qui ont le plus souvent servi de base de conception aux plus récentes. Parmi les plus emblématiques on peut citer Slackware, Debian et Red Hat, dont la distinction à l'origine se fit par leurs philosophies respectives: l'excellence technique, l'universalité défendue par la FSF (à travers la personnalité de Ian Murdock), et l'ajustement aux besoins commerciaux.

Les logiciels associés[modifier | modifier le code]

Les serveurs[modifier | modifier le code]

Une des premières utilités répandues de ces systèmes d'exploitation libre est la distribution de données, on parle de serveur informatique. Un logiciel distribuant ces données "sur le Web" serveurs Web est le serveur http Apache qui a joué un grand rôle dans la démonstration des capacités (encore peu reconnues) des logiciels libres. Il est associé comme la plupart des grands acteurs du logiciel libre à une organisation, la fondation Apache, et à un type de licence particulier répondant a des besoins précis, la licence Apache.

Créé en 1995 à partir d'un logiciel du domaine public, il est étroitement lié au couple PHP/MySQL, qui réunit le langage de programmation de pages web dynamiques PHP créé en 1994 par Rasmus Lerdorf, et le gestionnaire de base de données associé MySQL créé en 1995 et passé sous licence GPL en 2000.

Les interfaces graphiques[modifier | modifier le code]

KDE 1.0
KDE 4.0
GNOME 2.20

En parallèle de cette envolée, dans les années 1995, les mécanismes techniques de l'interface graphique étaient déjà en développement depuis longtemps. Un des personnages centraux de ce travail est Keith Packard, et un ensemble de logiciels utilisant presque systématiquement la lettre X (X11 X.org… ). Pourtant les interfaces "homme/machine" n'étaient pas très évoluées ni intuitives, et les systèmes à base de logiciels libres étaient réputés pour être réservés aux informaticiens.

Une des révolutions vient de l'inclusion à ces systèmes de l'interface graphique KDE, un environnement de bureau puissant, mais fondé sur une bibliothèque d'éléments alors propriétaires. La réaction de la part des défenseurs du tout libre fut la création du projet concurrent GNOME et de bibliothèques libres compatibles, Harmony. Les bibliothèques Qt en question furent mises sous licence GPL, mettant fin au projet Harmony, mais pas au projet GNOME. Les deux interfaces graphiques ont continué à se développer parallèlement et parfois dans un profond dénigrement réciproque, alimenté entre autres par une figure de proue du système GNOME, Miguel de Icaza. La tendance générale est pourtant au rapprochement en particulier autour de l'initiative freedesktop.

Là encore, au-delà du simple logiciel ce sont de véritables organisations qui se sont constituées autour de principes clairement annoncés[11].

Les langages de programmation[modifier | modifier le code]

À l'opposé de l'interface graphique, c'est-à-dire hors de portée de ce qui est visible par l'utilisateur final, une des bases du logiciel est le langage de programmation.

Certaines structures sociales autour de ces langages sont de type logiciel libre. Le langage Perl a été créé en 1987 par Larry Wall et édité lui directement sous licence GPL puis sous sa propre licence, Artistic License, le tout maintenu par un organisme à but non lucratif, The Perl Foundation. De la même manière, le langage python, crée en 1990 par Guido van Rossum, est géré par la Python Software Foundation et édité sous la Python Software Foundation License.

Les logiciels multiplate-forme[modifier | modifier le code]

C'est une autre orientation du développement que l'on peut dire transversale qui voit un logiciel particulier tendre à devenir la référence pour une tâche donnée, tous systèmes confondus. Cette orientation multiplate-forme n'est pas toujours très appréciée par ceux qui cherchent à obtenir un système complètement libre, plutôt qu'une fonctionnalité libérée dans un environnement qui ne l'est pas forcément.

On peut citer différents exemples de logiciels type suivant la part de conception dans un contexte du logiciel libre.

  • Type GNU, l'exemple Gimp

Logiciel historique du projet GNU, il s'est répandu de par ces qualités à d'autres environnements que celui prévu à l'origine. Cette conception d'abord exclusive l'a en partie limité dans cette extension (le type de fenêtrage, ou la bibliothèque GTK+ le rendent parfois plus efficace dans son cadre habituel).

Issus de la libération d'un logiciels propriétaire, ici Netscape, et repris par une organisation à but non lucratif, ici la Fondation Mozilla. Il est considéré comme une réussite incontestable dans le domaine du logiciel libre, de par la forte diffusion de son produit phare, le navigateur web Firefox, mais aussi par la façon dont il s'est structuré face à une forte concurrence commerciale qui diffuse le plus souvent elle aussi ses navigateurs gratuitement.

C'est un autre exemple de réussite de logiciel libre indépendant des plates-formes, mais son mode de fonctionnement est très différent. C'est l'entreprise Sun Microsystems (aujourd'hui Oracle Corporation) qui a choisi d'utiliser la licence GPL pour distribuer sa suite bureautique. Elle continue à payer des salariés pour son développement, en partie pour promouvoir le Java.

  • Type libre hors contexte, l'exemple VLC

Ce sont des logiciels de conception libre dès l'origine attachés à une tâche bien précise (ici la lecture de flux) qui ont utilisé la licence libre pour des raisons logiques, ici un développement universitaire. Sur des bases qui ne sont pas toujours celles des principes originaux, nombre de logiciels de ce genre ont profité des avantages logiques que peut apporter ce type de licence pour connaitre dans le cas de VLC une évolution rapide dans un domaine pourtant très concurrentiel.

L'utilisation des principes au-delà du logiciel[modifier | modifier le code]

Une des formes les plus inattendues des licences et des principes issue du mouvement du logiciel libre est certainement celui du principe de culture libre. Il en découle en grande partie, dans la façon d'aborder le principe de propriété culturelle notamment, mais il s'en distingue très largement.

Les zones d'information[modifier | modifier le code]

L'échange lié au logiciel libre pour se tenir au courant des nouveautés, des problèmes, et aussi pour débattre s'est en partie mis en place à travers des organisations autonomes comme Slashdot. Elle ne se limite pas au logiciel libre, mais ces concepts y sont repris et très présents.

Les annuaires[modifier | modifier le code]

Une des formes les plus proches du logiciel est celle qui consiste à recenser les logiciels libres (sur internet), comme le fait Framasoft. On peut constater que le site s'est étoffé en ajoutant une partie dite expression libre et une dite culture libre. Ce type de référencement libre peut aussi être imagé par l'annuaire dmoz.

Les licences artistiques[modifier | modifier le code]

Une autre évolution plus indirecte mais toujours très liée au niveau culturel est celle de la création de licences particulières permettant de stipuler des autorisations de réutilisation. La plus connue est Creative Commons, fondé par Lawrence Lessig, qui tente de faciliter pour l'auteur d'une œuvre le choix de ce qu'il souhaite partager ou non.

La création mise en commun[modifier | modifier le code]

Richard Stallman lors de Wikimania en 2005

C'est également sur les bases historiques du mouvement du logiciel libre qu'ont pu se mettre en place des structures comme Wikipédia. La base logicielle MediaWiki est de type logiciel libre, et un soin particulier est mis sur la possibilité de redistribution, donc sur l'identification du type de licence utilisée pour les fichiers ajoutés comme les images.

Historiquement, il y eut certainement une émulation d'idée avec le projet GNUPedia[12].

Notes et références[modifier | modifier le code]

  1. « J'avais déjà eu l'expérience douloureuse des accords de non-divulgation, quand quelqu'un m'avait refusé, ainsi qu'au laboratoire d'IA du MIT, l'accès au code source du programme de contrôle de notre imprimante (l'absence de certaines fonctionnalités dans ce programme rendait l'utilisation de l'imprimante très frustrante). Aussi ne pouvais-je pas me dire que les accords de non divulgation étaient bénins. J'avais été très fâché du refus de cette personne de partager avec nous ; je ne pouvais pas, moi aussi, me comporter d'une telle manière à l'égard de mon prochain. »(source)
  2. Cette information est issue du document Libre comme Liberté (traduit de l'anglais Free as in Freedom), par Sam Williams, chapitre 1, disponible sur Wikisource.
  3. Pourquoi les logiciels ne doivent pas avoir de propriétaire
  4. Il l'utilisera par exemple devant la caméra dans le documentaire Nom de code Linux diffusé sur arte
  5. Le manifeste GNU
  6. Lors d'une conférence à l'Assemblée Nationale (en France) à propos des brevets logiciels (source général source audio direct), ou de façon proche dans une lettre ouverte au parlement italien où il écrit Contrairement au droit d’auteur [NDT : "copyright"], qui protège les détails d’un programme dans son ensemble mais pas les idées qu’il met en jeu, un brevet logiciel impose un monopole d’état sur l’utilisation d’une technique. Or un logiciel complexe utilise des milliers de techniques de ce genre. source
  7. Cette appellation est basée sur un double jeu de mots opposant deux sens distincts des mots right et left, le premier opposant littéralement « droite » et « gauche », le second opposant « le droit » et « l'abandon », signifiant ainsi que l'auteur renonce à ses droits d'auteur sur son travail.
  8. Le manifeste GNU sur wikisource
  9. On peut lire « Plus tard, Bruce Perens retira toute référence au projet Debian des DFSG pour en faire la Définition de l'Open Source » ici.
  10. On peut voir sur cette vidéo Bruce Perens expliquer que « quand [il dit] open source [il entend] la même chose que quand Richard dit logiciel libre. »
  11. Par exemple dans le manifeste KDE et la présentation de la fondation gnome
  12. The Free Universal Encyclopedia and Learning Resource - GNU Project - Free Software Foundation (FSF)

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Sur Wikipédia anglophone[modifier | modifier le code]