modifié le

Aperçu

Qu’est-ce que Linux ? Pourquoi GNU/Linux ? D’où sort-il ? Quel rapport avec UNIX ? Qu’est-ce qu’une distribution Linux ? Sur quels critères en choisir une ?

1. Linux

Linus Torvalds
Linus Torvalds

En 1991, Linus Torvalds crée, pendant ses études, un noyau de système d’exploitation, qu’il nomme Linux.

L’objectif d’un noyau système est d’interagir avec les composants physiques de l’ordinateur (processeurs, mémoire, stockage, réseau, etc.). C’est l’interface entre le matériel et les applications, un ensemble de fonctions (les fonctions systèmes) que les développeurs d’applications appellent pour interagir avec le matériel.

Pour avoir un système d’exploitation complet, il faut envelopper le noyau de commandes permettant à un humain de le piloter. C’est ce qu’apporte GNU.

Linux est aussi le noyau du système Android.

2. GNU/Linux

GNU

GNU est un projet qui débute en 1983, à l’initiative de Richard Stallman (MIT). Son but est de créer un jeu de commandes permettant à un utilisateur de gérer un ordinateur.

Les commandes GNU sont une réécriture des commandes Unix. Par conséquent, l’association GNU+Linux donne un système d’exploitation de type Unix.

Le code de GNU est ouvert : c’est du logiciel libre.

Richard Stallman
Richard Stallman

Richard Stallman

C’est avec le projet GNU que le concept de logiciel libre est clairement défini et promu.

Stallman est l’auteur de la GPL, la licence publique générale GNU. La GPL fixe les conditions légales de distribution d’un logiciel libre. Elle garantit à l’utilisateur le droit :

  • d’exécuter le logiciel, pour n’importe quel usage ;

  • d’étudier le fonctionnement d’un programme et de l’adapter à ses besoins, ce qui suppose un accès aux codes sources ;

  • de modifier le logiciel d’origine et de redistribuer librement les versions modifiées.

Le projet GNU a joué un rôle crucial dans l’histoire du logiciel libre en le structurant, en le popularisant et en créant un écosystème florissant.

Stallman a donné une conférence à l’université d’Angers en 2016 (dont on trouve encore des traces dans Ouest-France)

3. Unix

3.1. L’histoire

Unix est un système d’exploitation créé en 1969 par Ken Thompson (Bell Labs, AT&T).

Fin des années 1960, les laboratoires Bell, réputés pour leurs avancées en télécommunications, travaillent sur un système d’exploitation ambitieux nommé Multics. Mais ce projet, bien que novateur, s’avère trop complexe et gourmand en ressources.

Ken Thompson & Dennis Ritchie
Thompson & Ritchie

Deux chercheurs des Bell Labs impliqués dans le projet Multics, Ken Thompson et Dennis Ritchie, décident alors de développer leur propre système, plus simple et efficace. C’est ainsi que nait le système Unics, développé sur un vieux DPD-7, un mini-ordinateur DEC. Mais Unics, écrit en assembleur, n’est pas transposable sur d’autres architectures matérielles. L’idée germe alors de créer un langage de programmation spécialement pour réécrire Unics. C’est ainsi que Ritchie crée le langage C, et que Unics, alias Unix, est réécrit en C. Il devient ainsi portable, et se diffuse rapidement dans les universités. Unix devient populaire.

Aujourd’hui, le langage C est toujours très utilisé. C’est un langage de bas niveau, qui colle de près à l’architecture matérielle. Il est de ce fait efficace, c’est-à-dire que les exécutables obtenus par compilation d’un code C sont petits en taille et rapides. C est inégalable dans le développement des systèmes d’exploitation (le noyau Windows est écrit en C), des applications serveur (PostgreSQL, Apache le sont également), des drivers, et du temps réel. Les interpréteurs PHP, Perl, Python sont aussi écrits en C.

Unix est encore aujourd’hui majoritairement écrit en C. Mais récemment, pour le code de Linux, Thorvals ouvre petit à petit la porte à un nouveau langage, plus sécurisé : Rust.

Unix représente une grande famille de systèmes d’exploitation.

Que ce soit Ultrix, Irix, Xenix, Aix, Astérix, Obélix ou n’importe quel système de cette grande famille, l’utilisateur dispose d’un jeu de commandes de base à peu près standard, utilisable en mode texte depuis un terminal.

Deux branches principales

Cette grande famille se divise en 2 branches : BSD et System V.

