Linux et le Projet GNU

par Richard Stallman

Si vous souhaitez en savoir plus sur ce sujet, vous pouvez aussi consulter notre FAQ GNU/Linux et notre page sur Les utilisateurs de GNU qui n'ont jamais entendu parler de GNU.

Beaucoup d'utilisateurs d'ordinateurs utilisent une version modifiée du Système GNU tous les jours sans même le réaliser. Après une tournure particulière des événements, la version de GNU qui est en utilisation répandue aujourd'hui s'est faite connaître sous le nom « Linux » et beaucoup de ses utilisateurs ne sont pas au courant de l'étendue de sa relation avec le Projet GNU.

Il existe vraiment un Linux ; c'est le noyau et ces personnes l'utilisent. Mais vous ne pouvez faire fonctionner un noyau seul ; un noyau n'est utile qu'en faisant partie d'un système d'exploitation entier. Linux est normalement utilisé en combinaison avec le système d'exploitation GNU. Autrement dit, le système est, pour la plupart de ses composantes, GNU muni de Linux en tant que noyau.

Beaucoup d'utilisateurs ne sont pas au courant de la distinction entre le noyau, Linux, et le système en entier qu'ils appellent « Linux » tout autant. L'usage ambigü du nom ne facilite pas la compréhension.

Les programmeurs savent en général que Linux est un noyau. Mais puisqu'ils ont entendu le système entier être appelé « Linux » aussi, souvent ils conçoivent une histoire tournant autour de ce nom. Par exemple, plusieurs d'entre eux croient que dès que Linus Torvalds a achevé l'écriture du noyau, ses amis ont recherché d'autres logiciels libres et que, pour aucune raison en particulier, la plupart de ce qui était nécessaire à un système semblable à Unix était déja disponible.

Ce qu'ils ont trouvé n'était pas un accident -- c'était le système GNU. Les logiciels libres disponibles complétèrent le système parce que le Projet GNU travaillait à en concevoir un depuis 1984. Le manifeste GNU a mis en avant le dessein de développer un système semblable à Unix et appelé GNU. L'Annonce Initiale du Projet GNU souligne aussi quelques-uns des plans originaux pour le système GNU. Au moment où Linux était écrit, le système était presque fini.

La plupart des projets de logiciel libre ont pour but de développer un programme particulier pour accomplir une tâche particulière. Par exemple, Linus Torvalds s'est attelé à écrire un noyau semblable à Unix (Linux); Donald Knuth s'est attelé à écrire un programme de formatage de texte (TeX); Bob Scheifler s'est attelé à développer un système de fenêtrage (X Window).
Il est naturel de mesurer la contribution de ce type de projet par les programmes spécifiques qui proviennent dudit projet.

Si nous essayions de mesurer la contribution du Projet GNU de cette manière, à quelle conclusion arriverions-nous ? Un producteur de CD-ROM a constaté dans sa « Distribution de Linux » que les Logiciels GNU y représentaient la plus grande entité, 28% du code source total, et que cela incluait quelques-uns des composants majeurs essentiels sans lesquels il n'y aurait pas de système. Linux lui-même n'y prenait une part que de 3%. Alors s'il fallait trouver un nom pour le système en se basant sur qui avait écrit les programmes qui le composent, le seul choix le plus approprié serait « GNU ».

Mais nous ne pensons pas que c'est la bonne manière de considérer la question. Le Projet GNU n'était pas, et n'est pas, un projet pour écrire des ensembles de logiciels spécifiques. Ce n'était pas un projet pour développer un compilateur C, bien que nous l'ayions fait. Ce n'était pas non plus un projet pour développer un éditeur de texte, bien que nous en ayions développé un. L'objectif final du Projet GNU était de développer un système semblable à Unix, complet et libre.

Plusieurs personnes ont apporté des contributions majeures aux logiciels libres qu'on trouve dans le système et elles méritent toutes de la reconnaissance. Mais la raison pour laquelle c'est un système -- et pas seulement une collection de programmes utiles -- est que le Projet GNU s'est donné pour objectif d'en concevoir un. Nous avons dressé une liste des programmes requis à la conception d'un système libre complet et nous avons systématiquement trouvé écrit ou trouvé des gens pour écrire toutes les choses mentionnées sur la liste. Nous avons écrit des composants majeurs et essentiels mais non-passionnants (1) parce qu'on ne peut pas avoir de système sans eux. Certains de nos composants système, les outils de programmation, sont devenus populaires parmi les programmeurs, mais nous avons aussi écrit beaucoup de composants qui ne sont pas des outils (2). Nous avons même développé un jeu d'échec, GNU Chess, car un système complet a besoin de bons jeux aussi.

