# GNU

GNU est un système d’exploitation libre créé en 1983 par Richard Stallman, maintenu par le projet GNU. Il reprend les concepts et le fonctionnement d’UNIX.
Les logiciels qui composent GNU sont généralement utilisés en association avec des logiciels libres issus d'autres projets tels que le noyau Linux.
Son symbole est un gnou, bovidé vivant en Afrique.

## Historique

Le 27 septembre 1983, Richard Stallman dévoile dans la pure tradition hacker son projet de développer un système d’exploitation compatible UNIX appelé GNU — acronyme récursif qui signifie en anglais « GNU’s Not UNIX » (littéralement, « GNU n’est pas UNIX ») —, en invitant la communauté hacker à le rejoindre et participer à son développement. Cette annonce succède à la « guerre » déclarée par Symbolics au laboratoire d’intelligence artificielle du MIT et à la disparition de la communauté hacker Lisp. Il annonce que le système pourra être utilisé et partagé librement par tous comme ce fut le cas avec Emacs. Concrètement il relate l’effort à accomplir, dont on distingue déjà en 1985 certaines pièces maîtresses : le compilateur GCC finalisé dès juin 1984, une version emacs compatible UNIX, etc.
L’effort sera opiniâtrement poursuivi, et, au début des anné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, un shell, des bibliothèques, les composants de base, les outils de développement… Exception faite du plus central : le noyau.
Le projet GNU initie alors en 1990 le projet de production d'un noyau nommé Hurd.
Selon Thomas Bushnell, l’architecte initial du projet Hurd, l’idée initiale était d’adapter le noyau BSD 4.4-lite, 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 »$^,$. Stallman confirmera plus tard que l’université de Californie travaillait à combler les parties manquantes pour transformer BSD en un système d’exploitation complet et librement redistribuable. Malgré une collaboration étroite avec les hackers de Berkeley et leur meneur Keith Bostic, le code propriétaire d’AT&T mélangé au code BSD n’est pas supprimé, si bien que Stallman décide, à la place, d’utiliser le micro-noyau Mach, 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 une variante du système GNU basée sur le noyau Linux. 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 au système dans son intégralité.
GNU a fêté son trentième anniversaire au MIT de Cambridge (Massachusetts) en septembre 2013.

### Influence grandissante

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 est Cygnus Solutions, qui fait maintenant partie de Red Hat.
À partir de 1990, 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’un langage de script (Bash), et de la plupart des bibliothèques système (comme glibc) d’une distribution Unix standard, le principal composant encore manquant étant le noyau, qui sera finalement amené de l’extérieur par le projet linux.
GNU est toujours incomplet, notamment parce que son noyau GNU 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 tiers Linux.

## Philosophie
### Esprit hacker et projet GNU

Ce système est né du besoin de maintenir intactes les traditions hacker de partage dans un monde de plus en plus marqué par l’empreinte du droit d'auteur. Stallman travaillait encore au laboratoire d’intelligence artificielle du MIT au lancement du projet. Il démissionnera en 1984 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 les codes sources, distincts, s’échangeaient librement.
Cette pratique était la règle dans les premiers temps des mainframes, dont les sources étaient fournies sur simple demande et librement modifiables par les clients jusqu’au début des années 1980.
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 de cartels 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.

### Philosophie du logiciel libre et FSF

Stallman introduit alors la notion de copyleft, et formalise ainsi celle de logiciel libre. Il crée la Free Software Foundation en 1985 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.
En janvier 2004, l’UNESCO élève le logiciel libre au rang de patrimoine mondial de l’humanité et confère à GNU la valeur symbolique de « Trésor du monde ».

## Caractéristiques

Au début de la création de GNU, le système d’exploitation UNIX é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 du code 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 avec le noyau Hurd 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 en symbiose avec des projets connexes (comme Debian), ou concurrents d’une partie (comme Linux).

### Différences avec UNIX

GNU Guile est le langage d’extension officiel du système. GNU est en effet orienté Lisp depuis son annonce en 1983. Le système est toutefois construit et compilé en C 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 un GNU Mach.
Toutes les commandes UNIX ont par ailleurs été ré-implémentées et sont maintenues dans le cadre du projet. On lui doit également divers standards innovants, tels que les options longues. Les développements répondent enfin aux normes de codage GNU.
Les distributions UNIX étaient pour la plupart propriétaires. GNU est un système libre. La licence publique générale GNU a été créée à cet effet. La nature même du logiciel libre a favorisé une plus large diffusion des programmes.

### Composants du système

Le système GNU est composé exclusivement de logiciels libres. Ces composants se présentent sous la forme de paquets logiciels maintenus et distribués par le projet GNU.
Parmi la liste des paquets GNU, on retrouve la collection de compilateurs GNU, le débogueur GDB, les outils binaires GNU, le shell Bash, la bibliothèque C GNU, les outils de base GNU, l’assembleur GNU ou le noyau Hurd.

## Distribution
### Distributions utilisant Hurd

Il existe à ce jour deux distributions du système d’exploitation GNU :
* Arch Hurd ;
* Debian GNU/Hurd.
GNU est aujourd’hui utilisé par des millions de personnes avec GNU/Linux. On retrouve aussi quelques-unes de ses composantes dans les systèmes FreeBSD, NetBSD et OpenBSD.

### Variantes du système
#### GNU/Linux

GNU/Linux (souvent appelé Linux) est une variante du système d'exploitation GNU fonctionnant avec le noyau Linux. Le projet GNU avait originellement prévu le développement du noyau Hurd pour compléter le système, mais au début des anné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 des microprocesseurs de la famille Intel x86, en favorisant sa large diffusion par la complémentarité des projets.

##### Distributions soutenues par la FSF

Les distributions du système d’exploitation GNU/Linux constituées exclusivement de logiciels libres sont peu nombreuses. Le fait de n’offrir aucun logiciel propriétaire dans la distribution standard n’est pas suffisant, la FSF demande également de ne pas faciliter leur installation. Les dé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.
Ces distributions sont soutenues par la FSF lorsque ces critères sont respectés, parmi elles, on retrouve PureOS, GNU Guix, gNewSense, Trisquel, Ututo, Venenux, BLAG, Musix GNU+Linux, Dragora, Dynebolic et Parabola.
Toutes ces variantes utilisent aujourd’hui le noyau GNU Linux-libre.

#### GNU avec un noyau BSD

Debian a créé deux versions modifiées de GNU, qui plutôt qu'utiliser le noyau Linux, utilisent le noyau d'une distribution BSD, dans un cas FreeBSD, dans l'autre NetBSD. Cela a donné naissance aux distributions Debian GNU/kFreeBSD et Debian GNU/NetBSD.