BSD (Berkeley Software Distribution) est une branche majeure de l’arbre ci-dessus, issue de l’Université californienne Berkeley (à partir de 1977).

System V est l’autre branche majeure d’Unix (développée par AT&T, à partir de 1983).

Ces deux branches ont des philosophies différentes et ont évolué indépendamment. BSD a mis l’accent sur la portabilité et l’open-source, tandis que System V s’est concentré sur les performances et les fonctionnalités.

System V a joué un rôle crucial dans la standardisation de l’interface système Unix. Un grand nombre de systèmes Unix commerciaux sont des descendants directs de System V. Et GNU/Linux lui a emprunté de nombreux concepts et outils.

3.2. Propriétaires ou libres

Certains Unix sont propriétaires, donc vendus sous licence. Ils sont développés par des sociétés commerciales, principalement des constructeurs de mini-ordinateurs et stations de travail. On peut citer :

  • Ultrix (Digital Equipment Corporation)

  • NeXTSTEP (NeXT)

  • SunOS et Solaris (SUN)

  • Xenix (créé par Microsoft, puis cédé à SCO)

  • Unixware (Novell)

  • AIX (IBM)

  • IRIX (Silicon Graphics)

  • BOS (Bull)

  • HP-UX (Hewlett-Packard)

  • True64 (DEC/Compaq)

  • MacOS (Apple)

Xenix est le premier Unix propriétaire pour PC.

A partir de la fin des années 80, l’arrivée progressive des Unix libres sur PC (GNU/Linux, FreeBSD, OpenBSD et NetBSD) a relativisé l’importance des Unix propriétaires.

3.3. Caractéristiques techniques

Unix est un OS multi-tâches et multi-utilisateurs. Multi-tâches signifie qu’il peut réaliser plusieurs choses en même temps. Et multi-utilisateurs signifie que plusieurs personnes peuvent travailler dans leur propre environnement sur une même machine.

Dans les années 80, les systèmes des ordinateurs personnels, comme CP/M, Apple DOS, MS/DOS, n’étaient ni multi-tâches, ni multi-utilisateurs. Et même jusqu’au milieu des années 90, Windows 95 n’était toujours pas multi-utilisateurs.

3.4. POSIX

POSIX (Portable Operating System Interface) est une norme pour la portabilité des logiciels. POSIX garantit qu’un logiciel écrit pour un système conforme à POSIX fonctionnera correctement sur un autre système conforme, sans nécessiter de modifications majeures. Les systèmes conformes à POSIX offrent un ensemble commun d’outils et de commandes.

La norme POSIX est étroitement lié à UNIX, car elle s’en est largement inspirée. Et donc nombreux sont les systèmes UNIX à y être conformes. Linux est hautement conforme POSIX. Windows, quant à lui, en est loin, c’est pourquoi une application Unix ne fonctionne pas sous Windows (et inversement). MacOS (basé sur un noyau Unix) l’est beaucoup plus, bien qu’un certain nombre d’extensions développées par Apple l’éloigne de la norme.

4. Distributions Linux

Une distribution Linux se compose du système GNU/Linux et d’une sélection d’applications open-source. Une distribution est gérée par une communauté diffuse de contributeurs. Créer une distribution consiste à choisir les applications à intégrer (faire son marché sur Internet), et les intégrer (les compiler, les configurer) de façon à constituer un environnement de travail opérationnel et cohérent.

Dans la plupart des distributions, chaque application se présente sous forme d’un paquet (package), contenant l’exécutable, la configuration ainsi que des informations de dépendance envers d’autres packages. Les packages sont archivés dans des dépôts (repositories) publics sur Internet.

Exemples de distribution Linux : Debian, RHEL, Fedora, Ubuntu, CentOS, AlmaLinux, Scientific Linux, Rocky Linux, Oracle Linux, openSUSE, Mageia, Mandriva.

4.1. Critères distinctifs

Une distribution est donc un assemblage de packages. Elle est construite à l’aide d’un système de packaging, c’est-à-dire une application qui gère les packages. Il existe différents système de packaging, dont les plus connus sont RPM et DEB.

Le système de packaging est un critère de différentation important entre les distributions. En effet, deux distributions basées sur le même système de packaging ont un nommage des fichiers et répertoires identiques. Elles organisent leur espace disque de la même façon: leurs fichiers sont situés dans les mêmes répertoires. Et elles utilisent donc les mêmes commandes pour gérer les applications.

