# Gentoo Linux

Gentoo Linux, ou plus communément Gentoo (/ˈ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 et sa commande emerge.

## Origine du nom

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

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. La version 0.75 d'Enoch est disponible en décembre 1999.
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. 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. Il fonda plus tard Funtoo, une distribution basée sur Gentoo avec qui elle reste entièrement compatible.

## Caractéristiques

Sous Gentoo, la quasi-totalité des programmes devront être compilés à partir du code source. 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, 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

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

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.

### 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.

### Fonctionnement

Le fonctionnement au quotidien se veut horizontal depuis le départ de Daniel Robbins et l'adoption de la GLEP 39.
Ce document établit la notion de « projet » comme étant un groupe de développeurs travaillant pour atteindre un ou plusieurs buts.

## Portabilité

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

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

* Bitdefender Rescue CD
* Calculate Linux
* Chromium OS/Chrome OS
* Funtoo
* Kororaa
* Pentoo
* Sabayon Linux
* SystemRescueCd (anciennement)
* Ututo (anciennement)
* VidaLinux
* Redcore
* Daphile

## Gentoo/FreeBSD

Gentoo/FreeBSD 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.