Gentoo Linux

distribution Linux

Gentoo Linux, ou plus communément Gentoo (/ˈdʒɛn.tu/) est une distribution GNU/Linux dite source. Elle a été conçue pour être modulaire, portable et optimisée pour le matériel de l'utilisateur. Sa particularité est que le système est entièrement compilé à partir des sources (à quelques éventuelles exceptions près), à la manière de Linux From Scratch, mais automatisée, ces tâches étant réalisées par l'intermédiaire du gestionnaire de paquets Portage de Gentoo et sa commande emerge[2].

Gentoo Linux
Logo
LiveCD Gentoo Linux 12.0.
LiveCD Gentoo Linux 12.0.

Famille GNU/Linux
Type de noyau Monolithique modulaire
État du projet en développement
Dépôt gitweb.gentoo.org/repo/gentoo.gitVoir et modifier les données sur Wikidata
Plates-formes i386, x86-64, PowerPC, PowerPC 64, sparc, DEC Alpha, ARM, MIPS, PA-RISC, S390, IA-64, sh, m68k
Entreprise /
Fondateur
Daniel RobbinsVoir et modifier les données sur Wikidata
Entreprise /
Développeur
Fondation Gentoo
Licence GNU GPL
Première version [1]Voir et modifier les données sur Wikidata
Dernière version stable 2.9
Méthode de mise à jour emerge (rsync)
Interface utilisateur par défaut Console
Gestionnaire de paquets Portage
Site web www.gentoo.orgVoir et modifier les données sur Wikidata

Origine du nom

modifier

Le Finlandais Linus Torvalds, créateur initial du noyau Linux, a choisi comme logo un dessin représentant un manchot.

Pour le cas particulier de la distribution linux Gentoo, un Gentoo (Manchot papou, Pygoscelis papua) est tout simplement un genre particulier de manchot, ce qui convient bien à la distribution GNU/Linux décrite ici. En effet, les Manchots papou sont les nageurs les plus rapides parmi ces animaux (35 km/h).

Histoire

modifier

Gentoo est issue d'Enoch Linux, mise au point par le programmeur Daniel Robbins, qui avait pour but de créer une distribution adaptée au matériel et aux besoins de l'utilisateur, sans binaires précompilés et sans programmes superflus préinstallés[3][source insuffisante]. La version 0.75 d'Enoch est disponible en décembre 1999.

Robbins et les autres contributeurs au projet utilisèrent un fork du compilateur GNU GCC connu sous le nom d'EGS et développé par Cygnus Solutions. C'est à ce moment que Enoch fut renommée en Gentoo, selon le nom d'une des espèces de manchots les plus rapides. Les modifications propres à EGS ont plus tard été intégrées à la version upstream de GCC (dans la version 2.95). Le e- de Enoch se retrouve dans le nom de plusieurs composants ou outils systèmes transmis à Gentoo, comme ebuild, elogind, les commandes emerge, eselect, equery, etc.

Après avoir rencontré des problèmes liés à un bug sur son propre système, Robbins mit en suspens le développement de Gentoo et passa à FreeBSD. Il déclara plus tard qu'il décida à ce moment d'intégrer plusieurs fonctionnalités de FreeBSD à Portage afin d'en faire un système de ports de dernière génération.

La version 1.0 de Gentoo sort le 31 mars 2002[4][source insuffisante]. Robbins créa la Fondation Gentoo à qui il transféra tous les droits de marque et de propriété de la distribution et se mit en retrait du projet[5][source insuffisante]. Il fonda plus tard Funtoo, une distribution basée sur Gentoo avec qui elle reste entièrement compatible.

Caractéristiques

modifier

Sous Gentoo, la quasi-totalité des programmes devront être compilés à partir du code source[6]. Quelques logiciels, notamment certains dont la compilation est particulièrement longue et nécessite une grande quantité de mémoire vive, comme Chromium, Firefox, Rust ou LibreOffice, sont toutefois également disponibles sous forme de paquets précompilés (fichiers binaires) pour différentes architectures. C'est également le cas de quelques autres dont le code source n'est pas disponible, par exemple des logiciels propriétaires comme Discord ou CrossOver. Au total, environ une centaine de paquets (sur plus de 19 000) sont disponibles sous forme de binaires. Il existe aussi un paquet fournissant une version précompilée du noyau Linux avec une configuration générique, la compilation d'un noyau pouvant être longue et la configuration d'un noyau n'étant pas une étape triviale pour un utilisateur débutant. Gentoo dispose également de genkernel, un outil qui lui est spécifique et permet de faciliter la création, la compilation et l'installation du noyau.

