logo Copyleft

L'article que vous allez lire est la mise par écrit d'un discours que Richard Stallman a tenu à l'Ecole Nationale Supérieure des Télécommunications (ENST) le 3 avril dernier. Ce discours sera séparé en trois articles distincts formant au final un tout et dont voici le premier. Vous pouvez également visualiser la vidéo de cette conférence qui a servi de base à cette mise par écrit sur le Framablog. Le moteur de la rédaction de ces articles est la volonté de mettre l'information à disposition des moteurs de recherche et donc de favoriser son indexabilité, mais également de faciliter la consultation du contenu par tous types de personnes. Il est dommage de cantonner autant d'informations à un format vidéo.

Ce premier billet (le plus long des trois) contient la définition du logiciel libre selon quatre grandes libertés que RMS juge nécessaire au respect de l'utilisateur et à la prise en main totale de son ordinateur. Ces quatre libertés permettent d'éviter les pièges du logiciel privateur (communément appelé logiciel propriétaire) qui, bien que très répandu, s'oppose totalement au contrôle du logiciel par l'utilisateur. L'alternative à ces logiciels privateurs ne peut être que le libre. Qu'est-ce que le libre combat ? Comment ? Pourquoi ? Toutes les réponses sont dans la suite de ce billet au ton à la fois léger et véridique.

Merci à Nyro Xeo pour sa relecture.

Richard Stallman

Logiciel libre : définition

Quelle est la définition du logiciel libre ? Je puis expliquer le logiciel libre en trois mots : liberté, égalité, fraternité. Trois principes que le gouvernement actuel de la France ne respecte plus (NdR : Ton humoristique).

  • Liberté, car tous les utilisateurs sont libres de faire tout ce qui est utile et éthique avec le logiciel libre ;
  • Egalité, parce que tous les utilisateurs disposent des mêmes libertés ;
  • Et fraternité, parce que nous encourageons la coopération entre les utilisateurs.

Tandis que le logiciel privateur (le logiciel non-libre) (NdR : Richard Stallman préfère ce terme à celui de logiciel propriétaire qui n'est pas en son sens la définition exacte de ce qu'il souhaite combattre) interdit la coopération. Le logiciel privateur s'appelle ainsi parce que ces programmes privent les utilisateurs de leurs libertés. Ils maintiennent les utilisateurs dans un état de division et d'impuissance. Division car il est interdit de le partager et impuissance parce que les utilisateurs ne disposent pas du code source, ne peuvent pas le modifier et ne peuvent pas même vérifier indépendamment ce que fait le programme.

Du respect de la ou des libertés ?

Mais le logiciel libre respecte la liberté des utilisateurs. Qu'est-ce que cela signifie ? Il faut le définir plus spécifiquement. Un programme est libre si l'utilisateur a les quatre libertés essentielles. La liberté zéro est la liberté de faire tourner le programme comme tu veux. La liberté numéro 1 est la liberté d'étudier le code source du programme et de le modifier pour que le programme fasse ce que tu veux. La seconde liberté est celle d'aider le voisin, de diffuser des copies exactes du programme quand tu veux. Et la liberté numéro 3 est la liberté de contribuer à la communauté, de diffuser des copies de tes versions modifiées quand tu veux.

Chaque liberté est une liberté et non pas une obligation. Tu n'es jamais obligé d'appliquer toutes ces quatre libertés, mais tu peux le faire quand tu veux. Si un programme respecte ces quatre libertés, le programme est libre : le système social de la distribution et de la distribution du programme est éthique. Mais si une de ces libertés manque, le programme est privateur, c'est-à-dire que le système social de son utilisation et de sa distribution n'est pas éthique, et ce programme ne doit pas être distribué, pas comme ça. Ce n'est pas une question du code du programme, une question technique, cela a à voir avec le système social dans lequel le programme s'utilise.

Un problème moral et éthique

