Gentoo Linux

Gentoo Linux (/ˈdʒɛn.tu/) est une distribution 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 Linux et sa commande emerge[1].

Gentoo Linux

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.git
Plates-formes i386, x86-64, PowerPC, PowerPC 64, sparc, DEC Alpha, ARM, MIPS, PA-RISC, S390, IA-64, sh, m68k
Entreprise /
Fondateur
Daniel Robbins
Entreprise /
Développeur
Fondation Gentoo
Licence GNU GPL
Première version
Méthode de mise à jour emerge (rsync)
Interface utilisateur par défaut Console
Gestionnaire de paquets Portage
Site web www.gentoo.org

Histoire

Gentoo Linux est issue de 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[2]. La version 0.75 d'Enoch fut rendue disponible en décembre 1999[3].

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)[4]. 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[5].

La version 1.0 de Gentoo sortit le 31 mars 2002[6]. 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[7]. Il fonda plus tard Funtoo, une distribution basée sur Gentoo avec qui elle reste entièrement compatible.

Caractéristiques

Sous Gentoo Linux, la quasi-totalité des programmes devront être compilés à partir du code source[8]. 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[9] (ou variables USE[10]), 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 Linux est de laisser l'utilisateur entièrement libre de configurer son système, en choisissant un certain profil d'utilisation lors de l'installation[11], 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 Linux, 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

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 », dont la liste est consultable sur le site[12]. Le manuel du développeur[13],[14] (developer handbook) contient aussi la politique en matière de maintenance des ebuilds.

Conseil

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[15], désignant les membres suivants[16].

Développeurs

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. Le candidat doit répondre à un questionnaire, faire valider ses réponses par son tuteur et améliorer ses réponses en fonction des conseils qui lui sont donnés. Une fois que le tuteur est satisfait des réponses, il ouvre un bug pour indiquer au projet « recrutement » qu'un nouveau candidat est prêt. Le candidat doit alors répondre à un second questionnaire et suivre la même procédure d'aller-retours avec son tuteur. Parallèlement au second questionnaire, le candidat doit s'entretenir avec un membre de l'équipe des recruteurs pour vérifier ses connaissances des politiques de Gentoo Linux. Lorsque le recruteur est satisfait de l'état des connaissances du candidat, ce dernier est admis dans le projet, et ses accès sont créés.

Fonctionnement

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

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

  • l'existence d'un projet est caractérisée par l'existence d'une page web maintenue sous l'URL : www.gentoo.org/proj/en/<nom du projet> ;
  • un projet doit avoir un ou plusieurs responsables sélectionnés au moins annuellement (la tenue d'une élection n'est pas requise) ;
  • un projet peut contenir des sous-projets ;
  • tout (ou tout le monde) n'a pas besoin d'un projet ;
  • les projets n'ont pas besoin d'avoir une existence à long terme ;
  • différents projets peuvent très bien se contredire, et ce n'est pas un problème ;
  • n'importe quel développeur peut créer un projet en créant la page web du premier point et en envoyant une request for comments (demande de commentaires) sur la liste gentoo-dev. À noter que ce document ne fournit aucun moyen pour la communauté de bloquer un nouveau projet, même si les commentaires sont globalement négatifs.

La GLEP 39 établit également le Conseil Gentoo (Gentoo council) pour traiter les questions générales :

  • il y a un nombre déterminé de membres du conseil. (Pour la première élection, ce nombre a été fixé à sept par acclamation.) ;
  • les membres du conseil sont choisis par une élection générale parmi l'ensemble des développeurs chaque année ;
  • le conseil doit se réunir de façon ouverte au moins une fois par mois ;
  • les décisions sont prises à la majorité des votes des membres présents ou représentés ;
  • si un membre du conseil (ou son suppléant le cas échéant) est absent à deux réunions consécutives, il est considéré comme slacker (littéralement « fainéant ») ;
  • si un membre du conseil considéré comme slacker manque une réunion jusqu'à la fin de son mandat (ou si son suppléant ne vient pas), il perd son statut de membre du conseil et une élection est organisée pour le remplacer. Le membre nouvellement élu a un mandat réduit, qui se termine à l'élection générale suivante ;
  • les membres du conseil qui ont été précédemment exclus pour absences répétées peuvent se présenter aux élections suivantes, même à celle de leur propre remplacement. Ils devront néanmoins justifier leurs absences, et s'attendre à ce qu'on leur demande des explications s'ils ne le font pas d'eux-mêmes ;
  • la considération slacker est effacée lorsqu'un développeur est élu au conseil ;
  • si, lors d'une réunion du conseil, moins de 50 % de ses membres sont présents, une nouvelle élection générale est organisée dans le mois qui suit. Les dates du mandat sont alignées sur la date de cette nouvelle élection ;
  • il est possible de faire appel des décisions disciplinaires devant le conseil ;
  • un suppléant ne doit pas être un autre membre du conseil, et une seule personne ne peut pas suppléer deux membres à la même réunion.

Portabilité

