Linux et le systme GNU
par Richard StallmanBeaucoup d'utilisateurs de l'informatique utilisent une version modifie du systme GNU tous les jours sans mme s'en rendre compte. la suite d'une tournure particulire des vnements, la version de GNU qui est largement utilise aujourd'hui est souvent appele Linux et beaucoup de ses utilisateurs ne savent pas qu'il s'agit essentiellement du systme GNU, dvelopp par le projet GNU.
Il existe bien un Linux et ces personnes l'utilisent, mais c'est juste une partie du systme qu'ils utilisent. Linux est le noyau, c'est--dire le programme du systme qui alloue les ressources de la machine aux autres programmes qu'on excute. Le noyau est une partie essentielle du systme d'exploitation, mais seul il est inutile; il ne peut fonctionner que dans le contexte d'un systme d'exploitation complet. Linux est normalement utilis en combinaison avec le systme d'exploitation GNU: le systme complet est essentiellement GNU auquel on a ajout Linux, ou GNU/Linux. Toutes les distributions appeles Linux sont en ralit des distributions de GNU/Linux.
Un grand nombre d'utilisateurs ne font pas la distinction entre le noyau, Linux et le systme entier, qu'ils appellent aussi Linux. L'usage ambigu de ce nom ne facilite pas la comprhension. Ces utilisateurs pensent que Linus Torvalds a dvelopp tout le systme d'exploitation en 1991, avec un peu d'aide.
Les programmeurs savent en gnral que Linux est un noyau. Mais puisque gnralement ils ont entendu parler du systme entier sous le mme nom, Linux, souvent ils conoivent une histoire qui justifierait cette appellation. Par exemple, beaucoup croient qu'une fois l'criture du noyau Linux acheve par Linus Torvalds, ses utilisateurs ont recherch d'autres logiciels libres pour le complter et ont constat que (sans raison particulire) presque tout ce qui tait ncessaire un systme de type Unix tait dj disponible.
Ce qu'ils ont trouv n'tait pas un accident; c'tait le systme GNU pas tout fait complet. Les logiciels libres disponibles compltrent le systme parce que le projet GNU travaillait en concevoir un depuis 1984. Le manifeste GNU prsente l'objectif de dvelopper un systme de type Unix, appel GNU. L'annonce initiale du projet GNU dcrit aussi quelques-uns des plans originaux pour le systme GNU. Au moment o Linux a t lanc, GNU tait presque termin.
La plupart des projets de logiciel libre ont pour but de dvelopper un programme particulier pour accomplir une tche particulire. Par exemple, Linus Torvalds s'est attel crire un noyau de type Unix (Linux); Donald Knuth s'est attel crire un programme de formatage de texte (TeX); Bob Scheifler s'est attel dvelopper un systme de fentrage (XWindow System). Il est naturel de mesurer la contribution de ce type de projet par les programmes spcifiques qui proviennent du dit projet.
Si nous essayions de mesurer la contribution du projet GNU de cette manire, quelle conclusion arriverions-nous? Un distributeur de CD-ROM a constat dans sa distribution de Linux que les logiciels GNU reprsentaient le plus gros contingent, environ28% du code source total, et que cela incluait quelques-uns des composants majeurs essentiels sans lesquels il n'y aurait pas de systme. Linux lui-mme n'en reprsentait que3% (les proportions sont similaires en2008: dans le rpertoire main de gNewSense, Linux a une part de1,5% et les paquets GNU de15%). Alors s'il fallait trouver un nom pour le systme en se basant sur qui avait crit les programmes qui le composent, le choix le plus appropri pour un nom unique serait GNU.
Mais ces considrations laissent de ct le fond du problme. Le projet GNU n'tait pas, et n'est toujours pas, un projet destin dvelopper des paquets logiciels spcifiques. Ce n'tait pas un projet destin dvelopper un compilateurC, bien que nous l'ayons fait. Ce n'tait pas non plus un projet destin dvelopper un diteur de texte, bien que nous en ayons dvelopp un. Ds le dpart, le projet GNU a eu pour but de dvelopper un systme de type Unix, complet et libre: GNU.
Beaucoup de gens ont apport des contributions majeures aux logiciels libres qu'on trouve dans le systme et ils mritent tous de la reconnaissance. Mais la raison pour laquelle c'est un systme 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 ncessaires pour faire un systme libre complet et nous avons systmatiquement crit ou trouv des gens pour crire toutes les choses mentionnes sur la liste. Nous avons crit des composants majeurs et essentiels mais pas vraiment passionnants[1] parce qu'on ne peut pas avoir de systme sans eux. Certains de nos composants systmes, 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 mme dvelopp un jeu d'chec, GNU Chess, car un systme complet a aussi besoin de jeux.
Au dbut des annes90 nous avions rassembl le systme complet, part le noyau. Nous avions aussi commenc travailler sur un noyau, le GNU Hurd, qui s'excute au-dessus de Mach. Le dveloppement de ce noyau fut bien plus difficile que prvu; le GNU Hurd a commenc fonctionner de manire fiable en 2001, mais est encore loin d'tre prt pour un usage grand public.
Heureusement, nous n'avons pas eu attendre le Hurd, grce Linux. Quand Linus Torvalds a libr Linux en 1992, il a bouch le dernier trou du systme GNU. Les gens purent alors adjoindre Linux au systme GNU pour obtenir un systme libre complet: une version du systme GNU qui contenait aussi Linux, autrement dit le systme GNU/Linux.
Les faire fonctionner ensemble n'a pas t pas un travail trivial. Certains composants GNU[3] demandaient des changements substantiels pour fonctionner avec Linux. L'intgration d'un systme complet en une distribution qui pourrait fonctionner au dballage fut un travail tout aussi important. Il fallait rsoudre la question de l'installation et du dmarrage du systme un problme auquel nous ne nous tions pas attaqu, car nous n'en tions pas encore l. Les personnes qui ont dvelopp les diverses distributions du systme ont donc effectu un travail essentiel. Mais c'tait du travail qui, de toute faon, allait certainement tre ralis par quelqu'un.
Le projet GNU soutient les systmes GNU/Linux ainsi que le systme GNU. La FSF a financ la rcriture des extensions propres Linux de la bibliothqueC de GNU de sorte qu'elles sont maintenant bien intgres, et les systmes GNU/Linux les plus rcents emploient la bibliothque actuelle sans aucune modification. La FSF a aussi financ le dveloppement de Debian GNU/Linux ses dbuts.
Il existe aujourd'hui de nombreuses variantes du systme GNU/Linux souvent appeles distributions. La plupart d'entre elles incluent des logiciels non libres car leurs dveloppeurs suivent la philosophie open source associe Linux plutt que la philosophie du logiciel libre qui est celle de GNU. Mais il y a aussi des distributions de GNU/Linux entirement libres. La FSF fournit un support informatique quelques-unes d'entre elles.
Pour faire une distribution libre de GNU/Linux, il ne suffit pas d'liminer divers programmes non libres. De nos jours, la version habituelle de Linux contient galement des programmes non libres. Ces programmes sont destins tre chargs dans des priphriques d'entre/sortie quand le systme dmarre, et ils sont inclus, sous forme de longues sries de nombres, dans le code source de Linux. De ce fait, la maintenance de distributions libres de GNU/Linux comporte maintenant celle d'une version libre de Linux.
Que vous utilisiez GNU/Linux ou non, veuillez ne pas semer la confusion en utilisant le nom Linux de manire ambigu. Linux est le noyau, un des composants majeurs essentiels du systme. Le systme dans son ensemble est fondamentalement le systme GNU auquel on a ajout Linux. Quand vous parlez de cette combinaison, veuillez l'appeler GNU/Linux.
Si vous voulez indiquer une rfrence vers GNU/Linux, cette page et https://www.gnu.org/gnu/thegnuproject.html sont de bons choix. Si vous voulez indiquer une rfrence Linux, le noyau, https://foldoc.org/linux est une bonne URL.
Addendum
Outre GNU, un autre projet a produit de manire indpendante un systme d'exploitation libre de type Unix. Ce systme est connu sous le nom de BSD et a t dvelopp l'universit de Californie Berkeley. Il n'tait pas libre dans les annes80, mais le devint au dbut des annes90. Tout systme d'exploitation libre existant aujourd'hui[4] est fort probablement soit une variante de GNU, soit un systme de type BSD.
Quelquefois les gens demandent si BSD est aussi une version de GNU, comme GNU/Linux. Les dveloppeurs de BSD ont t conduits rendre leur travail libre par l'exemple du projet GNU et des appels explicites des activistes de GNU les y ont encourags, mais leur code ne recouvrait que trs partiellement celui de GNU. Les systmes BSD utilisent aujourd'hui quelques logiciels GNU, de mme que le systme GNU et ses variantes font usage de quelques logiciels BSD; mais dans l'ensemble ce sont deux systmes diffrents qui ont volu sparment. Les dveloppeurs de BSD n'ont pas crit un noyau qu'ils auraient ajout au systme GNU, et un nom tel que GNU/BSD ne reflterait pas la situation[5].
Notes
- ↑ Ces composants non passionnants mais essentiels comprennent l'assembleur GNU (GAS) et le linker (GLD) qui font actuellement partie du paquet GNU Binutils, GNU tar, etc.
- ↑ Par exemple, le Bourne Again SHell (BASH), l'interprteur PostScript Ghostscript et la bibliothqueC de GNU ne sont pas des outils de programmation; d'autres logiciels utiles comme GNUCash, GNOME et GNU Chess non plus.
- ↑ Par exemple, la bibliothqueC de GNU.
- ↑ Depuis que ceci a t crit, un systme presque entirement libre de style Windows a t dvelopp, mais techniquement il n'est pas du tout comme GNU ou Unix, donc cela n'affecte pas vraiment ce problme. La majeure partie du noyau de Solaris a t libre, mais si vous voulez en faire un systme libre, outre remplacer les parties manquantes du noyau, vous aurez aussi besoin de l'intgrer GNU ou BSD.
- ↑ Toutefois, dans les annes qui ont suivi l'criture de cet article, la bibliothqueC de GNU a t porte sur plusieurs versions du noyau BSD, ce qui permit de combiner le systme GNU avec ce noyau. Tout comme GNU/Linux, il s'agit de variantes de GNU et elles sont par consquent appeles GNU/kFreeBSD et GNU/kNetBSD, en fonction du noyau du systme. Les utilisateurs ordinaires des bureaux classiques peuvent difficilement faire la diffrence entre GNU/Linux et GNU/*BSD.
Pour plus de dtails, consultez aussi la FAQ GNU/Linux et Pourquoi GNU/Linux?