Chapitre 2. GNU, Linux et les logiciels libres

Vous entendrez souvent parler de la licence « GPL », du projet « GNU » et de la « Free Software Foundation » dans le monde de Linux. Pour bien comprendre ce qu'est la Free Software Foundation et ce que signifie la licence GPL, il est nécessaire d'en faire une brève présentation.

La Free Software Foundation est une organisation dont le but est de développer des logiciels libres. Le terme de « libre » signifie clairement que chacun peut faire ce qu'il veut du logiciel, y compris le modifier. La vente n'est absolument pas interdite, et il faut donc faire la distinction entre libre et gratuit. Cela étant dit, les logiciels libres sont souvent de facto gratuits, car ils sont librement redistribuables par quiconque en possède une copie.

La liberté de modifier les logiciels libres implique naturellement que leur code source, c'est à dire le texte de leur programme tel qu'il a été saisi par ses auteurs, soit librement accessible et modifiable. Les logiciels libres sont donc qualifiés de logiciels « Open Source », ce qui signifie en anglais que les sources du programme sont disponibles. Attention cependant, tous les logiciels Open Source ne sont pas forcément libres, car il n'est pas toujours possible de modifier ce code source et de le redistribuer librement (éventuellement gratuitement). Ainsi, nombre d'éditeurs de logiciels propriétaires publient leur code source sans pour autant donner de droits supplémentaires à ceux qui les lisent. Certains d'entre eux jouent d'ailleurs explicitement sur cette confusion. De plus, la plupart des journalistes anglosaxons font cette confusion et, de ce fait, occultent tous les avantages des logiciels libres. Vous trouverez de plus amples informations sur la notion de code source dans le Chapitre 7.

Il faut bien comprendre que le fait de diffuser un logiciel sous une licence libre ne prive absolument pas son auteur de ses droits. Il en reste l'auteur et, en tant que tel, conserve les droits d'auteurs sur son travail. Il ne fait que concéder la liberté d'exploiter ce travail aux autres. C'est en cela que les logiciels libres se démarquent du domaine publique, dont les logiciels ne sont plus soumis à aucun droit.