Conçue initialement pour fonctionner sur l'architecture x86, Gentoo Linux 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 Linux fut la première distribution à offrir un système Linux 64 bits (espace utilisateur et noyau) pour l'architecture PowerPC 970. Elle est également portable sur Xbox et PS3 comme nombre de distributions 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 Linux sur des systèmes embarqués, d'adapter Gentoo Linux à 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.

Origine du nom « Gentoo-Linux »

Le finlandais Linus Torvalds, créateur initial du noyau Linux, a choisi comme logo un dessin représentant un manchot. Un Gentoo (Manchot papou, Pygoscelis papua) est tout simplement un genre particulier de manchot, ce qui convient parfaitement à la distribution Linux décrite ici. En effet, les Manchots papou sont les nageurs les plus rapides parmi ces animaux (35 km/h).

Overlays

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.

Présentation de quelques overlays

  • L’overlay science propose de nombreux programmes scientifiques et mathématiques. C'est un overlay très dynamique qui propose régulièrement des mises à jour et de nouveaux programmes avant qu'ils soient incorporés officiellement dans Portage.
  • L’overlay audio professionnel propose de nombreux programmes audio et le même noyau temps réel (ou multimédia) que des distributions comme DeMuDi. Autant le module realtime-lsm que PAM-Rlimits sont proposés, ce qui laisse une liberté totale à l'utilisateur dans la gestion des priorités des tâches multimédia dans le système. Les mises à jour sont nombreuses et les programmes offerts sont le plus souvent de la dernière version et toutes leurs fonctionnalités sont disponibles. De plus, beaucoup de versions CVS et SVN sont également proposées. Beaucoup de programmes de cet overlay sont compatibles avec lash, le successeur de ladcca, ce qui permet de sauvegarder l'état des sessions de travail audio et de les restaurer automatiquement.
  • Break My Gentoo, littéralement Casse ma Gentoo, est un overlay hautement expérimental pour les programmes instables, le plus souvent car ils sont encore en phase de développement, et qui n'ont aucune chance d'arriver dans l'arbre Portage avant la sortie d'une version stable. Son usage est conseillé uniquement aux utilisateurs souhaitant expérimenter les dernières fonctionnalités disponibles et qui n'ont pas peur de rendre leur système inutilisable à la suite d'un plantage.
  • Gentoo Overlays est un espace de travail social dont le but est de permettre aux différents projets, développeurs et utilisateurs de Gentoo de collaborer pour préparer la distribution Gentoo de demain.

Documentation

Les développeurs de Gentoo Linux sont conscients que l'installation d'un système où beaucoup de choses sont configurables, y compris les options de compilation, peut poser de sérieux problèmes à l'utilisateur non averti, aussi un soin particulier est apporté à la documentation.

Le manuel d'installation guide pas à pas l'utilisateur pendant la configuration et l'installation du système. Les conseils de ce manuel sont à suivre impérativement pour obtenir un système stable et performant.

Ce manuel d'installation est complété par de nombreux autres ainsi que par un forum, des listes de discussion et des canaux IRC où il est possible d'obtenir rapidement de l'aide.

Distributions GNU/Linux basées sur Gentoo

Gentoo/FreeBSD

Gentoo/FreeBSD[18] 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

  1. Il existe quelques alternatives à l'utilisation de la commande emerge comme le gestionnaire graphique kuroo, mais leur usage reste extrêmement marginal.
  2. « Gentoo Linux Documentation – Making the distribution, Part 1 » [archive du ], sur Gentoo.org, (consulté le )
  3. « Planet Mirror – enoch – Enoch Linux – enoch-0.75 – download now » [archive du ], sur Public.planetmirror.com, (consulté le )
  4. « Gentoo Linux Documentation – Making the distribution, Part 2 » [archive du ], sur Gentoo.org, (consulté le )
  5. « Gentoo Linux Documentation – Making the distribution, Part 3 » [archive du ], sur Gentoo.org, (consulté le )
  6. « Slashdot | Gentoo 1.0 Released », sur Linux.slashdot.org, (consulté le )
  7. « Daniel Robbins Resigns As Chief Gentoo Architect », sur Slashdot.org (consulté le )
  8. 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 rappproche 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.
  9. (en) « Gentoo X86 Handbook - Gentoo Wiki », sur gentoo.org (consulté le ).
  10. (en) « Gentoo X86 Handbook - Gentoo Wiki », sur gentoo.org (consulté le ).
  11. 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.
  12. (en) Liste des Gentoo Linux Enhancement Proposals'
  13. (en) Gentoo Developer Handbook
  14. (en) Gentoo Development Guide
  15. (en) Archives des élections au conseil Gentoo
  16. (en) Conseil Gentoo
  17. (en) Gentoo Linux Enhancement Proposal 39
  18. (en) « Gentoo/FreeBSD », sur gentoo.org, (consulté le )

Annexes

Articles connexes

Liens externes

Origine :
Projet GNU, Linux
Basé sur :
GNU/Linux
Gentoo Linux Variantes :
LiveCD, Live DVD…
Dérivés :
Sabayon Linux, Kororaa, …
  • Portail GNU/Linux
  • Portail des logiciels libres
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.