Les outils de gestion de paquets de Gentoo s'inspirent des ports (en) des BSD. Ce processus permet une optimisation et une personnalisation complète du système mais prend un certain temps et requiert certaines ressources systèmes pour compiler tous les logiciels nécessaires.

Ce type d'installation permet de tirer parti au mieux de l'architecture de la machine. En effet, le code source sera compilé en tenant compte des optimisations possibles du jeu d'instructions du processeur. La majeure partie des distributions sont compilées avec un jeu d'instructions générique et non pas pour un processeur plus récent, ceci afin de conserver un fonctionnement sur le maximum de machines. Les processeurs plus récents fonctionnent alors de façon minimale sans utiliser les optimisations du fondeur.

Il existe un autre principe d'optimisation pour la compilation des différents programmes et composants, appelé USE flags (ou variables USE), qui permet de choisir quelles parties d'un programme ou quelles dépendances optionnelles seront compilées et installées, ce qui permet à la fois de diminuer le temps de compilation, l'espace disque nécessaire et l'espace mémoire pour chaque application et dépendance aussi bien pour l'utilisation que l'installation des programmes. Cela permet également à l'utilisateur d'échapper à d'éventuelles failles de sécurité liées à une fonctionnalité d'un programme s'il choisit de ne pas l'intégrer par son choix de Use flags.

De plus, ce type d'installation permet de gérer facilement les dépendances, et ceci même lors d'une mise à jour majeure de toute la distribution. En effet, lors de l'installation de chaque programme les bibliothèques de développement qui l'accompagnent sont automatiquement installées, et les autres programmes qui utilisent ces bibliothèques pourront être recompilés avec la nouvelle version de ces bibliothèques lors de la mise à jour. Le résultat est un système performant, cohérent et stable.

Un autre intérêt de Gentoo est de laisser l'utilisateur entièrement libre de configurer son système, en choisissant un certain profil d'utilisation lors de l'installation[7], puis en sélectionnant les applications de façon individuelle, ce qui peut permettre de conserver un système très léger et strictement adapté à des usages déterminés. C'est un point qui rapproche Gentoo notamment d'Arch, Slackware et quelques autres distributions, et qui les oppose à la plupart des autres, qui offrent peu d'options de paramétrage initial du système et installent par défaut avec celui-ci un panel prédéfini d'applications ne laissant qu'un choix restreint (voire aucun choix) à l'utilisateur.

Organisation et gouvernance

modifier

L'organisation est orientée par des politiques votées par les développeurs, en s'appuyant le plus généralement sur les pratiques actuelles. Les politiques en vigueur sont les Gentoo Linux Enhancement Proposal (GLEP), littéralement traduisible en « proposition d'amélioration de Gentoo Linux », (developer handbook) contient aussi la politique en matière de maintenance des ebuilds.

Les élections au conseil des développeurs

modifier

Les développeurs élisent annuellement parmi eux un conseil de sept personnes. Le conseil est chargé des questions transverses qui concernent Gentoo dans son ensemble sur les plans technique et humain. Les questions financières et légales sont gérées par la Fondation Gentoo[réf. nécessaire].

Développeurs

modifier

Les développeurs sont des individus admis en tant que tels par la communauté des développeurs existante. Pour devenir développeur, un individu doit avoir un tuteur parmi les développeurs.

Fonctionnement

modifier

Le fonctionnement au quotidien se veut horizontal depuis le départ de Daniel Robbins et l'adoption de la GLEP 39[8][source insuffisante].

Ce document établit la notion de « projet » comme étant un groupe de développeurs travaillant pour atteindre un ou plusieurs buts.

Portabilité

modifier

