Qu’est-ce qu’un logiciel libre ?

By 22 March 2013

Introduction. La libre circulation de l’information comme idéal utopique

La plupart des gens admettent vaguement que toute relation, en particulier toute relation humaine, se réduit à un échange d’information (si bien entendu on inclut dans le concept d’information les messages à caractère non neutre, c’est-à-dire gratifiant ou pénalisant). Dans ces conditions, un penseur de l’informatique aura tôt fait de se transformer en penseur de l’évolution sociale. Son discours sera souvent brillant, et de ce fait convaincant; la dimension affective pourra même y être intégrée.
Michel Houellebecq

Qu’est-ce qu’un logiciel libre ?

Parler de logiciel libre, c’est avant tout faire référence à une catégorie de programmes informatiques, à laquelle appartiennent certains des logiciels les plus utilisés au monde : Linux, Firefox, Apache ou OpenOffice1. Comme le montre cette petite liste, cette catégorie regroupe des logiciels extrêmement divers. Firefox est un navigateur Internet, Apache un logiciel de serveur HTTP, et OpenOffice une suite bureautique. Quant à Linux (qu’on préfèrera nommer GNU/Linux pour des raisons historiques sur lesquelles nous reviendrons), il s’agit d’un système d’exploitation (operating system), c’est-à-dire d’un ensemble de logiciels organisant l’interface entre le matériel (hardware) et les différents logiciels applicatifs. On dira ainsi d’un ordinateur qu’il « tourne sous GNU/Linux », au même titre qu’il pourrait « tourner sous Windows » ou « sous Mac OS X ».

1 Le projet OpenOffice est désormais scindé en deux branches : Apache OpenOffice etLibreOffice.

Par-delà les différentes fonctions qu’ils accomplissent, les logiciels libres ont des points communs, qui en font une catégorie à part. Ils ont pour spécificité de garantir à tous leurs utilisateurs quatre « libertés » : tout le monde peut utiliser ces logiciels, les copier, les modifier, et les distribuer (y compris sous des versions modifiées). Ces quatre libertés sont à comprendre à la fois au sens d’une possibilité technique et d’une possibilité légale.

Du point de vue technique, elles supposent l’accès au code source du logiciel. Le code source, ce sont les instructions qui permettent au logiciel d’accomplir sa fonction. Celles-ci sont écrites dans un langage de programmation de haut niveau (C, Java, LISP, etc.) compréhensible par un informaticien compétent. L’activité de programmation peut ainsi être appréhendée comme l’activité de rédaction du code source, ce dernier étant le « matériau » sur lequel travaillent les programmeurs. Cependant, un ordinateur ne peut en général pas lire directement le code source. Afin que le programme puisse être exécuté, le code source doit au préalable être « compilé », c’est-à-dire converti en code objet, suite de 0 et de 1 incompréhensible pour un être humain. Il importe donc de bien distinguer ces deux « formes » du code, que sont le code source et le code objet1. Pour comprendre le fonctionnement d’un logiciel et avoir l’opportunité de le modifier, c’est au code source qu’il est indispensable de pouvoir accéder. Le code objet permet quant à lui uniquement l’exécution du programme2.

La jouissance des quatre libertés du logiciel libre est aussi à comprendre comme une possibilité légale. Ainsi, les logiciels libres sont régis par des licences spécifiques, qui ont pour fonction d’autoriser ces libertés, voire de les protéger. La plus célèbre et la plus répandue est proposée par la Free Software Foundation (FSF). Il s’agit de la General Public License (GPL). Celle-ci indique dans son préambule, qu’elle a pour but de « garantir votre liberté de partager et de modifier toutes les versions d’un programme, afin d’assurer que ce programme demeure un logiciel libre pour tous ses utilisateurs »1. Il existe cependant un grand nombre d’autres licences, qui se distinguent sur des points précis ou ont été rédigées pour coller aux spécificités de projets particuliers. Leur point commun – celui qui permet de les considérer toutes comme « libres » – est d’accorder à l’utilisateur les quatre libertés susmentionnées.

1 La différence entre code source et code objet peut être appréhendée comme essentiellement « formelle », au sens où il s’agit globalement de deux versions de la même chose. Cependant, on pourra tout de même noter que certaines parties du code source ne se retrouvent pas dans la version compilée. Ainsi, le code source comprend par exemple des commentaires qui permettent d’expliquer le fonctionnement du logiciel aux autres programmeurs. Ces commentaires n’étant pas nécessaires à l’exécution du programme, ils disparaissent dans le code objet. En outre, si le passage du code source au code objet est aisé (c’est la compilation), le cheminement inverse (décompilation) l’est beaucoup moins. Il renvoie aux problèmes techniques et juridiques complexes posés par la rétro-ingénierie.
2 Afin de faire comprendre la fonction du code source et de souligner l’importance d’y avoir accès, les partisans du logiciel libre le comparent souvent à une recette de cusine. La citation suivante, tirée de Wikipédia, est assez parlante : « La recette est une liste organisée d’ingrédients en quantités et fonctions définies, dont le but est d’obtenir un résultat visé par le cuisinier, selon une technique et un enchaînement d’opérations déterminés. […] Si quelqu’un mangeait un plat, il est fort probable qu’il pourrait deviner les éléments principaux de sa composition et imaginer dans les grandes lignes comment le faire. Néanmoins, pour un plat très raffiné et subtil (comme pourrait l’être un programme), il ne pourrait pas savoir comment le chef aurait procédé. Il faudrait la recette détaillée (pour un programme la recette peut compter plusieurs millions de lignes de code) pour pouvoir reproduire le plat, il serait sinon obligé d’acheter les plats préparés ». Cf. Article « code source », Wikipédia (version française), en ligne : http://fr.wikipedia.org/wiki/Code_source (consulté le 14/02/2011).