Au début des années 90 nous avions rassemblé le système complet en dehors du noyau (et nous travaillons aussi sur un noyau : le GNU Hurd, qui tourne en superposition à Mach). Le développement de ce noyau fut bien plus difficile que nous nous y attendions et nous sommes toujours occupés à l'achever.

Par bonheur, vous n'êtes pas obligé de l'attendre car Linux fonctionne maintenant. Quand Linus Torvalds a écrit Linux, il a bouché le dernier trou. Les gens purent alors adjoindre Linux au système GNU pour obtenir un système libre complet : un système GNU basé sur Linux (ou système GNU/Linux, en abbrégé). Les premières notes de version de Linux reconnaissaient que Linux était un noyau, utilisé avec des composants de GNU : « La plupart des outils utilisés avec Linux sont des logiciels GNU disponibles sous gauche d'auteur GNU. Ces outils ne sont pas dans la distribution - demandez-moi (ou demandez à GNU) pour plus de détails. »

Les rassembler paraît simple mais ce n'était pas un travail trivial. Certains composants GNU (3) requéraient des changements substantiels. L'intégration d'un système complet en une distribution qui pourrait fonctionner « au déballage » fut un travail tout aussi gros. Il fallait résoudre la question de l'installation et du démarrage du système -- un problème auquel nous ne nous étions pas attaqué car nous n'en étions pas encore là. Les personnes qui ont développé les diverses distributions du système ont apporté une contribution substantielle.

Le Projet GNU soutient les systèmes GNU/Linux ainsi que le système GNU -- même financièrement. Nous avons financé la réécriture des extensions propres à Linux de la bibliothèque C de GNU afin qu'ils soient maintenant bien intégrés et les systèmes GNU/Linux les plus récents emploient la bibliothèque actuelle sans aucune modification. Nous avons aussi financé le développement de Debian GNU/Linux à un de ses stades initiaux.

Nous employons aujourd'hui des systèmes GNU basés sur Linux pour la plupart de notre travail et nous espérons que vous les utilisez aussi. Mais veuillez s'il vous plaît éviter de semer la confusion dans le public en utilisant le nom « Linux » de manière ambiguë. Linux est le noyau, un des composants majeurs du système. Le système pris en entier est de près ou de loin le système GNU.

Que vous utilisiez GNU/Linux ou pas, veuillez ne pas semez la confusion en utilisant le nom « Linux » de manière ambiguë. Linux est le noyau, un des composants majeurs essentiels du système. Le système dans son ensemble est plus ou moins le système GNU additionné de Linux. Quand vous parlez de cette combinaison, veuillez l'appeler « GNU/Linux ».

Si vous voulez indiquer une référence vers « GNU/Linux », cette page et http://www.gnu.org/gnu/the-gnu-project.fr.html sont de bons choix. Si vous voulez indiquer une référence à Linux, le noyau, http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux est une bonne URL à utiliser.

Addendum : À côté de GNU, un autre projet a produit de manière indépendante un système d'exploitation libre semblable à Unix. Ce système est connu sous le nom de BSD et a été développé à l'University College de Berkeley. Il n'était pas libre dans les années 80, mais le devint au début des années 90. Tout système d'exploitation libre existant aujourd'hui est fort probablement soit une variante de GNU, soit un type de système BSD.

Quelquefois les gens demandent si BSD est aussi une version de GNU, comme GNU/Linux. Les développeurs de BSD ont été inspirés à rendre leur travail libre par l'exemple du Projet GNU et ils ont été encouragés à l'occasion par des activistes de GNU mais leur travail était de moindre relation avec GNU. Les systèmes BSD emploient quelques logiciels GNU aujourd'hui, de même que le système GNU et ses variantes font usage de quelques logiciels BSD; mais pris à part, ce sont deux systèmes différents qui ont évolué séparément. Les développeurs de BSD n'ont pas écrit un noyau qu'ils auraient ajouté au système GNU, et un nom tel que GNU/BSD ne reflérait pas la situation.

Notes :

  1. Ces composants non passionnants mais essentiels comprenne l'assembleur GNU, GAS et le linker, GLD, qui font actuellement partie du paquetage GNU Binutils, GNU tar, ….
  2. Par exemple, le Bourne Again SHell (BASH), l'interpréteur PostScript Ghostscript, et la bibliothèque C GNU ne sont pas des outils de programmation. Tout comme GNUCash, GNOME et GNU Chess.
  3. Par exemple, la bibliothèque C GNU.

Traductions de cette page