Conçue initialement pour fonctionner sur l'architecture x86, Gentoo est aujourd'hui l'une des distributions les plus portées. Les architectures actuellement supportées sont les suivantes : x86, PowerPC, PowerPC 970, SPARC, SPARC64, AMD64, IA-64, MIPS, DEC Alpha, HP/PA, ARM et zSeries/s390. Gentoo fut la première distribution à offrir un système GNU/Linux 64 bits (espace utilisateur et noyau) pour l'architecture PowerPC 970. Elle est également portable sur Xbox et PS3 comme nombre de distributions GNU/Linux.

Il existe aussi un profil embarqué qui utilise uClibc, une bibliothèque qui offre les mêmes fonctions que la glibc, mais plus compacte. Cela permet d'utiliser Gentoo sur des systèmes embarqués, d'adapter Gentoo à des automates programmables ou de réaliser une station de travail dédiée à des tâches qui nécessitent un système à haute performance.


Overlays

modifier

Un overlay (littéralement « surcouche ») regroupe un ensemble de programmes correspondant généralement à une tâche spécifique ainsi que les outils nécessaires à leur incorporation dans Portage. Il est ainsi possible d'installer facilement ces programmes et d'accroître les possibilités d'un système Gentoo.

Les overlays servent aussi à installer proprement un programme récent, mais encore absent de l'arbre principal que l'on pourra remplacer ensuite par son équivalent « officiel » sans soucis. Rien n'empêche de compiler et d'installer un logiciel, mais, dans ce cas, l'utilisateur risque d'avoir un programme ne respectant pas l'ordre ou la structure de la distribution et devra faire attention lors de l'arrivée du logiciel dans l'arbre principal, car il pourrait y avoir des fichiers de configurations mal placés par exemple.

Certains overlays utilisent le programme « layman » pour les regrouper et faciliter leur installation et leur gestion.

Distributions GNU/Linux basées sur Gentoo

modifier

Gentoo/FreeBSD

modifier

Gentoo/FreeBSD[9] est une variante du système GNU (actuellement non maintenue) fonctionnant sous le noyau FreeBSD utilisant de nombreuses applications informatiques du projet comme Portage, son gestionnaire de paquets.

Notes et références

modifier
  1. « https://www.funtoo.org/Funtoo_Linux_History » (consulté le )
  2. Il existe quelques alternatives à l'utilisation de la commande emerge comme le gestionnaire graphique kuroo, mais leur usage reste extrêmement marginal.
  3. « Gentoo Linux Documentation – Making the distribution, Part 1 » [archive du ], sur Gentoo.org, (consulté le )
  4. « Slashdot | Gentoo 1.0 Released », sur Linux.slashdot.org, (consulté le )
  5. « Daniel Robbins Resigns As Chief Gentoo Architect », sur Slashdot.org (consulté le )
  6. Lors du processus d'installation commune de Gentoo Linux, l'utilisateur doit télécharger une archive tar (le stage3) contenant l'armature du système (sans noyau) et une version binaire préinstallée des logiciels du système de base (sur ce point, l'installation du système se rapproche notamment de celle d'Arch Linux, et diffère de la plupart des autres distributions, où le processus est réalisé de façon automatisée par le biais d'un installateur). Ceux-ci seront ensuite recompilés à partir des sources au gré de leurs mises à jour respectives. L'installation d'un système Gentoo Linux entièrement à partir des sources est possible (à partir d'une archive stage1), mais est réservée aux utilisateurs avancés.
  7. Ce profil peut être minimal (comme celui présélectionné par défaut sur le stage3), plus adapté à tel ou tel environnement de bureau, plutôt axé sur la sécurité, adapté au travail des développeurs, etc. Les profils permettent également à l'utilisateur de choisir entre Systemd ou openRC comme système d'initialisation. Il est dans la plupart des cas tout à fait possible de basculer d'un profil à un autre, à condition de faire suivre ce changement d'une mise à jour globale du système.
  8. (en) Gentoo Linux Enhancement Proposal 39
  9. (en) « Gentoo/FreeBSD », sur gentoo.org, (consulté le )

Annexes

modifier

Liens externes

modifier
Origine :
Projet GNU, Linux
Basé sur :
GNU/Linux
Gentoo Linux Variantes :
LiveCD, Live DVD…
Dérivés :
Sabayon Linux, Kororaa, …