Pourquoi ces quatre libertés sont-elles essentielles ? Pourquoi définir le logiciel libre ainsi ? La liberté numéro 2 est essentielle pour des raisons fondamentales éthiques, pour pouvoir vivre une vie éthique comme dans de nombreuses communautés. Si tu utilises un programme sans la liberté numéro 2, tu risques à n'importe quel moment de tomber dans un dilemme moral quand ton ami te demande une copie du programme. À ce moment-là, tu seras obligé de choisir entre deux maux : le premier est de lui donner une copie et de rompre ainsi la licence du programme, le second est de ne pas lui donner de copie et respecter la licence du programme.

Dans ce dilemme, tu devrais choisir le moindre mal : lui donner une copie et rompre la licence du programme. Pourquoi ce mal est-il le mal le plus mineur ? Parce que nous pouvons supposer que ton ami est un bon ami et qu'il mérite largement ta coopération. Dans l'autre cas, c'est facile, on lui dit "pourquoi voudrais-je t'aider ?". Donc il reste l'autre cas, le cas d'un bon ami. Le développeur du logiciel privateur aura attaqué délibérément la solidarité sociale de ta communauté. Tu ne peux donc pas éviter de faire mal à quelqu'un, mais autant que ce soit au coupable.

Malgré tout, le choix du mal mineur n'est pas véritablement le bon. Il n'est jamais bon de rompre un accord fondé au préalable. Il y a des accords malveillants qu'il est meilleur de rompre plutôt que de les respecter, mais même dans un tel cas, fonder un accord et le rompre ensuite n'est pas bon. Et si tu lui donnes une copie, qu'est-ce qu'il aura ? Il aura une copie non-autorisée d'un programme privateur, ce qui est assez mauvais, presque autant qu'une copie autorisée.

Ayant bien compris ce dilemme, que devras-tu faire ? Tu dois essayer d'éviter de te confronter à ce dilemme. Comment ? Il y a deux solutions possibles : le première est de ne pas avoir d'amis, c'est celle proposée par les développeurs des programmes privateurs, l'autre solution est de rejeter les programmes privateurs. Si tu n'as pas de copie d'un programme privateur, la possibilité de donner ou de nier une copie n'existe pas, donc pas de problème ! Et c'est MA solution. Si quelqu'un m'offre une programme sous la condition de promettre de ne pas le partager avec vous, je ne l'accepte pas. Ma conscience m'oblige à le rejeter. C'est donc la raison pour laquelle il doit y avoir la liberté numéro 2, celle d'aider le voisin, de distribuer des copies du programme quand tu veux.

Contrôler sa propre machine

La liberté zéro est essentielle pour une autre raison : avoir le contrôle de ta propre machine et de son utilisation[1]. Il y a des programmes privateurs qui restreignent même l'utilisation des copies autorisées. Par exemple, il choisissent qui peut les utiliser, dans quel ordinateur ou pour quelle fin. Et évidemment, ce n'est pas ça, avoir le contrôle de l'utilisation de son ordinateur. La liberté zéro est donc essentielle mais ne suffit pas parce que c'est seulement la liberté de faire ou ne pas faire ce que le développeur a décidé. Le développeur a donc toujours le contrôle de l'utilisation que tu fais de ton ordinateur et il exerce ce contrôle par ce qu'il met dans le code du programme.

Une question de sécurité

La liberté numéro 1 est donc également nécessaire, la liberté d'étudier le code source et de le changer pour que le programme fasse ce que tu veux, ainsi tu es capable de décider à sa place. Si tu utilises un programme sans la liberté 1, tu n'as même pas la possibilité de vérifier ce que fait le programme. Beaucoup de programmes privateurs contiennent des fonctionnalités malveillantes conçues non pas pour servir l'utilisateur mais pour surveiller, restreindre ou même parfois pour attaquer l'utilisateur. Les fonctionnalités de surveillance sont par exemple assez communes. Un programme malveillant qui surveille ses utilisateurs et que tu connais peut-être de nom s'appelle Microsoft Windows.