Afin de protéger les logiciels libres et leurs auteurs, la Free Software Foundation a rédigé la licence GPL (abréviation de l'anglais « General Public License »). Cette licence stipule que le logiciel libre peut être redistribué, utilisé, modifié librement, pourvu que celui qui en bénéficie accorde les mêmes droits à ceux à qui il fournit les copies du logiciel, qu'il l'ait modifié ou non. En d'autre termes, elle garantit que la liberté des uns s'arrête là où commence celle des autres. Cette licence empêche donc l'aliénation du logiciel et sa transformation en logiciel propriétaire, de quelque manière que ce soit. Cela implique que tout logiciel libre modifié par une autre personne que son auteur reste libre, et le restera à jamais. Ainsi, il est impossible qu'une société commerciale puisse un jour s'approprier un logiciel libre, même si elle l'améliore. Si vous désirez lire la licence GPL, vous pouvez en trouver une copie dans le fichier /usr/src/linux/COPYING une fois que vous aurez installé Linux. La FSF a également rédigé d'autres licences plus adaptées aux bibliothèques de programmes et aux documentations libres. Ainsi, la licence LGPL (« Lesser General Public License ») permet d'utiliser les bibliothèques de programmes dans des programmes propriétaires, et la licence FDL (« Free Documentation License ») permet de diffuser des documentations libres. À titre d'exemple, ce guide est distribué sous licence FDL, dont vous trouverez une tradution française en annexe.

La licence GPL a été écrite initialement pour le projet GNU de la Free Software Foundation, dont le but est de réaliser un système Unix libre et indépendant des Unix commerciaux. Précisons ici que le terme « Unix » caractérise un ensemble de systèmes d'exploitation, qui disposent tous à peu près des mêmes fonctionnalités et proposent d'y accéder de la même manière. Le projet GNU est toujours en cours, puisque la Free Software Foundation a déjà écrit la plupart des utilitaires Unix, mais que le c½ur du système (ce que l'on appelle le noyau) est toujours en cours de réalisation. Pour information, ce noyau se nomme « Hurd ».

Cependant, d'autres noyaux sont disponibles, avec lesquels les commandes GNU peuvent être utilisées. Parmi ces noyaux, il existe bien entendu Linux, qui a été écrit par le Finlandais Linus Torvalds lorsqu'il était étudiant, et amélioré par des programmeurs du monde entier sur Internet. Linux est un noyau parmi tant d'autres, à ceci près qu'il est, lui aussi, distribué sous la licence GPL, bien que n'ayant rien avoir avec la Free Software Foundation.

Cela signifie qu'il serait en fait plus exact de parler du système « GNU/Linux » que de « Linux » tout court. Sous cette dénomination, il est clair que ce système est constitué des outils GNU fonctionnant sur le noyau Linux. C'est donc un ensemble de logiciels libres provenant de plusieurs sources distinctes. Cependant, il est très courant d'entendre parler de « Linux » tout court, par abus de langage et par souci de simplicité. Bien entendu, cette dénomination est proscrite sur les sites Internet de la Free Software Foundation, qui devient très susceptible à ce sujet.

Précisons que la licence GPL n'est pas la seule licence permettant de distribuer des logiciels libres. Il existe d'autres licences, dont les termes sont à peu près similaires. Par exemple, la licence BSD (un autre système Unix libre) exige également la distribution des sources, mais permet l'appropriation des sources par des sociétés commerciales. De même, la licence X, sous laquelle est diffusée l'environnement graphique X11 qu'utilise Linux, est une licence libre. Quelques outils fournis avec Linux sont distribués avec d'autres licences plus rares.

Les logiciels libres disposent d'avantages indéniables par rapport aux logiciels « propriétaires » ou « fermés ». Je vais tenter de donner ici une liste non exhaustive de ces avantages :

Mais l'aspect le plus important des logiciels libres est sans doute le fait qu'ils garantissent la liberté des utilisateurs par rapport aux éditeurs de logiciels. Le respect des standards, l'ouverture des formats de documents et des protocoles de communication garantissent une interopérabilité absolue, qui permet ainsi à chacun de rester libre de ses choix pour sa solution informatique. Il n'est que trop courant de voir les éditeurs de logiciels enfermer leurs clients dans une dépendance vis à vis d'eux, simplement en leur faisant utiliser des produits fermés et inutilisables sans leur concours. Le pire est sans doute que cette dépendance est transitive (le fait pour un auteur d'utiliser un produit implique que ses lecteurs le possèdent également) et durable (on ne peut faire de mise à jour que chez le même éditeur de logiciel).

Bien que cela ne se situe pas au même niveau philosophique, la question du financement se pose également de manière récurrente. Il n'est en effet pas évident, en première analyse, de déterminer les raisons qui poussent un auteur ou une entreprise à rendre ainsi public son savoir faire, au risque de se le faire tout simplement voler. Les particuliers font souvent cela par amusement ou pour faire valoir leur savoir-faire. Les entreprises quant à elles peuvent financer le développement de certains logiciels libres soit parce qu'elles l'utilisent en interne, soit parce qu'elles en vivent de manière dérivée (par vente de produits dérivés ou de services complémentaires par exemple). Certaines sociétés préfèrent également repartir d'un logiciel libre qui satisfait à 80% de leurs besoins, et de développer les 20% restants. Le coût total de développement d'une solution complètement propriétaire serait en effet beaucoup plus élevé. Dans ce cas, les développeurs de logiciels libres sont avant tout leurs propres utilisateurs... Cela dit, il faut être clair à ce sujet : le logiciel libre rapporte moins que le logiciel propriétaire, tout simplement parce qu'on ne peut pas pressurer le client de la même manière.

Enfin, pour information, le terme « GNU » est l'abréviation de l'anglais « GNU's Not Unix ». Cette curieuse phrase rappelle que le projet GNU est de réaliser un système Unix différent des autres. Vous remarquerez que cette définition est récursive, c'est-à-dire qu'elle utilise le mot « GNU » elle-même. Cela doit être attribué au goût des développeurs de la Free Software Foundation pour ce genre de définition infiniment récursive. Vous ne saurez sans doute jamais les raisons qui les ont poussés à choisir la lettre 'G' dans leur définition. Cela étant, « GNU » se prononce « gnou » en anglais, et vous trouverez donc souvent la représentation d'un gnou sur les sites Internet de GNU.