Le,Richard Stallman dévoile dans la puretradition hacker son projet de développer un système d’exploitation compatibleUNIX appelé GNU — acronyme récursif qui signifie en anglais « GNU’sNotUNIX » (littéralement, « GNU n’est pas UNIX ») —[3], en invitant la communauté hacker à le rejoindre et participer à son développement. Cette annonce succède à la « guerre » déclarée parSymbolics au laboratoire d’intelligence artificielle duMIT et à la disparition de la communauté hackerLisp[4]. Il annonce que le système pourra être utilisé et partagé librement par tous comme ce fut le cas avecEmacs[5]. Concrètement il relate l’effort à accomplir, dont on distingue déjà en1985 certaines pièces maîtresses : le compilateurGCC finalisé dès[5], une versionemacs compatible UNIX, etc.
L’effort sera opiniâtrement poursuivi, et, au début desannées 1990, le projet GNU possède une version utilisable de tous les éléments nécessaires à la construction d’un système d’exploitation. Il développe, outre ceux cités précédemment, unshell, desbibliothèques, lescomposants de base, lesoutils de développement… Exception faite du plus central : lenoyau.
Le projet GNU initie alors en 1990 le projet de production d'un noyau nomméHurd[6].
Selon Thomas Bushnell, l’architecte initial du projet Hurd, l’idée initiale était d’adapter le noyauBSD 4.4-lite[7], et avec le recul« il est parfaitement clair pour moi que celui-ci aurait magnifiquement réussi et la face de l’informatique en aurait été changée »[8],[7]. Stallman confirmera plus tard que l’université de Californie travaillait à combler les parties manquantes pour transformerBSD en un système d’exploitation complet et librement redistribuable[9]. Malgré une collaboration étroite avec les hackers de Berkeley et leur meneurKeith Bostic[9], le code propriétaire d’AT&T mélangé au code BSD n’est pas supprimé[9], si bien que Stallman décide, à la place, d’utiliser lemicro-noyauMach, qui s’avérera extrêmement pénible à faire progresser.
Hurd ne dépassera jamais réellement le stade de curiosité de laboratoire de recherche, en revanche, le travail réalisé a permis de finaliser unevariante du système GNU basée sur lenoyau Linux[10]. Une querelle sémantique a, pour cette raison, éclaté ces dernières années concernant l’appellation GNU/Linux afin de faire référence ausystème dans son intégralité[11].
Alors que la réputation de GNU grandissait, des entreprises intéressées ont commencé soit à contribuer au développement, soit à revendre les logiciels du projet GNU et à offrir de l'assistance technique. La principale de ces sociétés estCygnus Solutions, qui fait maintenant partie deRed Hat.
À partir de1990, le système GNU dispose de son propreéditeur de texte (Emacs), d’un compilateur très performant (GCC), d’un Débogueur (GDB) d’unlangage de script (Bash), et de la plupart des bibliothèques système (commeglibc) d’une distribution Unix standard, le principal composant encore manquant étant lenoyau, qui sera finalement amené de l’extérieur par le projetlinux.
GNU est toujours incomplet, notamment parce que son noyauGNU Hurd, une pièce essentielle du système d'exploitation reste immature et certains des composants GNU sont même incompatibles avec ce dernier. Les logiciels du GNU sont utilisés depuis longtemps, mais habituellement avec le noyau tiersLinux.
Ce système est né du besoin de maintenir intactes les traditionshacker de partage dans un monde de plus en plus marqué par l’empreinte dudroit d'auteur. Stallman travaillait encore au laboratoire d’intelligence artificielle duMIT au lancement du projet. Il démissionnera en1984 pour se consacrer entièrement à la création de ce système et, d’après ses mots,« ramener l’esprit de coopération qui prévalait dans la communauté hacker dans les jours anciens ». Il n’était pas question alors de « propriété intellectuelle », et tous lescodes sources, distincts, s’échangeaient librement.
Cette pratique était la règle dans les premiers temps desmainframes, dont les sources étaient fournies sur simple demande et librement modifiables par les clients jusqu’au début desannées 1980[12].
On ne peut pas réellement comprendre la nature de ce projet sans en saisir les motivations, qui relèvent de l’éthique et de la philosophie politique. Il vise en effet à ne laisser l’homme devenir ni l’esclave de la machine et de ceux qui auraient l’exclusivité de sa programmation, ni decartels monopolisant des connaissances en fonction de leurs seuls intérêts. Le projet GNU œuvre pour une libre diffusion des connaissances, ce qui n’est pas sans implications politiques, éthiques, philosophiques et sociales, ou sociétales. Il s’agit d’ailleurs du modèle de coopération qui a toujours été celui des universités.
Stallman introduit alors la notion decopyleft, et formalise ainsi celle delogiciel libre. Il crée laFree Software Foundation en1985 pour assurer la protection légale du projet, dont la mission, plus générale, représente un projet proprement politique. La FSF commence par financer des programmeurs pour accélérer les premiers développements, mais la construction communautaire se nourrit de contributions bénévoles. À ce titre, des communautés universitaires ou scientifiques, américaines et internationales, contribuent énormément à la viabilité de ces projets.
Au début de la création de GNU, le système d’exploitationUNIX était déjà largement répandu et son architecture considérée comme suffisamment robuste par les universitaires et les ingénieurs. GNU fut donc conçu pour être compatible avec ce système, par l’implémentation ducode source UNIX en logiciel libre et l’écriture de nouveaux composants, afin d’obtenir un équivalent libre. GNU se définit dès l’origine comme une plate-forme universelle dédiée à tous les logiciels libres, pas seulement ceux maintenus par le projet GNU.
« Le système GNU comprend des programmes qui ne sont pas des logiciels GNU, ce sont des programmes qui ont été développés par d’autres, dans le cadre d’autres projets, pour leurs buts propres, mais qu’on peut réutiliser, car ce sont des logiciels libres[14]. »
Le système GNU avec le noyauHurd reste cependant à l’état de projet (bien que la plupart du système soit fonctionnel pour les développeurs et utilisateurs). On peut pourtant le découvrir ensymbiose avec des projets connexes (commeDebian), ouconcurrents d’une partie (commeLinux).
GNU Guile est le langage d’extension officiel du système. GNU est en effetorientéLisp depuis son annonce en 1983. Le système est toutefoisconstruit etcompilé enC pour assurer sa compatibilité avec UNIX.Texinfo est le format de documentation officiel du projet. On peut citer aussi des améliorations faites à plusieurs logiciels libres alternatifs à ceux d’UNIX :bash,coreutils,bibliothèque C,compilateurs, etc. Enfin, l’architecture du noyau,Le Hurd, constitué d’un réseau de serveurs distribués fonctionnant sur unGNU Mach.
Toutes lescommandes UNIX ont par ailleurs été ré-implémentées et sont maintenues dans le cadre duprojet. On lui doit également divers standards innovants, tels que les options longues[n 3]. Les développements répondent enfin auxnormes de codage GNU.
Les distributions UNIX étaient pour la plupart propriétaires. GNU est un systèmelibre. Lalicence publique générale GNU a été créée à cet effet. La nature même dulogiciel libre a favorisé une plus large diffusion des programmes.
Le système GNU est composé exclusivement de logiciels libres. Ces composants se présentent sous la forme depaquets logiciels maintenus et distribués par leprojet GNU.
GNU est aujourd’hui utilisé par des millions de personnes avec GNU/Linux. On retrouve aussi quelques-unes de ses composantes dans les systèmesFreeBSD,NetBSD etOpenBSD.
GNU/Linux (souvent appelé[15]Linux) est une variante dusystème d'exploitation GNU fonctionnant avec lenoyau Linux[10]. Le projet GNU avait originellement prévu le développement du noyauHurd pour compléter le système, mais au début desannées 1990, Hurd ne fonctionnait pas encore et son développement rencontrait encore des difficultés. L’arrivée du noyau Linux permit l’utilisation du système GNU sur les ordinateurs animés par desmicroprocesseurs de la familleIntelx86, en favorisant sa large diffusion par la complémentarité des projets.
Lesdistributions du système d’exploitationGNU/Linux constituées exclusivement de logiciels libres sont peu nombreuses. Le fait de n’offrir aucunlogiciel propriétaire dans la distribution standard n’est pas suffisant, la FSF demande également de ne pas faciliter leur installation. Lesdépôts liés à la distribution ne doivent pas en contenir et la documentation diffusée par la distribution ne doit pas inciter à l’installation de tels logiciels.
Debian a créé deux versions modifiées de GNU, qui plutôt qu'utiliser le noyau Linux, utilisent le noyau d'une distributionBSD, dans un casFreeBSD, dans l'autreNetBSD. Cela a donné naissance aux distributionsDebian GNU/kFreeBSD et Debian GNU/NetBSD.
Cette section est vide, insuffisamment détaillée ou incomplète.Votre aide est la bienvenue !Comment faire ?
↑Une option d’une lettre normalement invoquée avec un tiret (comme « -h ») peut aussi être appelée par une chaîne de caractères précédée de deux tirets (comme « --help »), ce qui est plus explicite et donc plus facile à apprendre ;
↑(en) FAQ officielle du noyau Linux,tux.org, 17 octobre 2009,[lire en ligne],« In this FAQ, we have tried to use the word "Linux" or the expression "Linux kernel" to designate the kernel, and GNU/Linux to designate the entire body of GNU/GPL'ed OS software, as found in the various distributions. We prefer to call a cat, a cat, and a GNU, a GNU. ;-) »
↑Linux Handbook: A Guide to IBM Linux Solutions and Resources, SG24-7000-01, IBM Redbooks, 2005.