Quand l'utilisateur de Windows utilise dans les menus la fonctionnalité de recherche de fichier, Microsoft collecte l'objet de cette recherche, le mot recherché. C'est une fonctionnalité de surveillance mais il y en a également une autre : quand Windows XP nécessite une mise à jour, la liste de tous les programmes installés dans la machine est envoyée à Microsoft. C'est une autre fonctionnalité de surveillance. Mais peut-être y en a-t-il d'autres que l'on ignore parce que Microsoft ne nous a pas signalé ces fonctionnalités néfastes. Il a fallu effectuer des recherches pour les découvrir et il en reste peut-être encore.La surveillance n'est pas limitée à Windows parce que Windows Media Player le fait aussi en divulguant tout ce que l'utilisateur visionne. Mais il ne faut pas penser que Microsoft soit le seul à faire cela, puisque Real Player fait la même chose. Et je suppose que Real Player l'a fait le premier parce que Microsoft normalement imite...

Beaucoup de programmes privateurs font de la surveillance à l'utilisateur, mais les fonctionnalités malveillantes ne se bornent pas à la surveillance, il y a aussi la fonctionnalité de ne pas fonctionner. Quand le programme te dit "Je ne veux pas te montrer ce fichier, je ne veux pas te permettre de copier un morceau de ce fichier, je ne veux pas imprimer ce fichier pour toi parce que je ne t'aime pas". Je ne parle pas des erreurs, c'est une fonctionnalité implémentée délibérément, la fonctionnalité de ne pas fonctionner pour toi. Elle s'appelle également la gestion numérique de restriction ou DRM (NdR : en français DCU : Dispositifs de Contrôle d'Usages), et en français ça s'appelle aussi les menottes numériques.

Par exemple, Windows Vista a été fait pour imposer plus de menottes numériques, c'est son but ! Presque son unique but. C'est une grande avancée dans le domaine des menottes numériques : on peut trouver d'avantage d'informations sur le site badvista.org si vous lisez l'anglais. Et plus généralement, la fondation du logiciel libre (NdR : La FSF ou Free Software Foundation) a organisé une campagne de manifestation contre les menottes numériques qui se trouve dans le site Defective By Design. Tu peux t'inscrire sur le site et participer aux manifestations. La presse a beaucoup réagi. Cette campagne a été efficace mais nous n'avons pas encore gagné. Nous avons besoin de ta participation.