En tant que catégorie, le logiciel libre s’oppose au logiciel propriétaire, parfois aussi appelé logiciel « privateur », au sens où il « priverait » les utilisateurs de leurs libertés2. En effet, un logiciel propriétaire se présente uniquement sous une forme exécutable (compilée), et ne permet pas l’accès à son code source. Par ailleurs, du point de vue juridique, il requiert de l’utilisateur qu’il accepte un Contrat de Licence Utilisateur Final (CLUF), lequel encadre les usages autorisés du logiciel et en empêche d’autres, par exemple la copie ou la modification. Les logiciels propriétaires, dont les plus connus sont ceux développés par Microsoft, peuvent donc être définis comme « non libres », au sens où ils n’accordent pas à leurs utilisateurs les quatre libertés du logiciel libre.

On notera également que la gratuité n’est pas un critère pertinent pour différencier logiciels libres et logiciels propriétaires. Bien que ce ne soit pas le cas le plus courant, des logiciels propriétaires peuvent être gratuits. On parle alors de freewares. En revanche, les logiciels libres sont gratuits dans l’écrasante majorité des cas, sauf lorsqu’ils sont vendus avec une offre de service liée (mais c’est alors le service qui est payé et non le logiciel lui-même). Il importe néanmoins de comprendre que la gratuité est un effet de bord lié à l’octroi des quatre libertés, et nullement un critère de définition du caractère « libre » du logiciel. La confusion est favorisée par le double sens du terme « free » en anglais, qui signifie à la fois libre et gratuit. Aussi Richard Stallman, le créateur du logiciel libre, a-t-il pour habitude de répéter les deux phrases suivantes :

Le logiciel libre est une question de liberté, pas de prix. Pour comprendre le concept, vous devez penser à « liberté d’expression » (free speech), pas à « bière gratuite » (free beer).3

On remarquera enfin que le mouvement du logiciel libre a dès l’origine – en particulier par la voix de Richard Stallman – développé un discours d’autolégitimation. Autrement dit, il a cherché à expliquer ses pratiques, mais surtout à les justifier, à démontrer leur légitimité, et à convaincre que leur enjeu était peut-être plus important qu’il pouvait y paraître de prime abord. Les propos que le mouvement du logiciel libre tient sur lui-même constituent ainsi un élément fort de son identité. Cette identité a fait – et fait toujours – l’objet de débats véhéments, notamment autour de la controverse entre partisans du free software et de l’open source née à la fin des années 1990.

1 FREE SOFTWARE FOUNDATION, « GNU General Public License », version 3, 29 juin 2007, texte disponible en ligne : http://www.gnu.org/licenses/gpl.html (consulté le 14/02/2011).
2 Cf. APRIL, « Logiciel privateur », 30 juin 2007, en ligne : http://www.april.org/articles/intro/privateur.html (consulté le 14/02/2011).
3 Richard Marie STALLMAN, « Free Software Definition » in Free Software, Free Society : Selected Essays of Richard M. Stallman, Boston, GNU Press, 2002, p. 43, en ligne : www.gnu.org/philosophy/fsfs/rms-essays.pdf (consulté le 18/05/2010).

Cette controverse met aux prises deux visions concurrentes du logiciel libre. Pour les partisans du free software, le logiciel libre est un « mouvement social » cherchant avant toute chose à défendre une approche « éthique » de l’informatique, et à promouvoir des technologies socialement utiles. Les adeptes de l’open source considèrent quant à eux que les principes du logiciel libre sont surtout une manière de produire efficacement des logiciels performants, et revendiquent une approche plus pragmatique que celle des « puristes » du free software. Il s’agit donc de divergences importantes quant à l’identité et aux finalités du mouvement du logiciel libre : ce que les développeurs appellent volontiers sa « philosophie ». Toutefois, il est à noter que ces différences – un temps exacerbées par les rodomontades des grands figures du mouvement comme Richard Stallman ou Eric Raymond – ont la plupart du temps assez peu d’influence sur la réalité des pratiques de programmation, et n’empêchent pas de considérer une catégorie unifiée de logiciels : les Free and Open Source Softwares (FOSS), que nous appellerons tout simplement « logiciels libres ».

L’utopie du logiciel libre, le mouvement du free software
Thèse pour l’obtention du grade de docteur de l’Université Paris 1 – Discipline : sociologie
Université Paris 1 Panthéon/Sorbonne – École doctorale de philosophie