A contrario, deux distributions construites avec deux systèmes de packaging distincts ont des façons différentes de rechercher, installer et mettre à jour les applications. Les dépôts de paquets ne sont pas les mêmes, et les noms de paquets pas forcément non plus.

Les distributions se distinguent aussi par :

  • le public visé : par exemple, le grand public (Ubuntu, Fedora), les enfants (PrimTux, Sugar on a Stick), les informaticiens (Gentoo, Arch Linux), l’embarqué (Yocto Project, Buildroot et OpenWrt), etc. ;

  • la machine cible : poste de travail (Ubuntu, Linux Mint, Fedora, OpenSuse), serveur (RHEL, Debian, CentOS) ou smartphone ;

  • la stabilité : les applications proposées sont éprouvées (Debian), ou au contraire fraichement sorties (Fedora) ;

  • la tolérance aux logiciels non libres, notamment au niveau des pilotes et des codecs ;

  • la durée de vie des versions et la cadence des sorties, des plus sereines (par exemple Debian ou RHEL avec une durée de vie de 10 ans) aux plus dynamiques (par exemple Fedora, avec une version majeure tous les 6 mois, maintenue 1 an).

4.2. Libre ou commerciale

La distribution peut être gérée par la communauté (distribution libre) ou par une société privée (distribution commerciale). Cela n’a pas d’impact sur le résultat final proposé qui reste libre, mais cela influe sur la stratégie et la philosophie de la distribution (car souvent ces sociétés comptent générer des profits sur le support qu’elles proposent).

Parmi les distributions commerciales répandues, on peut citer :

  • RHEL (RedHat Enterprise Linux), créée et maintenue par RedHat,

  • Ubuntu, financé par Canonical,

  • SLE (SUSE Linux Enterprise), maintenue aujourd’hui par Suse,

  • Oracle Linux.

Parmi les distributions libres répandues, on peut citer : Debian, Fedora, CentOS, Gentoo, AlmaLinux, Arch Linux, openSUSE.

redhat

4.3. Packaging RPM

RPM (RedHat Package Manager) est l’un des systèmes de packaging incontournables, créé par la société RedHat.

4.3.1. Histoire mouvementée de cette famille de distributions

RedHat crée sa distribution RedHat Linux en 1997, et définit à cette occasion le format RPM de ses packages et les dépôts associés. Mais en 2001, elle décide de remplacer sa distribution RedHat Linux par deux nouvelles distributions : RedHat Enterprise Linux (RHEL) et Fedora. Soubressauts dans la communauté libriste, car RHEL n’est pas téléchargeable gratuitement. Elle est commercialisée sous la forme d’une souscription à un contrat de maintenance.

Fedora, quant à elle, est une distribution communautaire. C’est une sorte de laboratoire qui teste les dernières versions des applications, valide de nouveaux concepts, etc. Les technologies ainsi validées et éprouvées grandeur nature sont destinées à intégrer quelques années plus tard RHEL.

Malgré son caractère expérimental, Fedora est une distribution fiable. Par contre, on n’est pas à l’abri d’un saut technologique entre 2 versions majeures successives.

La disparition de la distribution gratuite RedHat Linux, couramment utilisée sur serveurs en entreprise et dans l’enseignement supérieur/recherche, a fait réagir la communauté, qui a alors créer, en réponse, la distribution CentOS (2002), un clone de RHEL.

En 2018, IBM rachète RedHat pour 34 milliards de dollars (la plus grosse acquisition de son histoire).

CentOS, parasite de RedHat, traverse des moments difficiles. Mais RedHat finit par la soutenir, à condition qu’elle passe du statut de clone de RHEL à celui d’incubateur (comme Fedora, mais avec une durée de vie longue).

C’est pendant les moments d’incertitude quant à la survie de CentOS qu’apparait la distribution Scientific Linux, un clone de CentOS développée par la communauté des laboratoires de recherche en physique des particules (dont le CERN). C’est aussi à cette époque qu’apparait AlmaLinux (2020).

4.3.2. En résumé

En résumé, ces 5 distributions RHEL, Fedora, CentOS, Scientific Linux et AlmaLinux sont très proches les unes des autres. Elles ne se distinguent, hormis l’aspect libre/commercial, que par le rythme des versions et leur durée de vie.

D’autres distributions utilisent le packaging RPM, comme par exemple Rocky Linux, Oracle Linux, SUSE Linux Enterprise Server et openSUSE, Mageia et Mandriva.

Proposer une bonne application pour chaque besoin pourrait être la devise du packaging RPM. Autrement dit, il ne s’agit pas de tout packager : il existe des applications opensource qui ne sont pas packagées RPM.