Les fonctionnalités malveillantes ne s'arrêtent pas aux menottes numériques, il y a aussi les portes dérobées, les fonctionnalités malveillantes destinées à attaquer l'utilisateur. Un programme privateur qui contient une porte dérobée et que tu connais peut-être de nom s'appelle Microsoft Windows. Quand l'utilisateur de Windows (et je ne dis pas tu car tu n'utiliserais pas un tel programme) demande une mise à jour, Microsoft connait plus ou moins l'identité de l'utilisateur, et peut donc lui livrer une mise à jour spécifique, personnelle, c'est-à-dire que Microsoft a le pouvoir de prendre le contrôle complet de son ordinateur. L'utilisateur n'a presque pas de recours dans ce cas.

Cette porte dérobée est connue selon des faits eux aussi connus. Y en a-t-il d'autres ? Il y a quelques années en Inde, ils m'ont dit avoir arrêté des développeurs qui travaillaient dans le développement de Microsoft Windows en les accusant de travailler également pour Al Quaïda, essayant d'introduire une autre porte dérobée que Microsoft ne devait pas connaître. Il parait que cet essai a échoué. Nous ne pouvons pas vérifier s'il en existe d'autres, mais en 1999 quelqu'un a découvert que Microsoft avait introduit une autre porte dérobée pour l'utilisation d'une autre organisation terroriste et violente : le gouvernement des Etats Unis. Je viens également d'entendre qu'on a découvert des portes dérobées dans Vista, spécifiquement implémentées pour le gouvernement des Etats Unis, mais je n'ai pas vu les détails.

On voit donc que dans n'importe quel programme privateur sans la liberté n°1 peut contenir des fonctionnalités malveillantes cachées. Chaque programme privateur qui ne respecte pas la liberté numéro 1 exige une foi aveugle de l'utilisateur qui n'a pas la possibilité de la justifier. Le programme dit "Faites moi entièrement confiance sans rien savoir de moi". On peut supposer qu'il existe des programmes privateurs sans fonctionnalité malveillante, mais on ne peut savoir desquels ils s'agit. Il existe des programmes privateurs dont on sait qu'ils comportent des fonctionnalités malveillantes, d'autres dont on ne le sait pas. On ne peut jamais certifier qu'un logiciel n'en contienne pas sans pouvoir le vérifier, ce qui exige la liberté n°1.

Même sans pouvoir identifier les programmes privateurs qui n'ont pas de fonctionnalités malveillantes, nous pouvons supposer qu'il y en a beaucoup, leurs développeurs sont humains et font donc des erreurs. Le code de ces programmes contient donc des erreurs et l'utilisateur d'un programme sans la liberté 1 est aussi impuissant face à des erreurs accidentelles que face à une fonctionnalité malveillante volontairement implémentée. Si tu utilises un programme sans la liberté numéro 1 tu es prisonnier de ton logiciel.

Nous, les développeurs des programmes libres, sommes également humains, nous commettons aussi des erreurs, notre code en contient, mais la différence est que quand tu trouves une erreur dans notre code, alors tu as la possibilité de la corriger. Nous ne pouvons pas nous rendre parfaits, mais nous pouvons respecter ta liberté. Et voici la différence. Mais la liberté numéro 1 ne suffit pas, puisqu'il y a des millions d'utilisateurs d'ordinateurs qui ne savent pas programmer et qui ne sont donc pas capables d'utiliser directement la liberté n°1, c'est à dire la liberté d'étudier et de modifier personnellement le code source du programme.

Un combat communautaire

Mais même pour les programmeurs comme moi, la liberté numéro 1 ne suffit pas parce qu'il y a trop de logiciels libres dans le monde pour qu'une personne puisse étudier tous les codes sources et écrire tous les changements dont il désire profiter. Pour avoir vraiment le contrôle de l'utilisation de notre machine, la liberté numéro 3 est donc nécessaire, celle de contribuer à la communauté, c'est à dire la liberté de diffuser des copies des versions modifiées quand tu le souhaites. Avec cette liberté, nous pouvons travailler ensemble, en coopération, pour faire les changements que nous désirons.

Si, par exemple, un million d'utilisateurs désirent un changement dans un programme libre, on peut espérer qu'entre eux il y aura quelques milliers de personnes qui savent programmer. Et un jour quelques uns d'entre eux feront ce changement et vous enverront leur version modifiée, dont tout le million d'utilisateur pourra profiter sans l'avoir écrit et sans même savoir l'écrire. Il suffit de l'adopter. Si tout le monde préfère ce changement, son adoption se fera sans effort, puisqu'après quelques temps toutes les versions actuelles contiendront cette modification.

Ainsi, tous les utilisateurs reçoivent les bienfaits des quatre libertés. Les libertés 0 et 2, celle de faire tourner le programme comme tu veux et celle de diffuser des copies exactes du programme, peuvent être appliquées par n'importe quel utilisateur car elles n'exigent pas de compétences en programmation. Les libertés 1 et 3 (étudier le code source, le modifier et publier la version ainsi modifiée) exigent des compétences en programmation. Chaque utilisateur peut appliquer ces libertés jusqu'aux limites de ses compétences, mais c'est toute la communauté qui profite de ces libertés lorsqu'elles sont appliquées par les développeurs.

Ces quatre libertés ensemble nous fournissent la démocratie. Un programme libre est développé démocratiquement, sous le contrôle des utilisateurs, et personne n'a de pouvoir sur la communauté. A l'inverse, le programme privateur se développe toujours sous le contrôle de son développeur et impose son pouvoir aux utilisateurs. Mais supposons qu'il y ait mille utilisateurs qui désirent un changement dans un programme libre et que personne ne sache programmer. Ils peuvent néanmoins appliquer les quatre libertés pour obtenir le changement désiré. Rien ne les empêche de créer une organisation dont la cotisation pourrait servir à payer un ou plusieurs programmeurs qui vont pouvoir effectuer la modification désirée. C'est un moyen d'appliquer les quatre libertés pour ceux qui ne savent pas programmer.

Pour ce faire, l'organisation devra choisir le programmeur en fonction de ses capacités, de son talent, de ce qu'il a déjà réalisé. Cet exemple prouve que le logiciel libre apporte avec lui tout un marché libre pour toutes les formes de services et le support. Pour le logiciel privateur, le support est normalement un monopole car le développeur est le seul à posséder le code source, il est donc également le seul à pouvoir faire des modifications. Si l'utilisateur souhaite un changement, il devra prier : "Ô développeur, on est content, prière de faire ce changement pour moi !". Parfois le développeur dit à l'utilisateur "Payez-nous pour écouter votre problème". Et si l'utilisateur le fait, le développeur lui dit "Dans six mois il y aura une mise à jour, achetez-la et vous verrez si nous avons corrigé votre problème et quels problèmes nouveaux nous vous fournirons".

Avec le logiciel libre, n'importe qui possédant une copie peut étudier le code source pour se faire maître du code et ensuite offrir du support. Ainsi, toutes les entreprises et toutes les organisations qui valorisent beaucoup le bon support doivent exiger l'utilisation du logiciel libre, pour pouvoir monnayer leur support dans un marché libre, avec de la concurrence possible.

Le Monde Libre

Cela nous mène à un paradoxe : normalement, quand il y a un choix de produit, nous disons qu'il n'y a pas de monopole, mais quand ce choix est entre deux produits privateurs, alors il y a monopole. Pourquoi ? Parce que celui qui choisit le premier logiciel privateur tombe dans le monopole de support du premier fournisseur, et à son tour, celui qui choisit le second logiciel privateur tombe dans le monopole de support du second distributeur. C'est au final un choix entre monopoles. La seule manière de s'échapper du monopole est de s'échapper du logiciel privateur, de s'adonner au monde libre, au monde du logiciel libre.

Le but du mouvement du logiciel libre est que tout le monde s'échappe du logiciel privateur et que tout le monde utilise son ordinateur en liberté. Nous avons construit un nouveau continent dans le cyber-espace : c'est le monde libre. Il n'est pas possible de vivre libre dans l'ancien monde du cyber-espace où chaque programme a son seigneur qui domine tous les utilisateurs. Pour être libre il faut s'échapper, il faut migrer au monde libre. Il y a de la place pour tout le monde sur ce nouveau continent virtuel. Puisqu'il n'y a pas de peuples indigènes dans le cyber-espace, nous n'aurons pas à les déplacer. Nous pouvons inviter tout le monde à vivre en liberté avec nous. Notre travail de développeur de logiciel libre est de faciliter ta migration au monde libre.

Il y a 24 ans, s'échapper du logiciel privateur t'aurait obligé à développer un système d'exploitation. Maintenant que nous l'avons déjà fait, c'est beaucoup plus facile. Désormais ce n'est plus dur, c'est juste un peu incommode. Pas besoin d'être un héros pour le faire. Ne pas le faire est le signe d'être servile et masochiste.

Ce paradoxe du choix entre monopoles est un exemple d'un principe très important. La liberté est quelque chose de beaucoup plus grand que le choix entre quelques options fixes. La liberté veut dire avoir le contrôle de ta propre vie. Donc quand quelqu'un essaye d'analyser philosophiquement la liberté, s'il veut démontrer que la liberté n'est pas très importante, il peut assimiler la liberté à la liberté d'élection, c'est à dire le choix entre quelques options fixes. Il a jeté le plus grand de la liberté pour en garder une infime portion. Ainsi, il est facile de démontrer que cette portion n'est pas très importante. Mais maintenant tu sais reconnaitre l'erreur.

Avoir le choix entre des programmes privateurs, c'est pouvoir choisir ton maître, la liberté est de ne pas avoir de maître. En informatique, la liberté se concrétise par le fait de ne pas utiliser de programmes privateurs. Je suis arrivé à ces conclusions plus ou moins parce que dans l'année 83, je voulais utiliser les ordinateurs en liberté, mais comment ? C'était impossible à l'époque parce que tous les systèmes d'exploitation étaient privateurs. Je ne supposais pas que j'avais la possibilité de convaincre les gouvernements à changer leurs lois, ni convaincre les entreprises à changer leurs pratiques. Mais je savais fais très bien une chose développer du logiciel, surtout le logiciel du système d'exploitation.
[A suivre...]

Notes

[1] NdR : Difficile de trouver un équivalent français au mot "computation"