RedHat a été la première entreprise à commercialiser une distribution Linux. En proposant un support commercial, elle a rendu le système plus accessible aux entreprises et a contribué à le légitimer dans le monde professionnel. RedHat investit fortement dans la communauté Linux en contribuant à de nombreux projets open source, en organisant des conférences et en soutenant les développeurs.

debian

4.4. Packaging DEB

C’est l’autre système de packaging incontournable, à la base de la distribution Debian.

La distribution Debian est créée en 1994 par le Debian Project, une organisation communautaire. Celle-ci élabore une constitution qui définit le fonctionnement interne de l’organisation, les méthodes de prise de décisions et les rôles des différents acteurs. La plupart des décisions sont prises par résolution générale ou par vote.

Debian se distingue par son caractère résolument non commercial et par son mode de gouvernance démocratique. Sa communauté est active.

La distribution se présente sous 3 déclinaisons :

  • stable : version par défaut et la seule réellement stable,

  • testing : version en amont de la stable, offrant des paquets récents,

  • unstable : version en amont de la testing, en constante évolution, version expérimentale exposée à des bugs de sévérité grave.

Le cycle de développement est de 2 ans, avec une nouvelle version stable en début d’année paire.

La réputation de Debian repose sur sa grande stabilité, et le vaste catalogue d’applications qu’elle propose (mais les applications au catalogue ne sont pas forcément dans leur dernière version).

Les distributions Ubuntu, Linux Mint, KDE Neon, elementary OS, Zorin OS, Kali Linux utilisent les dépots Debian.

Ubuntu est une distribution qui s’appuie sur Debian, en misant sur la convivialité. Elle est populaire en France, appréciée pour sa facilité d’utilisation et sa large communauté francophone. Sa documentation en français est abondante. Elle est sponsorisée par la société Canonical qui finance les développeurs, organise les événements et fournit un support commercial. Canonical assure la stabilité financière au projet, ce qui garantit sa pérennité. La versions LTS (Long Term Support) d’Ubuntu, publiée tous les deux ans, offre un support à long terme (5 ans) pour les mises à jour de sécurité.

5. Environnements de bureau

Unix n’a pas d’environnement de bureau (desktop) par défaut. Il fonctionne très bien sans desktop, ce qui est souvent le cas pour des serveurs.

serveur
console typique d’un serveur

Le desktop est une couche logicielle qu’on installe (ou pas). C’est comme Windows 2 qu’on lançait depuis MS/DOS.

Conséquence : Unix n’a pas un look qui lui est propre. Il existe des dizaines de desktops : GNOME, KDE Plasma, Cinnamon, MATE, XFCE, LXQt, etc.

Les deux environnements de bureau GNOME et KDE Plasma sont les plus élaborés. GNOME offre peu de réglage, il convient très bien aux utilisateurs qui veulent un environnement qui marche, sans se poser plus de questions. KDE Plasma, au contraire, est très personnalisable.

L’histoire de GNOME

Le passage de GNOME version 2 à GNOME version 3 en 2011 a chamboulé les utilisateurs. GNOME 3 a complétement revu son look pour proposer une apparence unifiée sur ordinateur et sur smartphone (!). Un traumatisme pour les utilisateurs de GNOME 2 qui n’aiment pas le changement (GNOME 2 a un look familier, proche de celui de Windows). Le look de GNOME 3 n’a rien à voir. Son utilisation est également différente. C’est pourquoi un certain nombre d’utilisateurs déconcertés n’ont pas sauté le pas, et sont restés en version 2.

C’est ainsi qu’est apparu MATE, un fork de GNOME 2. MATE vise à préserver l’apparence et le fonctionnement de l’environnement GNOME 2, donc idéal pour ceux qui préfèrent une interface à l’ancienne.

C’est ainsi qu’est également apparu Cinnamon, un fork de GNOME 3, mais doté d’un look plus classique (mais plus moderne que MATE). Cinnamon est apprécié pour son utilisation sans surprise et sa personnalisation facile.

GNOME et KDE Plasma sont des environnements relativement gourmands en ressources. Pour les utilisateurs de machines peu puissantes, un environnement léger comme XFCE est préférable, de même que LXQt, encore plus léger.

On peut installer autant d’environnements de bureau que l’on souhaite sur un même poste de travail Linux. L’utilisateur sélectionne alors le desktop de son choix à chaque fois qu’il ouvre sa session.