Paiement par virement bancaire · Marocتعلَّم · مارِس · أتقِن

Guide gratuit

D'UNIX à Linux : l'histoire qui explique tout

L’histoire qui explique pourquoi Linux fonctionne ainsi, en 7 chapitres. À lire en ligne ou à conserver en PDF.

Suivre le cours

Chapitre 1

De Multics à UNIX (1964-1973)

Objectif

Comprendre comment est né UNIX, l'ancêtre de Linux, et pourquoi les idées de ses créateurs, vieilles de plus de cinquante ans, expliquent encore la façon dont vous travaillerez sur un serveur Linux aujourd'hui.

L'essentiel

  • Multics (lancé en 1964) était un projet de système très ambitieux ; les Bell Labs d'AT&T s'en retirent en 1969.
  • La même année, Ken Thompson écrit un petit système sur un ordinateur PDP-7 : c'est le début d'UNIX.
  • Dennis Ritchie crée le langage C ; en 1973, le cœur d'UNIX est réécrit en C, ce qui le rend portable d'une machine à l'autre.
  • Les tubes (|) arrivent en 1973 : on assemble de petits programmes pour faire de grandes choses.
  • La philosophie UNIX — « un programme fait une chose et la fait bien », « tout est fichier », « le texte comme langage commun » — est toujours au cœur de Linux.

1. Le contexte : des ordinateurs grands comme une pièce

Au début des années 1960, un ordinateur occupe une salle entière, coûte des millions et ne sert qu'à une seule personne à la fois. On prépare son programme sur des cartes perforées, on les dépose au guichet, et on revient chercher le résultat… le lendemain. Une virgule oubliée, et la journée est perdue.

L'idée qui passionne alors les chercheurs s'appelle le temps partagé (time-sharing) : l'ordinateur passe très vite d'un utilisateur à l'autre, si vite que chacun a l'impression d'avoir la machine pour lui seul, devant son propre terminal.

C'est exactement ce que fait encore un serveur Linux : des dizaines de personnes et des centaines de programmes l'utilisent « en même temps ». Quand vous taperez who ou ps dans ce cours, vous verrez l'héritage direct de cette idée.

2. Multics : le grand projet qui déçoit (1964-1969)

En 1964, trois partenaires lancent Multics (Multiplexed Information and Computing Service) :

Partenaire Rôle
MIT (projet MAC) La recherche universitaire
General Electric Le matériel (l'ordinateur GE-645)
Bell Labs Le laboratoire de recherche d'AT&T, l'opérateur téléphonique américain

Multics veut tout faire : servir des centaines d'utilisateurs, protéger chaque fichier, fonctionner sans jamais s'arrêter, comme le réseau électrique. Plusieurs de ses idées sont excellentes : une arborescence de dossiers, des droits d'accès sur les fichiers, un interpréteur de commandes qui est un programme comme les autres.

Mais le projet prend du retard, devient lourd et coûteux. En 1969, les Bell Labs décident de s'en retirer. Multics continuera ailleurs (le dernier système Multics en service a été arrêté en 2000), mais les chercheurs des Bell Labs se retrouvent sans projet… et avec de bonnes idées plein la tête.

3. 1969 : Ken Thompson et le PDP-7

Ken Thompson veut continuer à travailler sur un système à lui. Il récupère un PDP-7 de la société DEC, un mini-ordinateur déjà démodé à l'époque, qui traînait dans un coin du laboratoire.

On raconte souvent que Thompson voulait aussi y faire tourner un jeu qu'il avait écrit, Space Travel, une simulation du système solaire. Pour cela, il lui fallait un système de fichiers, de quoi lancer des programmes, un éditeur, un interpréteur de commandes. À l'été 1969, il écrit tout cela en quelques semaines, en langage assembleur.

Il est rapidement rejoint par Dennis Ritchie, puis par d'autres collègues : Doug McIlroy, Joe Ossanna, Brian Kernighan…

D'où vient le nom ? Un collègue (on l'attribue généralement à Brian Kernighan) propose « Unics », un clin d'œil à Multics : là où Multics voulait tout faire en « multi », ce petit système fait les choses simplement. L'orthographe devient UNIX.

Un détail qui vous servira : les systèmes UNIX et Linux comptent le temps en secondes depuis le 1er janvier 1970 à 0 h (UTC), une date choisie à cette époque. On l'appelle l'« époque UNIX ». Essayez date +%s : le grand nombre affiché, c'est le nombre de secondes écoulées depuis ce jour-là.

4. Du PDP-7 au PDP-11 : UNIX trouve sa place (1970-1972)

Pour obtenir un ordinateur plus puissant, l'équipe fait une promesse à la direction : écrire un système de traitement de texte pour le service des brevets d'AT&T. En 1970-1971, UNIX passe sur un PDP-11, un ordinateur bien plus courant. Le service des brevets devient le premier « client » d'UNIX.

En novembre 1971 paraît le premier manuel d'UNIX (la First Edition). Les éditions suivantes se succèdent au rythme de quelques mois. Le format de ce manuel — une page par commande, avec NOM, SYNOPSIS, DESCRIPTION — est celui des pages man que vous lirez sur Linux.

5. Le langage C : la décision qui change tout (1972-1973)

À l'époque, un système d'exploitation s'écrit en assembleur, le langage propre à chaque modèle de processeur. Conséquence : un système écrit pour le PDP-7 ne marche que sur le PDP-7. Changer d'ordinateur, c'est tout réécrire.

La filiation du langage C ressemble à un arbre généalogique :

BCPL (Martin Richards, Cambridge, 1966-1967)
  └── B (Ken Thompson, 1969-1970) — version simplifiée de BCPL
        └── C (Dennis Ritchie, 1971-1973) — B enrichi de types de données

Ritchie crée le C au début des années 1970. Il est assez proche de la machine pour écrire un système, mais assez général pour être compilé sur d'autres processeurs.

En 1973, l'équipe réécrit le noyau d'UNIX en C (la Fourth Edition, novembre 1973). C'est une première à cette échelle : seul un petit morceau reste en assembleur. Désormais, porter UNIX sur un nouvel ordinateur, c'est surtout écrire un compilateur C pour cette machine.

Cette décision explique pourquoi Linux tourne aujourd'hui aussi bien sur un serveur Intel, un téléphone ARM qu'un supercalculateur : son noyau est, lui aussi, écrit essentiellement en C.

En 1978, Kernighan et Ritchie publient The C Programming Language, le livre de référence que les programmeurs appellent encore « le K&R ».

6. Les tubes : l'idée de Doug McIlroy (1973)

Doug McIlroy, chef de l'équipe, réclamait depuis des années un moyen de brancher les programmes les uns sur les autres, comme des tuyaux d'arrosage. Thompson l'implémente en une nuit, en 1973 (Third Edition) : c'est le tube, noté |.

Exemple : vous voulez savoir combien d'utilisateurs de votre serveur utilisent le shell bash.

# Sans tube, il faudrait un programme spécial pour cette question précise.
# Avec un tube, on assemble trois petits outils :
cat /etc/passwd | grep bash | wc -l
#   cat  : lit le fichier des comptes
#   grep : garde les lignes qui contiennent « bash »
#   wc -l: compte les lignes restantes

Aucun de ces trois programmes n'a été écrit pour répondre à cette question. Ensemble, ils y répondent. C'est toute la force d'UNIX.

7. La philosophie UNIX, en quatre règles

Ces principes ont été résumés plus tard par McIlroy et d'autres ; ils restent la meilleure boussole pour comprendre Linux.

Principe Ce que cela veut dire Exemple sur Linux
Un programme fait une chose, et la fait bien Des outils petits et spécialisés plutôt qu'un logiciel géant ls liste, sort trie, grep cherche
Les programmes travaillent ensemble La sortie de l'un devient l'entrée de l'autre ps aux | grep httpd
Le texte est le langage commun Configuration et échanges en texte lisible /etc/passwd, /etc/hosts, fichiers de logs
Tout est fichier Disques, terminaux, informations du noyau : on les lit et écrit comme des fichiers /dev/sda, /proc/version, /proc/cpuinfo
cat /proc/cpuinfo     # le processeur, présenté comme un simple fichier texte
cat /proc/version     # la version du noyau, idem
ls -l /dev/null       # un « fichier » spécial qui avale tout ce qu'on lui envoie

Pour l'administrateur, la conséquence est très concrète : presque tout se règle en modifiant des fichiers texte, et presque tout se diagnostique en lisant des fichiers texte. Pas besoin d'outils graphiques.

8. 1973-1974 : UNIX sort du laboratoire

En octobre 1973, Ritchie et Thompson présentent UNIX lors d'une conférence universitaire sur les systèmes d'exploitation (SOSP). L'article est publié en juillet 1974 dans la revue Communications of the ACM. Les universités découvrent ce système élégant et demandent à l'essayer.

Or AT&T, à cause d'un accord antitrust signé en 1956 avec le gouvernement américain, n'a pas le droit de faire commerce de l'informatique. Il distribue donc UNIX aux universités pour un prix symbolique, avec le code source. Des milliers d'étudiants vont l'étudier, le modifier, l'améliorer. C'est le point de départ de la leçon suivante : la grande famille UNIX.

En 1983, Thompson et Ritchie reçoivent le prix Turing, l'équivalent du prix Nobel en informatique, pour UNIX. Dennis Ritchie est mort en octobre 2011 ; Ken Thompson a ensuite participé, chez Google, à la création du langage Go.

9. La frise de la leçon

1964  Lancement de Multics (MIT, General Electric, Bell Labs)
1969  Les Bell Labs quittent Multics — Thompson écrit UNIX sur un PDP-7
1970  Passage sur PDP-11 — le nom « UNIX » s'impose
1971  Premier manuel d'UNIX (First Edition, novembre)
1972  Naissance du langage C (Dennis Ritchie)
1973  Les tubes « | » — le noyau réécrit en C (Fourth Edition)
1974  Article dans Communications of the ACM : UNIX se fait connaître
1983  Prix Turing pour Thompson et Ritchie

Idées reçues

  • « UNIX a été conçu par une grande entreprise pour être vendu. » Non : c'est un projet de deux chercheurs, presque clandestin au départ, sur une machine de récupération. AT&T ne pouvait même pas le vendre.
  • « Linux est une version d'UNIX. » Pas exactement. Linux ressemble à UNIX et en respecte les règles, mais il ne contient aucune ligne de code d'UNIX : il a été réécrit à partir de zéro (leçon 0.4).
  • « Tout est fichier » veut dire que tout est stocké sur le disque. Non : /proc/version n'existe pas sur le disque. Le noyau le fabrique à la volée quand vous le lisez. C'est la façon d'y accéder qui est celle d'un fichier.
  • « Le C est un vieux langage abandonné. » Le noyau Linux, la plupart des outils de base, les bases de données comme PostgreSQL sont écrits en C. Il reste l'un des langages les plus utilisés au monde.

Lab

Votre première machine vous attend dans le terminal, sous Rocky Linux 9. Vous allez la faire parler, avec les réflexes hérités d'UNIX :

uname -s                  # le nom du système
cat /proc/version         # « tout est fichier » : le noyau se décrit dans un fichier
cat /etc/os-release       # la fiche d'identité de la distribution
cat /etc/os-release | wc -l   # un tube : lire, puis compter

Réalisez les tâches : enregistrer le nom du système, copier la description du noyau, compter des lignes avec un tube, et retrouver l'année de naissance d'UNIX. Cliquez ensuite sur Vérifier : le site contrôle votre travail automatiquement.


Quiz

  1. Quelles étaient les trois organisations à l'origine de Multics ?
  2. Sur quel ordinateur Ken Thompson a-t-il écrit la première version d'UNIX, et en quelle année ?
  3. Pourquoi la réécriture du noyau d'UNIX en C (1973) a-t-elle été décisive ?
  4. Que fait la commande cat /etc/passwd | grep bash | wc -l, et quel principe UNIX illustre-t-elle ?
  5. Pourquoi AT&T distribuait-il UNIX aux universités au lieu de le vendre ?
Réponses
  1. Le MIT, General Electric et les Bell Labs (AT&T).
  2. Sur un PDP-7 de DEC, en 1969.
  3. Écrit en C, UNIX devient portable : pour le faire tourner sur une autre machine, il suffit pour l'essentiel d'un compilateur C, au lieu de tout réécrire en assembleur.
  4. Elle compte les comptes du système dont la ligne contient « bash ». Elle illustre l'assemblage de petits programmes spécialisés reliés par des tubes.
  5. Un accord antitrust de 1956 interdisait à AT&T de faire commerce de l'informatique ; il le diffusait donc à prix symbolique, avec son code source.

Sources de référence : articles de D. M. Ritchie et K. Thompson cités en en-tête, Debian Reference (licence libre). Texte original MasterLinux.

Chapitre 2

La famille UNIX — BSD, System V et la norme POSIX

Objectif

Comprendre comment UNIX s'est divisé en plusieurs branches rivales, pourquoi une norme commune (POSIX) a été nécessaire, et pourquoi ce que vous apprenez sur Linux marche en grande partie sur macOS ou FreeBSD.

L'essentiel

  • À l'université de Berkeley, UNIX devient BSD : c'est là qu'arrivent le réseau TCP/IP, l'éditeur vi et le shell csh.
  • Après le démantèlement d'AT&T (1984), l'entreprise vend sa version officielle : System V.
  • Chaque constructeur crée son UNIX payant (Solaris, AIX, HP-UX…), incompatible avec les autres : ce sont les « guerres UNIX ».
  • La norme POSIX (1988) fixe ce qu'un système « de type UNIX » doit offrir ; Linux la suit de près.
  • Un procès (1992-1994) bloque BSD au moment même où Linux naît, ce qui pousse beaucoup de développeurs vers Linux.

1. Berkeley reçoit UNIX (1974-1977)

Comme vous l'avez vu dans la leçon 0.1, AT&T distribue UNIX aux universités avec son code source. L'université de Californie à Berkeley l'installe en 1974. Ken Thompson y passe même une année sabbatique (1975-1976) comme professeur invité.

Un étudiant, Bill Joy, se met à améliorer le système. En 1978, il diffuse une première collection de programmes : la Berkeley Software Distribution, ou BSD. Au départ, c'est un simple ajout à l'UNIX d'AT&T ; peu à peu, cela devient un système complet.

Ce que BSD a apporté, et que vous utiliserez sur Linux :

Apport de Berkeley Ce que vous en ferez sur Linux
L'éditeur vi (Bill Joy, 1976) vi et son successeur vim sont présents sur presque tous les serveurs
Le shell csh Moins utilisé aujourd'hui, mais l'historique des commandes et le contrôle des tâches (jobs, fg, bg) viennent de cette époque
La pile réseau TCP/IP et les sockets (4.2BSD, 1983) Tout le réseau moderne : ssh, serveurs web, Internet entier
Le système de fichiers rapide (FFS) L'idée des blocs et inodes reprise par ext2, ext3, ext4

L'arrivée de TCP/IP est un tournant : l'agence militaire américaine DARPA, qui finance le futur Internet, choisit BSD comme système de référence au début des années 1980. UNIX et Internet grandissent ensemble.

2. AT&T entre dans le commerce : System V (1983)

En 1982, un accord avec la justice américaine prévoit le démantèlement d'AT&T, effectif au 1er janvier 1984. En échange, l'entreprise a enfin le droit de vendre de l'informatique.

AT&T commercialise alors sa version officielle d'UNIX : System III (1982), puis System V (1983), avec ses « versions » successives (Release 2, 3, 4). La version SVR4 (System V Release 4, fin des années 1980), développée avec Sun, réunit une grande partie des idées de BSD et de System V.

Plusieurs habitudes de Linux viennent de System V :

ls /etc/init.d/       # les scripts de démarrage « à la System V » (RHEL 6, vieux Debian)
ps -ef                # la syntaxe System V de ps (avec un tiret)
ps aux                # la syntaxe BSD de ps (sans tiret) — Linux accepte les deux !

Le fait que ps accepte deux styles d'options est un souvenir vivant de cette double origine.

3. Les UNIX commerciaux (années 1980-1990)

Chaque grand constructeur prend une licence UNIX et crée sa propre version, adaptée à ses machines (et vendue avec elles) :

Système Éditeur Base Encore utilisé ?
SunOS puis Solaris Sun Microsystems (racheté par Oracle en 2010) BSD, puis System V R4 (Solaris, 1992) Dans quelques grandes entreprises
AIX IBM (à partir de 1986) System V Oui, sur les serveurs IBM Power (banques, assurances)
HP-UX Hewlett-Packard System V En fin de vie
IRIX Silicon Graphics System V Abandonné (années 2000)
Xenix Microsoft, puis SCO System V Abandonné
Ultrix, Tru64 DEC BSD, puis OSF/1 Abandonnés

Le cas de Sun est intéressant : l'entreprise est cofondée en 1982 par… Bill Joy, l'auteur de BSD. Les stations Sun étaient les machines de référence des universités et d'Internet dans les années 1980-1990.

4. Les « guerres UNIX » (1988-1993)

Chacun de ces UNIX ajoute ses propres commandes, options et outils. Un programme écrit pour AIX doit être modifié pour tourner sur HP-UX. Un administrateur formé sur Solaris est perdu sur IRIX.

À la fin des années 1980, deux camps s'affrontent :

          AT&T + Sun                       IBM, DEC, HP et d'autres
   (System V Release 4, 1988-1989)       (Open Software Foundation, 1988)
       « UNIX International »                     « OSF/1 »
                   \                               /
                    \___ incompatibilités, procès,  ___/
                          clients perdus

Pendant que les constructeurs se disputent, un concurrent avance tranquillement sur les PC : Microsoft Windows NT (1993). Et, sans que personne ne s'en doute encore, un étudiant finlandais commence en 1991 à écrire un noyau sur son PC…

5. POSIX : la règle commune (1988)

Pour sortir du chaos, l'organisme de normalisation IEEE publie en 1988 la norme POSIX (IEEE 1003.1). Le nom, suggéré par Richard Stallman (que vous retrouverez à la leçon 0.3), signifie à peu près Portable Operating System Interface, avec un « X » pour UNIX.

POSIX décrit ce que doit offrir un système de type UNIX, sans dire comment le programmer :

POSIX définit… Exemples
Les appels système que les programmes peuvent utiliser ouvrir un fichier, créer un processus
Le langage du shell if, for, case, les redirections > et `
Les commandes de base et leurs options ls, cp, grep, sed, awk, find
Les droits et les signaux chmod 755, kill -9

Plus tard, l'organisme The Open Group (propriétaire de la marque « UNIX » depuis les années 1990) publie la Single UNIX Specification. Seuls les systèmes certifiés et payant la licence ont le droit de s'appeler officiellement « UNIX ». C'est le cas de macOS (certifié depuis la version 10.5, en 2007), d'AIX ou de Solaris.

Linux n'est pas certifié UNIX (la certification coûte cher et n'apporte rien à un projet libre), mais il suit POSIX de très près. C'est pourquoi on dit que Linux est un système « de type UNIX » (Unix-like).

getconf _POSIX_VERSION    # quelle version de POSIX ? ex. 200809 = édition de 2008

Conseil pratique pour toute votre carrière : quand vous écrivez un script qui doit tourner partout, écrivez-le en sh POSIX plutôt qu'avec des astuces propres à bash. Sur Debian et Ubuntu, /bin/sh est d'ailleurs dash, un shell POSIX minimal : un script « bash » lancé avec sh peut y échouer.

6. Le procès qui a freiné BSD (1992-1994)

À la fin des années 1980, les développeurs de Berkeley entreprennent de remplacer tout le code d'origine AT&T dans BSD, pour pouvoir le diffuser librement. En 1991 sort Net/2, presque entièrement libre. Des projets en dérivent : 386BSD (1992), pour les PC, et la société BSDi, qui vend une version commerciale.

En 1992, USL (Unix System Laboratories, la filiale UNIX d'AT&T) attaque BSDi, puis l'université de Californie, en justice : BSD contiendrait encore du code et des secrets d'AT&T. Pendant deux ans, personne ne sait si BSD pourra continuer à être distribué. Les entreprises hésitent à l'utiliser.

En 1993, Novell rachète USL. Le procès se termine par un accord début 1994 : quelques fichiers sont retirés ou modifiés, et Berkeley publie 4.4BSD-Lite (1994), libre de tout code AT&T.

Mais pendant ces deux années d'incertitude, un autre système, libre et sans aucun risque juridique, a avancé très vite : Linux. Linus Torvalds l'a dit lui-même : si un BSD libre pour PC avait été disponible à ce moment-là, il n'aurait peut-être jamais écrit son noyau.

7. Les descendants de BSD aujourd'hui

Net/2 (1991) et 386BSD (1992), puis 4.4BSD-Lite (1994)
 ├── FreeBSD (1993) ── serveurs, Netflix (diffusion vidéo), base du système des PlayStation récentes
 ├── NetBSD  (1993) ── « tourne sur tout », très portable
 │     └── OpenBSD (1995) ── sécurité avant tout ; a créé OpenSSH (1999)
 └── NeXTSTEP / Darwin ── base de macOS et iOS (avec le micro-noyau Mach)

FreeBSD et NetBSD sont nés en 1993 de 386BSD ; après l'accord de 1994, ils ont été reconstruits sur 4.4BSD-Lite.

Vous utilisez donc peut-être déjà BSD sans le savoir : macOS et iOS en descendent, et OpenSSH, que vous emploierez sur chaque serveur Linux, est développé par l'équipe d'OpenBSD.

8. La frise de la leçon

1974  Berkeley reçoit UNIX
1978  Première distribution BSD (Bill Joy)
1982  Fondation de Sun ; accord de démantèlement d'AT&T ; System III
1983  System V (AT&T) ; 4.2BSD apporte TCP/IP
1984  AT&T démantelé : UNIX devient un produit commercial
1986  AIX (IBM)
1988  POSIX (IEEE 1003.1) ; création de l'OSF ; début des « guerres UNIX »
1991  Net/2 ; Linus Torvalds commence Linux
1992  Procès USL contre BSDi ; Solaris 2 (base System V R4)
1993  FreeBSD, NetBSD ; Novell rachète USL
1994  Accord : 4.4BSD-Lite, libre de code AT&T

Pièges fréquents

  • Croire qu'une commande vue sur macOS marchera pareil sur Linux. Les deux suivent POSIX, mais les options diffèrent souvent : sed -i s'écrit sed -i '' sur macOS (outils BSD), sed -i sur Linux (outils GNU).
  • Confondre « UNIX » et « de type UNIX ». « UNIX » est une marque réservée aux systèmes certifiés. Linux et FreeBSD sont « de type UNIX ».
  • Écrire #!/bin/sh en tête d'un script plein de syntaxe bash. Sur Debian et Ubuntu, sh est dash : les tableaux ou [[ … ]] y échouent. Écrivez #!/bin/bash si vous utilisez bash.
  • Penser que les scripts /etc/init.d/ sont toujours utilisés. Ils viennent de System V ; depuis RHEL 7 et Debian 8, c'est systemd qui démarre les services.

Lab

Cette fois, vous êtes sur Debian 12. Vous allez vérifier par vous-même l'héritage POSIX du système :

getconf _POSIX_VERSION    # la version de POSIX suivie
ls -l /bin/sh             # vers quel shell pointe /bin/sh ?
ps -ef | head -n 3        # syntaxe System V
ps aux | head -n 3        # syntaxe BSD : même résultat ou presque

Les tâches : enregistrer la version POSIX, découvrir quel shell se cache derrière /bin/sh, et noter les deux grandes branches d'UNIX. Puis cliquez sur Vérifier.


Quiz

  1. Quelles sont les deux grandes branches d'UNIX, et qui a créé chacune d'elles ?
  2. Citez deux apports majeurs de BSD que vous utiliserez sur Linux.
  3. Qu'est-ce que POSIX, et pourquoi est-ce utile à un administrateur ?
  4. Linux a-t-il le droit de s'appeler officiellement « UNIX » ? Pourquoi ?
  5. Pourquoi le procès USL contre BSDi (1992-1994) a-t-il profité à Linux ?
Réponses
  1. BSD, créée à l'université de Berkeley (Bill Joy et ses collègues), et System V, la version commerciale d'AT&T.
  2. Au choix : la pile réseau TCP/IP et les sockets, l'éditeur vi, le shell csh (historique, contrôle des tâches), le système de fichiers rapide, et plus récemment OpenSSH (OpenBSD).
  3. Une norme (IEEE, 1988) qui définit les commandes, le shell et les appels système d'un système de type UNIX. Un script ou un savoir-faire conforme à POSIX fonctionne sur Linux, BSD, macOS…
  4. Non : « UNIX » est une marque réservée aux systèmes certifiés par The Open Group. Linux suit POSIX mais n'est pas certifié : c'est un système « de type UNIX ».
  5. Pendant deux ans, l'avenir juridique de BSD était incertain ; développeurs et entreprises se sont tournés vers Linux, libre et sans risque juridique.

Sources de référence : M. K. McKusick (Open Sources, 1999), documents de normalisation POSIX et The Open Group, Debian Reference (licence libre). Texte original MasterLinux.

Chapitre 3

GNU et le logiciel libre

Objectif

Comprendre d'où viennent la plupart des outils que vous utiliserez sur Linux, ce que signifie « logiciel libre », et savoir lire les grandes licences (GPL, BSD, MIT) que vous rencontrerez dans votre métier.

L'essentiel

  • En 1983, Richard Stallman annonce le projet GNU : un système complet de type UNIX, entièrement libre.
  • En 1985, il crée la Free Software Foundation (FSF). La licence GPL suit en 1989.
  • Un logiciel libre garantit quatre libertés : utiliser, étudier, redistribuer, modifier et partager ses modifications.
  • La GPL est copyleft : qui redistribue un logiciel GPL modifié doit le redistribuer sous GPL. Les licences BSD et MIT sont permissives : on peut en faire presque ce que l'on veut.
  • En 1998, le terme open source apparaît : même réalité technique, discours plus tourné vers les entreprises.

1. Le problème : le code se ferme (fin des années 1970)

Dans les premières années de l'informatique, les programmeurs échangent leur code naturellement, comme des chercheurs échangent leurs résultats. UNIX lui-même circulait avec son code source dans les universités (leçon 0.1).

Au tournant des années 1980, tout change : les éditeurs comprennent que le logiciel peut se vendre séparément de la machine. Le code source devient un secret commercial. Les utilisateurs reçoivent des programmes déjà compilés, qu'ils n'ont ni le droit d'étudier, ni le droit de corriger, ni le droit de partager.

Richard Stallman, programmeur au laboratoire d'intelligence artificielle du MIT, vit ce changement comme une injustice. Une anecdote célèbre l'illustre : l'imprimante de son laboratoire se bloquait souvent. Sur l'ancienne imprimante, il avait modifié le programme pour prévenir les utilisateurs d'un bourrage. Pour la nouvelle, le fabricant refusait de donner le code source. Impossible de corriger un problème pourtant simple.

2. 1983 : l'annonce du projet GNU

Le 27 septembre 1983, Stallman annonce sur Usenet (l'ancêtre des forums) un projet fou : écrire un système d'exploitation complet, compatible avec UNIX, et entièrement libre. Il l'appelle GNU, un acronyme récursif qui signifie « GNU's Not Unix » (« GNU n'est pas UNIX »).

Pourquoi compatible UNIX ? Parce que UNIX est bien conçu (leçon 0.1), qu'il est découpé en petits programmes que l'on peut réécrire un par un, et que les utilisateurs pourront passer de l'un à l'autre sans tout réapprendre.

Le travail commence en janvier 1984, quand Stallman quitte son poste au MIT pour que l'université ne puisse pas revendiquer son code. En 1985, il publie le Manifeste GNU, qui explique sa démarche, et fonde la Free Software Foundation (FSF) pour financer le projet.

3. Les briques GNU que vous utiliserez tous les jours

Pièce par pièce, le projet GNU réécrit les outils d'UNIX. À la fin des années 1980, il ne manque presque rien :

Outil GNU Date Rôle Commande
GNU Emacs 1984-1985 Éditeur de texte emacs
GCC (GNU C Compiler, aujourd'hui GNU Compiler Collection) 1987 Compilateur : il a servi à compiler Linux gcc
Bash (Bourne Again Shell, Brian Fox) 1989 Le shell, compatible avec le shell sh de Bourne bash
coreutils (fusion de fileutils, textutils, shellutils) années 1990-2000 Les commandes de base ls, cp, mv, cat, chmod
grep, sed, gawk, tar, gzip, find années 1980-1990 Chercher, transformer, archiver grep, sed, awk, tar
glibc à partir de 1987 La bibliothèque C, utilisée par presque tous les programmes (invisible, mais partout)

Vérifiez vous-même :

ls --version | head -n 1      # ls (GNU coreutils) …
bash --version | head -n 1    # GNU bash, version …
grep --version | head -n 1    # grep (GNU grep) …

Il manque pourtant une pièce essentielle : le noyau, le programme qui parle directement au matériel. Le noyau prévu par GNU, le Hurd (commencé en 1990), est très ambitieux et avance lentement. Il n'est toujours pas utilisé en production aujourd'hui. Cette pièce manquante, c'est Linux qui va la fournir en 1991 (leçon 0.4).

4. Les quatre libertés

Pour Stallman, « libre » (free) parle de liberté, pas de prix. Sa formule : free comme dans « liberté d'expression », pas comme dans « bière gratuite ». En français, nous avons la chance d'avoir deux mots : libre et gratuit.

Un logiciel est libre si son utilisateur dispose des quatre libertés (numérotées à partir de zéro, en bon informaticien) :

Liberté Ce que vous pouvez faire Exemple concret
0 Utiliser le programme, pour n'importe quel usage Installer Linux sur les 200 caisses d'une chaîne de magasins, sans compter les licences
1 Étudier son fonctionnement et l'adapter (il faut donc le code source) Lire le code d'un serveur web pour comprendre une erreur
2 Redistribuer des copies Donner une clé USB d'installation à un collègue
3 Améliorer le programme et partager vos améliorations Corriger un bug et envoyer le correctif au projet

Un logiciel libre peut être vendu : Red Hat vend des abonnements à RHEL, qui est composé de logiciels libres. Et un logiciel gratuit n'est pas forcément libre : beaucoup d'applications gratuites cachent leur code.

5. La GPL et le copyleft (1989)

Pour garantir ces libertés, Stallman utilise… le droit d'auteur lui-même. La GNU General Public License (GPL) dit en substance :

Vous pouvez utiliser, étudier, modifier et redistribuer ce programme. Mais si vous redistribuez une version modifiée, vous devez la diffuser sous la même licence, avec son code source.

C'est le principe du copyleft (jeu de mots sur copyright) : la liberté se transmet, personne ne peut la confisquer en route.

Version Année À retenir
GPL v1 1989 Première version
GPL v2 1991 La licence du noyau Linux (en « version 2 seulement »)
GPL v3 2007 Protège contre les brevets et contre les appareils qui empêchent d'installer une version modifiée
LGPL 1991 Version « allégée » pour les bibliothèques : un programme non libre peut les utiliser
AGPL 2007 (v3) Étend l'obligation aux logiciels utilisés à distance, par le réseau (applications web)

Point important pour un administrateur : la GPL ne vous impose rien tant que vous ne redistribuez pas. Vous pouvez modifier un logiciel GPL pour les serveurs de votre entreprise sans rien publier. (L'AGPL est l'exception : si vous offrez le service au public par le réseau, vous devez donner le code à ses utilisateurs.)

6. 1998 : le mouvement « open source »

En janvier 1998, l'éditeur du navigateur Netscape annonce qu'il va publier son code source (qui deviendra Mozilla, puis Firefox). C'est un choc : une grande entreprise ouvre son produit phare.

Quelques semaines plus tard, en février 1998, un groupe de développeurs, dont Eric S. Raymond et Bruce Perens, propose un nouveau terme : open source (« code source ouvert »), forgé par Christine Peterson. Ils fondent l'Open Source Initiative (OSI). Leur idée : parler aux entreprises de qualité, de fiabilité et de coûts, plutôt que de morale et de liberté.

Logiciel libre (FSF) Open source (OSI)
Argument principal Une question d'éthique : l'utilisateur doit être libre Une question d'efficacité : le développement ouvert produit de meilleurs logiciels
Figure emblématique Richard Stallman Eric S. Raymond, Bruce Perens
Texte de référence Les quatre libertés L'Open Source Definition, dérivée des principes de Debian (DFSG)
En pratique Les licences reconnues sont presque les mêmes

Le texte de Raymond, La Cathédrale et le Bazar (1997), compare deux façons de développer : en petit groupe fermé (la cathédrale) ou au grand jour, avec des milliers de contributeurs (le bazar, le modèle de Linux). On lui doit une formule souvent citée : avec assez d'yeux, tous les bugs sont faciles à trouver.

On rencontre souvent le sigle FLOSS ou FOSS (Free/Libre and Open Source Software), qui réunit les deux camps.

7. Les licences que vous rencontrerez

Sur un serveur, chaque logiciel a sa licence. Voici les familles principales :

Licence Type Ce qu'elle exige Exemples
GPL (v2, v3) Copyleft fort Redistribuer les modifications sous GPL, avec le code source Noyau Linux (v2), bash, GCC, coreutils
LGPL Copyleft faible Copyleft sur la bibliothèque, pas sur le programme qui l'utilise glibc
AGPL Copyleft réseau Fournir le code aussi aux utilisateurs du service en ligne Certains logiciels web (Nextcloud, par exemple)
BSD (2 ou 3 clauses) Permissive Garder la mention du copyright FreeBSD, OpenSSH (pour l'essentiel)
MIT Permissive Garder la mention du copyright, rien d'autre X Window (X11), Node.js, jQuery
Apache 2.0 Permissive Mention du copyright + clause sur les brevets Serveur Apache httpd, Kubernetes, Android (en grande partie)

L'exemple qui fait comprendre la différence : Apple a pu reprendre du code BSD dans macOS sans publier ses modifications, car la licence BSD le permet. Un fabricant de box Internet qui modifie le noyau Linux, lui, doit fournir le code source de ses modifications à ses clients, car le noyau est en GPL.

Sur Debian, les textes des licences courantes sont rangés dans un seul dossier, et chaque paquet décrit sa licence :

ls /usr/share/common-licenses/          # GPL-2, GPL-3, LGPL, BSD, Apache-2.0…
head -n 3 /usr/share/common-licenses/GPL-3
# Sur un Debian complet, chaque paquet a sa fiche de licence :
# /usr/share/doc/<paquet>/copyright

8. GNU/Linux ou Linux ?

Stallman demande que l'on dise GNU/Linux, car le système complet doit beaucoup aux outils GNU, et pas seulement au noyau. Debian suit cet usage (« Debian GNU/Linux »). La plupart des gens, et la plupart des entreprises, disent simplement Linux.

Dans ce cours, nous disons « Linux » par commodité, mais retenez la vérité technique : Linux est le noyau ; une grande partie des outils autour vient de GNU. Et certains systèmes « Linux » n'utilisent presque pas GNU : Android, par exemple, ou la distribution Alpine (avec BusyBox et la bibliothèque musl).

9. La frise de la leçon

1983  27 septembre : Stallman annonce le projet GNU
1984  Début du travail ; Stallman quitte le MIT
1985  Manifeste GNU ; création de la Free Software Foundation
1987  GCC
1989  GPL v1 ; Bash
1990  Début du Hurd, le noyau prévu par GNU
1991  GPL v2 ; LGPL
1992  Le noyau Linux passe sous GPL : le système libre est complet
1997  « La Cathédrale et le Bazar » (Eric S. Raymond)
1998  Netscape ouvre son code ; naissance du terme « open source » et de l'OSI
2007  GPL v3 et AGPL v3

Idées reçues

  • « Libre veut dire gratuit. » Non. Libre parle de droits ; un logiciel libre peut être vendu (abonnements RHEL, support SUSE…).
  • « Open source veut dire que n'importe qui peut modifier le logiciel officiel. » Non. Vous pouvez modifier votre copie. Pour que votre correctif entre dans le projet officiel, il doit être accepté par ses mainteneurs.
  • « La GPL oblige à publier le code de tout ce qu'on développe sur Linux. » Non. Un programme qui tourne sur Linux n'est pas concerné. Seules les modifications redistribuées d'un logiciel GPL le sont.
  • « Le logiciel libre, c'est pour les amateurs. » Les plus grands sites du monde, les banques et les opérateurs télécoms tournent sur des logiciels libres.

Lab

Sur votre machine Debian 12, vous allez retrouver la signature de GNU et les licences installées :

ls --version | head -n 1
bash --version | head -n 1
ls /usr/share/common-licenses/
grep -m1 Version /usr/share/common-licenses/GPL-3

Les tâches : relever la mention GNU de ls et de bash, lister les licences fournies par Debian, et retrouver la date de la GPL 3. Puis cliquez sur Vérifier.


Quiz

  1. Que signifie le nom « GNU », et en quelle année le projet a-t-il été annoncé ?
  2. Citez les quatre libertés du logiciel libre.
  3. Qu'est-ce que le copyleft ? Quelle licence en est l'exemple le plus connu ?
  4. Une entreprise modifie le code d'un logiciel sous licence MIT et le vend sans publier ses modifications. A-t-elle le droit ? Et si le logiciel était sous GPL ?
  5. Quelle pièce manquait au projet GNU au début des années 1990 ?
Réponses
  1. GNU's Not Unix (« GNU n'est pas UNIX »), un acronyme récursif ; annoncé le 27 septembre 1983 par Richard Stallman.
  2. 0 utiliser pour tout usage ; 1 étudier et adapter (accès au code source) ; 2 redistribuer des copies ; 3 améliorer et partager les améliorations.
  3. Le principe selon lequel les versions modifiées et redistribuées doivent rester sous la même licence libre. L'exemple type est la GPL.
  4. Avec MIT : oui, il suffit de conserver la mention du copyright. Avec la GPL : non, si elle redistribue une version modifiée, elle doit fournir le code source sous GPL.
  5. Le noyau (le Hurd n'était pas prêt) : c'est Linux qui l'a fourni.

Sources de référence : textes du projet GNU (gnu.org), Open Source Definition (opensource.org), Debian Policy. Texte original MasterLinux.

Chapitre 4

1991 — Linus Torvalds et le noyau Linux

Objectif

Savoir comment un étudiant a écrit, presque par jeu, le noyau qui fait tourner aujourd'hui la majorité des serveurs du monde, et comprendre comment ce noyau est développé et numéroté. Vous saurez lire une version comme 5.14.0-427.el9.x86_64.

L'essentiel

  • En 1991, Linus Torvalds, étudiant à l'université d'Helsinki, écrit un noyau pour son PC, en s'inspirant de Minix.
  • Il l'annonce le 25 août 1991 ; la version 0.01 sort en septembre 1991.
  • En 1992, Linux passe sous licence GPL : avec les outils GNU, un système entièrement libre existe enfin.
  • Linux 1.0 sort en mars 1994. Aujourd'hui, des milliers de développeurs, salariés de centaines d'entreprises, y contribuent.
  • Une nouvelle version sort environ toutes les 9 à 10 semaines ; certaines sont maintenues longtemps : ce sont les versions LTS.

1. Le noyau, c'est quoi ?

Le noyau (kernel) est le programme central du système. Il démarre en premier et ne s'arrête qu'à l'extinction. Il fait le lien entre les programmes et le matériel :

   Vous ──► bash, ls, nginx, mysql…        (les programmes)
                   │  « appels système » : lire, écrire, ouvrir, créer un processus
                   ▼
            ┌──────────────┐
            │ NOYAU LINUX  │  mémoire, processus, disques, réseau, pilotes
            └──────────────┘
                   │
                   ▼
        processeur, mémoire, disques, carte réseau      (le matériel)

Quand ls veut lire un dossier, il ne parle pas au disque : il demande au noyau. C'est ce qui permet à mille programmes de partager la même machine sans se marcher dessus.

2. Minix, l'UNIX des étudiants (1987)

À la fin des années 1980, UNIX est cher et son code n'est plus diffusé librement. Le professeur Andrew Tanenbaum, à l'université libre d'Amsterdam, écrit pour ses étudiants un petit UNIX éducatif : Minix (1987). Il est livré avec son livre de cours sur les systèmes d'exploitation, code source compris.

Minix a deux limites : sa licence ne permet pas de le modifier et de le redistribuer librement, et Tanenbaum veut le garder simple, pour l'enseignement. Il refuse beaucoup d'améliorations proposées par ses utilisateurs.

3. 1991 : un étudiant d'Helsinki

Linus Torvalds est né en 1969 à Helsinki. En janvier 1991, il achète un PC équipé d'un processeur Intel 386. Il y installe Minix et veut comprendre comment fonctionne ce nouveau processeur. Il commence par un petit programme qui affiche des « A » et des « B » en alternance, pour tester le passage d'une tâche à l'autre. Puis un émulateur de terminal pour se connecter à l'université. Puis un pilote de disque… et il se rend compte qu'il est en train d'écrire un noyau.

Le 25 août 1991, il publie un message sur le forum Usenet comp.os.minix. Il y annonce un système d'exploitation libre pour PC 386, en précisant que ce n'est « just a hobby, won't be big and professional like gnu » (« juste un hobby, rien d'aussi gros et professionnel que GNU »). Il demande aux lecteurs ce qu'ils aimeraient y trouver.

La version 0.01 est déposée sur un serveur de l'université d'Helsinki (ftp.funet.fi) en septembre 1991. Linus voulait l'appeler Freax (free + freak + x) ; l'administrateur du serveur, Ari Lemmke, range les fichiers dans un dossier nommé linux. Le nom reste.

Dès cette première version, Linux fait tourner bash et gcc, deux outils GNU (leçon 0.3).

4. 1992 : la GPL et la querelle avec Tanenbaum

La première licence de Linus interdisait toute utilisation commerciale. Début 1992, avec la version 0.12, il annonce le passage à la GPL (version 2). Désormais, n'importe qui peut utiliser, modifier et redistribuer Linux, à condition de partager ses modifications. Avec le noyau Linux et les outils GNU, un système libre complet existe enfin. Linus dira plus tard que ce choix de la GPL est l'une des meilleures décisions qu'il ait prises.

En janvier 1992, Tanenbaum publie sur le même forum un message intitulé « LINUX is obsolete ». Ses deux reproches :

Critique de Tanenbaum Réponse de l'histoire
Linux est un noyau monolithique (tout le noyau dans un seul bloc), une conception dépassée selon lui ; l'avenir serait aux micro-noyaux Linux est resté monolithique, mais modulaire : les pilotes se chargent à la demande (lsmod, modprobe)
Linux est trop lié au processeur 386 et ne sera pas portable Linux tourne aujourd'hui sur x86, ARM, POWER, IBM Z, RISC-V… plus de plateformes qu'aucun autre système

Ce débat courtois mais vif est resté célèbre. Il montre que Linux n'était pas le « meilleur » système sur le papier ; il a gagné parce qu'il était libre, pratique et ouvert aux contributions.

5. Le noyau grandit (1992-2011)

Le moment est idéal : BSD est bloqué par son procès (leçon 0.2), le Hurd de GNU n'avance pas, Internet arrive dans les universités. Des centaines de développeurs envoient des correctifs à Linus.

Version Date Nouveauté marquante
0.01 septembre 1991 Première version publique
0.12 début 1992 Passage à la GPL
1.0 mars 1994 Première version jugée stable ; réseau TCP/IP
2.0 juin 1996 Plusieurs processeurs (SMP) ; arrivée de la mascotte Tux, le manchot
2.2 janvier 1999 Meilleur support du multiprocesseur
2.4 janvier 2001 USB, grandes quantités de mémoire : Linux entre dans les entreprises
2.6 décembre 2003 Nouveau modèle de développement ; noyau de RHEL 5 et RHEL 6 (2.6.32)
3.0 juillet 2011 Changement de numéro pour les 20 ans de Linux, sans rupture technique

En 2005, un conflit de licence prive les développeurs de l'outil qu'ils utilisaient pour gérer le code (BitKeeper). En quelques semaines, Linus écrit son propre outil : Git. Aujourd'hui, Git est utilisé par presque tous les développeurs du monde (GitHub, GitLab…). C'est la deuxième invention majeure de Linus.

6. Comment le noyau est développé aujourd'hui

Le noyau Linux est probablement le plus grand projet collaboratif de l'histoire du logiciel : plus de 30 millions de lignes de code, des milliers de contributeurs à chaque version, la plupart payés par leur employeur (Intel, Google, Red Hat, AMD, Meta, Huawei, SUSE, Linaro…).

Un cycle régulier

 version 6.N publiée
   │
   ├── 2 semaines : « fenêtre de fusion » (merge window)
   │      les nouveautés préparées par les mainteneurs entrent dans le noyau
   │
   ├── 6.(N+1)-rc1, rc2, … rc7 (parfois rc8) : une « release candidate » par semaine
   │      plus de nouveautés, seulement des corrections de bugs
   │
   └── environ 9 à 10 semaines plus tard : version 6.(N+1) publiée

Cela donne 5 à 6 versions par an. Il n'y a pas de date fixe : Linus publie quand la version est prête.

Une pyramide de mainteneurs

Linus ne relit pas tout lui-même. Le noyau est découpé en sous-systèmes (réseau, systèmes de fichiers, pilotes graphiques, USB, sécurité…). Chacun a ses mainteneurs, listés dans le fichier MAINTAINERS du code source. Les contributeurs envoient leurs correctifs par e-mail au bon mainteneur ; celui-ci les relit, les teste, puis les transmet vers le haut. Linus fusionne le travail des mainteneurs principaux.

Mainline, stable, longterm

Sur kernel.org, vous verrez plusieurs sortes de versions :

Catégorie Ce que c'est Maintenue par
mainline La version de développement de Linus (ex. 6.N-rc3) Linus Torvalds
stable La dernière version publiée, avec des correctifs (ex. 6.N.4) jusqu'à la suivante Greg Kroah-Hartman et l'équipe stable
longterm (LTS) En général la dernière version de chaque année, corrigée plusieurs années Des mainteneurs volontaires

Depuis 2023, les nouvelles versions LTS de kernel.org sont annoncées pour environ deux ans (contre six ans pour certaines auparavant), faute de moyens pour en maintenir plus. Des projets comme le CIP (Civil Infrastructure Platform) entretiennent certaines versions pendant dix ans pour l'industrie.

Le numéro du premier chiffre ne veut rien dire de technique : Linus le change quand le second devient trop grand (3.0 en 2011, 4.0 en 2015, 5.0 en 2019, 6.0 en 2022…).

7. Les noyaux des distributions

Les distributions d'entreprise ne suivent pas la dernière version de kernel.org. Elles choisissent une version au lancement et la maintiennent elles-mêmes pendant toute la vie du produit, en y ajoutant les correctifs de sécurité et même des nouveautés (on dit qu'elles les « rétroportent »).

Distribution Noyau de base
RHEL 6 / CentOS 6 2.6.32
RHEL 7 / CentOS 7 3.10
RHEL 8 / Rocky 8 / Alma 8 4.18
RHEL 9 / Rocky 9 / Alma 9 5.14
RHEL 10 / Alma 10 6.12
Debian 12 « bookworm » 6.1
Debian 13 « trixie » 6.12
Ubuntu 22.04 LTS 5.15
Ubuntu 24.04 LTS 6.8

Comment lire une version de noyau Red Hat :

uname -r
# 5.14.0-427.13.1.el9_4.x86_64
#   5.14.0        → version de base choisie par Red Hat (kernel.org 5.14)
#   427.13.1      → numéro de construction Red Hat : des centaines de correctifs ajoutés
#   el9_4         → « Enterprise Linux 9 », mise à jour 9.4
#   x86_64        → architecture (PC 64 bits)

Un noyau 5.14 de RHEL 9 de 2025 est donc très différent du noyau 5.14 de kernel.org de 2021 : il contient des années de corrections.

8. La frise de la leçon

1987  Minix (Andrew Tanenbaum)
1991  Janvier : Linus achète son PC 386 — 25 août : l'annonce — septembre : Linux 0.01
1992  Linux passe sous GPL (0.12) ; débat « LINUX is obsolete »
1994  Linux 1.0 (mars)
1996  Linux 2.0 ; la mascotte Tux
2003  Linux 2.6
2005  Linus crée Git
2007  Création de la Linux Foundation (qui emploie Linus)
2011  Linux 3.0, pour les 20 ans
2022  Linux 6.0 ; premiers éléments en langage Rust dans le noyau (6.1)

Pièges fréquents

  • Confondre version du noyau et version de la distribution. uname -r donne le noyau ; /etc/os-release donne la distribution. Rocky 9.4 et Rocky 9.5 ont le même noyau de base 5.14.
  • Croire qu'un vieux numéro de noyau veut dire « pas à jour ». Le noyau 4.18 de RHEL 8 reçoit encore des correctifs de sécurité. Ce qui compte, c'est la date du paquet, pas le numéro de base.
  • Installer « le dernier noyau de kernel.org » sur un serveur d'entreprise. Vous perdez le support de l'éditeur et les modules tiers (pilotes, antivirus) risquent de ne plus fonctionner.
  • Dans un conteneur, croire que le noyau est celui de la distribution. Un conteneur partage le noyau de la machine hôte. Vous allez le constater dans le lab.

Lab

Vous êtes sur une machine Ubuntu 24.04. Interrogez le noyau :

uname -r                           # la version du noyau
uname -r | cut -d. -f1             # le premier nombre seulement
cat /proc/sys/kernel/ostype        # là où uname va chercher ses réponses
cat /proc/sys/kernel/osrelease
grep PRETTY_NAME /etc/os-release   # la distribution

Surprise : votre lab est un conteneur. La distribution est bien Ubuntu 24.04, mais le noyau affiché n'est pas le 6.8 d'Ubuntu : c'est celui de la machine qui héberge le lab. Un conteneur emprunte le noyau de son hôte ; seuls les programmes et les fichiers sont ceux d'Ubuntu. Réalisez les tâches, puis cliquez sur Vérifier.


Quiz

  1. Quel système Linus Torvalds utilisait-il avant d'écrire Linux, et qui l'avait créé ?
  2. Pourquoi le passage à la GPL en 1992 a-t-il été si important ?
  3. Qu'est-ce qu'une « fenêtre de fusion » dans le développement du noyau ?
  4. Quelle est la différence entre une version stable et une version longterm (LTS) sur kernel.org ?
  5. Un serveur RHEL 9 affiche 5.14.0-503.el9.x86_64. Pourquoi n'est-il pas « en retard » alors que kernel.org propose des versions 6.x ?
Réponses
  1. Minix, un petit UNIX éducatif créé par le professeur Andrew Tanenbaum (1987).
  2. La GPL permet à tous d'utiliser, modifier et redistribuer Linux tout en obligeant à partager les améliorations ; elle a attiré les contributeurs et permis d'associer le noyau aux outils GNU pour former un système entièrement libre.
  3. Les deux semaines qui suivent une version, pendant lesquelles les nouveautés entrent dans le noyau ; ensuite viennent les versions -rc, réservées aux corrections.
  4. Une version stable est corrigée seulement jusqu'à la sortie de la suivante ; une version longterm est corrigée pendant plusieurs années.
  5. Red Hat a choisi la base 5.14 et la maintient lui-même en y ajoutant correctifs de sécurité et nouveautés (le nombre 503 le montre). Le numéro de base ne dit pas si le noyau est à jour.

Sources de référence : documentation du noyau Linux (docs.kernel.org, GPL-2.0), kernel.org, « Just for Fun » de L. Torvalds. Texte original MasterLinux.

Chapitre 5

Les distributions Linux — Slackware, Debian, Red Hat, Ubuntu et les autres

Objectif

Comprendre ce qu'est une distribution, d'où viennent les grandes familles que vous rencontrerez en entreprise, et pourquoi la commande pour installer un logiciel change d'un serveur à l'autre.

L'essentiel

  • Le noyau seul ne suffit pas : une distribution assemble le noyau, les outils GNU, des milliers de logiciels, un installateur et un gestionnaire de paquets.
  • Les ancêtres encore vivants sont nés en 1993 : Slackware et Debian. Red Hat et SUSE suivent en 1994.
  • Deux grandes familles dominent les serveurs : Debian (paquets .deb, apt) et Red Hat (paquets .rpm, yum/dnf).
  • Ubuntu (2004) dérive de Debian ; Fedora (2003) prépare l'avenir de RHEL.
  • Une distribution publie soit des versions fixes (Debian, RHEL, Ubuntu LTS), soit en continu (rolling release : Arch).

1. Pourquoi des distributions ?

En 1992, installer Linux est une aventure : il faut récupérer le noyau sur un serveur, compiler soi-même des dizaines de programmes GNU, les copier sur des disquettes, et espérer que tout fonctionne ensemble.

Une distribution fait ce travail pour vous. Comparez avec une cuisine :

Dans une cuisine Dans une distribution
Les ingrédients (farine, œufs, sucre) Le noyau Linux, bash, coreutils, nginx, MariaDB…
La recette, testée pour que tout aille ensemble Les versions choisies et testées les unes avec les autres
Le chef et son style L'équipe de la distribution, ses choix, sa philosophie
La livraison régulière d'ingrédients frais Les mises à jour de sécurité

Concrètement, une distribution fournit :

  1. un installateur (Anaconda chez Red Hat, debian-installer, Subiquity chez Ubuntu) ;
  2. un gestionnaire de paquets pour installer, mettre à jour et supprimer les logiciels ;
  3. des dépôts : des serveurs qui hébergent des dizaines de milliers de paquets prêts à l'emploi ;
  4. des réglages par défaut : système de démarrage, pare-feu, sécurité, emplacement des fichiers ;
  5. une politique de versions et une durée de support.

2. Les pionniers (1992-1993)

Les toutes premières distributions s'appellent MCC Interim Linux (1992, université de Manchester) et SLS (Softlanding Linux System, 1992). SLS est pratique mais plein de bugs. Deux personnes décident de faire mieux.

Slackware (juillet 1993)

Patrick Volkerding, étudiant américain, corrige SLS pour son usage, puis publie le résultat : Slackware. C'est la plus ancienne distribution encore maintenue. Sa philosophie : rester proche d'UNIX, simple, sans outils « magiques ». Elle reste très peu utilisée en entreprise aujourd'hui, mais elle a formé des générations d'administrateurs.

Debian (16 août 1993)

Ian Murdock, étudiant à l'université Purdue, annonce le 16 août 1993 une distribution construite ouvertement par une communauté, et non par une seule personne. Le nom réunit Debra (sa compagne d'alors) et Ian.

Debian a trois particularités qui comptent encore :

  • Elle n'appartient à aucune entreprise. Des milliers de bénévoles la font vivre, selon un Contrat social (1997) qui promet de rester 100 % libre.
  • Ses Principes du logiciel libre selon Debian (DFSG) ont servi de base à la définition de l'open source (leçon 0.3).
  • Ses versions portent des noms de personnages de Toy Story : buzz (1.1, 1996), woody, squeeze, jessie, stretch, buster, bullseye (11), bookworm (12), trixie (13)…

Debian invente aussi un système de paquets puissant : dpkg (milieu des années 1990), puis APT (1998), qui télécharge et installe automatiquement les dépendances. À l'époque, c'est une petite révolution.

3. Les distributions commerciales (1994)

Red Hat (1994)

Marc Ewing crée Red Hat Linux en 1994 ; Bob Young s'associe avec lui pour fonder l'entreprise Red Hat (1995). Red Hat invente le format de paquets RPM (Red Hat Package Manager), puis le rend libre. Red Hat entre en Bourse en août 1999, avec un succès spectaculaire : Linux devient une affaire sérieuse aux yeux des entreprises.

En 2003, Red Hat arrête son « Red Hat Linux » grand public pour se concentrer sur RHEL (payant, pour les entreprises) et lance Fedora (gratuit, communautaire). Toute cette saga est détaillée dans la leçon 0.6.

SUSE (1992-1994)

La société allemande S.u.S.E. (Nuremberg, fondée en 1992) publie sa première distribution en 1994, d'abord basée sur Slackware. Elle devient la référence en Europe, avec son outil de configuration graphique YaST. Aujourd'hui, SUSE Linux Enterprise (SLES) concurrence RHEL dans les grandes entreprises, et openSUSE (2005) est sa version communautaire. SUSE utilise des paquets RPM avec son propre outil, zypper.

4. Ubuntu : Linux pour tout le monde (2004)

En 2004, l'entrepreneur sud-africain Mark Shuttleworth fonde l'entreprise Canonical et lance Ubuntu, un mot d'origine bantoue qui évoque l'humanité et le partage. Objectif : un Linux facile, à jour, avec un calendrier prévisible.

  • Base Debian : mêmes paquets .deb, même outil apt.
  • Une version tous les six mois, numérotée par l'année et le mois : 24.04 = avril 2024.
  • Une version LTS (Long Term Support) tous les deux ans, en avril des années paires : 20.04, 22.04, 24.04… Elle est supportée 5 ans (et plus avec l'abonnement payant Ubuntu Pro).
  • Des noms d'animaux, par ordre alphabétique depuis 2006 : jammy (22.04, Jammy Jellyfish), noble (24.04, Noble Numbat)…

Ubuntu est devenu le Linux le plus répandu dans le cloud et sur les postes de développeurs. Il a lui-même des dérivés, comme Linux Mint (2006).

5. Les autres familles à connaître

Distribution Année Paquets Idée principale
Gentoo 2002 Compilés depuis les sources (emerge) Tout optimiser pour sa machine
Arch Linux 2002 pacman Simple, minimaliste, rolling release ; un wiki de référence pour tous les Linux
Alpine Linux 2005-2006 apk Minuscule et sûr (musl, BusyBox) : très utilisé comme base d'images de conteneurs
Linux Mint 2006 apt Ubuntu rendu plus familier pour les anciens utilisateurs de Windows
Kali Linux 2013 apt (base Debian) Outils de tests d'intrusion (sécurité offensive)
Oracle Linux 2006 rpm, dnf Recompilation de RHEL par Oracle

Le site DistroWatch en recense des centaines. Mais en entreprise, retenez surtout deux familles :

FAMILLE DEBIAN — paquets .deb, outils dpkg et apt
  Debian (1993)
   └── Ubuntu (2004)
         └── Linux Mint, Pop!_OS…

FAMILLE RED HAT — paquets .rpm, outils rpm et yum (RHEL 5-7) / dnf (RHEL 8+)
  Red Hat Linux (1994-2003)
   ├── Fedora (2003) ──► CentOS Stream ──► RHEL
   └── RHEL ──► Rocky Linux, AlmaLinux, Oracle Linux (recompilations)

HORS DE CES DEUX FAMILLES
  SUSE (rpm + zypper), Arch (pacman), Alpine (apk), Gentoo (emerge)

6. Le gestionnaire de paquets : le cœur d'une distribution

Un paquet est une archive qui contient un logiciel et des informations : sa version, sa description, et surtout ses dépendances (les autres paquets dont il a besoin).

Il y a deux étages d'outils dans chaque famille :

Étage Rôle Famille Debian Famille Red Hat
Bas niveau Installer un fichier de paquet déjà présent, interroger la base locale dpkg rpm
Haut niveau Chercher dans les dépôts, télécharger, résoudre les dépendances, mettre à jour tout le système apt (et apt-get) yum (RHEL 5 à 7), dnf (RHEL 8 et suivants)
# Famille Debian / Ubuntu
apt update && apt install nginx     # installer nginx et ses dépendances
dpkg -l | grep nginx                # est-il installé ?

# Famille Red Hat
dnf install nginx                   # (yum install nginx sur RHEL 7)
rpm -qa | grep nginx                # est-il installé ?

Les dépendances, c'est tout l'intérêt : vous demandez nginx, l'outil installe aussi les bibliothèques nécessaires, dans des versions testées ensemble. Sans gestionnaire de paquets, vous passeriez des heures à les chercher une par une.

Plus récemment sont apparus des formats universels, indépendants de la distribution : Snap (Canonical, 2016), Flatpak (surtout pour les applications de bureau) et, côté serveur, les conteneurs (Docker en 2013, Podman). Ils ne remplacent pas les paquets classiques : ils s'ajoutent à eux.

7. Versions fixes ou publication continue

Modèle Principe Exemples Pour qui ?
Versions fixes, support long Une version majeure tous les 2-3 ans, puis seulement des corrections pendant des années RHEL, Rocky, Alma (10 ans), Debian (≈ 5 ans avec le support LTS), Ubuntu LTS Serveurs de production : stabilité avant tout
Versions fixes, cycle court Une version tous les 6 mois environ Fedora, Ubuntu non-LTS Postes de travail, découverte des nouveautés
Publication continue (rolling) Pas de version : on met à jour en permanence Arch, openSUSE Tumbleweed Passionnés, postes personnels

Un serveur de banque ou de boutique en ligne veut que rien ne change sans qu'on l'ait décidé : il tourne sur une version fixe à support long. C'est pourquoi ce cours enseigne Red Hat (RHEL et ses clones), Debian et Ubuntu LTS.

8. Comment savoir sur quelle distribution vous êtes ?

C'est le premier réflexe à prendre en arrivant sur un serveur inconnu :

cat /etc/os-release          # standard sur toutes les distributions modernes
#   ID=debian, ID=ubuntu, ID="rocky"…     → la distribution
#   ID_LIKE="rhel centos fedora"           → la famille
#   VERSION_ID="12"                        → la version
cat /etc/debian_version      # famille Debian seulement
cat /etc/redhat-release      # famille Red Hat seulement

Le fichier /etc/os-release a été standardisé vers 2012 avec l'arrivée de systemd. Sur de très vieux serveurs (CentOS 6, par exemple), il peut manquer : utilisez alors /etc/redhat-release.

9. La frise de la leçon

1992  MCC Interim Linux, SLS — S.u.S.E. fondée en Allemagne
1993  Slackware (juillet) — Debian (16 août)
1994  Red Hat Linux — première distribution SuSE
1997  Contrat social Debian
1998  APT (Debian) — Mandrake
1999  Entrée en Bourse de Red Hat
2002  Arch Linux, Gentoo
2003  Fedora Core 1 ; RHEL devient le produit phare de Red Hat
2004  Ubuntu 4.10 (octobre) ; CentOS
2005  openSUSE ; Alpine (2005-2006)
2013  Docker : les conteneurs se répandent
2023  Debian 12 « bookworm »
2024  Ubuntu 24.04 LTS « noble »
2025  Debian 13 « trixie » ; RHEL 10

Pièges fréquents

  • Copier une commande d'installation trouvée sur Internet sans vérifier la famille. apt install n'existe pas sur Rocky ; dnf n'existe pas sur Debian. Regardez /etc/os-release d'abord.
  • Installer un .deb sur une distribution Red Hat (ou un .rpm sur Debian). Ce n'est pas le même format ni les mêmes bibliothèques. Cherchez le paquet de votre famille.
  • Mélanger les dépôts de deux versions (par exemple ajouter des paquets Debian 13 sur un Debian 12). C'est la meilleure façon de casser un système : les dépendances ne correspondent plus.
  • Penser qu'Ubuntu et Debian sont identiques. Ils partagent apt et .deb, mais leurs versions de logiciels, leurs outils réseau (Netplan sur Ubuntu) et leur pare-feu par défaut diffèrent.

Lab

Vous êtes sur Debian 12. Menez l'enquête comme sur un serveur inconnu :

cat /etc/os-release
cat /etc/debian_version
dpkg -l | head -n 10            # les premiers paquets installés
dpkg -l | grep -c '^ii'         # combien en tout ?
dpkg -s coreutils               # la fiche d'un paquet

Les tâches : identifier la distribution, relever sa version précise, compter les paquets installés et lire la version du paquet coreutils. Le lab est volontairement minimal : un serveur complet compte souvent plusieurs centaines de paquets. Cliquez ensuite sur Vérifier.


Quiz

  1. Citez quatre éléments qu'une distribution ajoute au noyau Linux.
  2. Quelles sont les deux plus anciennes distributions encore maintenues, et en quelle année sont-elles nées ?
  3. À quelle famille appartient Ubuntu ? Quel est son format de paquets ?
  4. Quelle est la différence entre rpm et dnf ?
  5. Vous arrivez sur un serveur inconnu. Quelle est votre première commande pour savoir quelle distribution il exécute ?
Réponses
  1. Au choix : les outils GNU et des milliers de logiciels, un installateur, un gestionnaire de paquets, des dépôts, des réglages par défaut, une politique de versions et de mises à jour de sécurité.
  2. Slackware (juillet 1993) et Debian (août 1993).
  3. À la famille Debian ; paquets .deb, gérés avec dpkg et apt.
  4. rpm est l'outil de bas niveau (installe un fichier .rpm, interroge la base locale) ; dnf est l'outil de haut niveau qui va chercher les paquets dans les dépôts et résout les dépendances.
  5. cat /etc/os-release (et, sur un très vieux serveur Red Hat, cat /etc/redhat-release).

Sources de référence : histoire officielle de Debian et Contrat social (debian.org), documentation Fedora et Red Hat, cycle de publication Ubuntu. Texte original MasterLinux.

Chapitre 6

La saga Red Hat — RHEL, Fedora, CentOS, Rocky et AlmaLinux

Objectif

Comprendre la famille Red Hat, la plus répandue dans les grandes entreprises : qui fait quoi entre RHEL, Fedora, CentOS, Rocky et AlmaLinux, pourquoi CentOS a disparu, et ce qui change d'une version de RHEL à l'autre. C'est le fil rouge du parcours Red Hat de ce cours.

L'essentiel

  • RHEL (Red Hat Enterprise Linux) est la version entreprise, vendue par abonnement (support + mises à jour), avec 10 ans de support par version.
  • Fedora (2003) est la distribution communautaire où se préparent les nouveautés ; CentOS Stream est l'aperçu de la prochaine mise à jour de RHEL.
  • CentOS (2004) était une recompilation gratuite de RHEL. Fin 2020, Red Hat arrête CentOS Linux 8 prématurément (fin 2021) ; CentOS 7 s'arrête le 30 juin 2024.
  • Rocky Linux et AlmaLinux (2021) prennent la relève : gratuits, compatibles avec RHEL.
  • Chaque version de RHEL apporte un changement majeur : systemd en 7, dnf en 8, OpenSSL 3 en 9, mode image en 10…

1. De Red Hat Linux à RHEL (1994-2003)

Vous avez vu à la leçon 0.5 la naissance de Red Hat Linux en 1994. Pendant près de dix ans, c'est une distribution unique, à la fois gratuite (téléchargeable) et vendue en boîte avec un manuel et du support. Elle va jusqu'à la version Red Hat Linux 9 (2003).

Problème : une nouvelle version sort environ tous les six mois. Une banque ne peut pas réinstaller ses serveurs deux fois par an. Red Hat lance donc en 2002 Red Hat Linux Advanced Server 2.1, bientôt renommé Red Hat Enterprise Linux : une version stable, certifiée avec les grands logiciels (Oracle, SAP…) et le matériel des constructeurs (Dell, HP, IBM), et maintenue des années.

En 2003, Red Hat sépare définitivement ses deux publics :

Pour… Distribution Prix Rythme
Les entreprises RHEL Abonnement payant Une version majeure tous les 3 à 5 ans, supportée 10 ans
La communauté, les passionnés Fedora (Fedora Core 1, novembre 2003 ; le mot « Core » disparaît en 2007) Gratuit Une version tous les 6 mois environ, supportée environ 13 mois

Attention à une idée reçue : l'abonnement RHEL ne paie pas une « licence » au sens Windows. Le code est libre (GPL et autres). Le client paie le support, les mises à jour, les certifications et l'accès aux outils de Red Hat.

2. CentOS : RHEL gratuit (2004-2014)

Comme RHEL est composé de logiciels libres, Red Hat publie son code source. Des bénévoles ont alors une idée simple : recompiler ce code, retirer les logos et marques de Red Hat, et diffuser le résultat gratuitement.

C'est CentOS (Community ENTerprise Operating System), dont les premières versions sortent en 2004. Le résultat est identique à RHEL « bug pour bug », mais sans support officiel. D'autres projets font la même chose, comme Scientific Linux (laboratoires Fermilab et CERN, arrêté avec la version 7).

CentOS devient vite le serveur gratuit préféré :

  • des hébergeurs web (le panneau d'hébergement cPanel, très répandu, a longtemps exigé CentOS ou RHEL) ;
  • des startups, qui veulent du RHEL sans payer ;
  • des administrateurs, qui se forment sur CentOS pour passer l'examen RHCSA ;
  • des entreprises, pour leurs serveurs de test (et RHEL en production).

En janvier 2014, Red Hat embauche l'équipe de CentOS et prend le projet sous son aile. Pour beaucoup, CentOS semble alors assuré pour longtemps.

3. CentOS Stream et le choc de décembre 2020

En septembre 2019, avec CentOS 8, Red Hat lance aussi CentOS Stream : une version qui avance en continu, juste avant la prochaine mise à jour de RHEL.

AVANT (2004-2020) : CentOS suit RHEL

  Fedora ──► RHEL 8.3 ──► (quelques semaines) ──► CentOS 8.3
                     code source publié, puis recompilé

APRÈS (2021 →) : CentOS Stream précède RHEL

  Fedora ──► CentOS Stream 9 ──► RHEL 9.x
              (ce qui entrera dans la prochaine mise à jour mineure de RHEL)

Le 8 décembre 2020, Red Hat annonce que CentOS Linux 8, promis jusqu'en 2029, s'arrêtera le 31 décembre 2021. Désormais, le projet CentOS se concentre sur CentOS Stream.

Pour les utilisateurs, c'est un choc :

  • des milliers d'entreprises avaient installé CentOS 8 en pensant avoir huit ans devant elles ;
  • CentOS Stream ne convient pas à tout le monde : il reçoit les changements avant RHEL, il n'est donc plus un clone exact d'une version de RHEL déjà validée.

CentOS Linux 7, lui, garde sa date de fin d'origine : le 30 juin 2024. Beaucoup de serveurs CentOS 7 tournaient encore à cette date, et certains tournent toujours : vous en rencontrerez peut-être.

4. Rocky Linux et AlmaLinux (2021)

La communauté réagit en quelques jours. Deux projets naissent pour reprendre le rôle de CentOS : une recompilation gratuite et compatible de RHEL.

Rocky Linux AlmaLinux
Annonce Décembre 2020 Décembre 2020
Fondateur Gregory Kurtzer, cofondateur du projet CentOS CloudLinux, une entreprise qui fait déjà des distributions pour hébergeurs
Origine du nom Hommage à Rocky McGaugh, autre cofondateur de CentOS, décédé « Alma » signifie « âme » en espagnol et en portugais
Première version stable Rocky 8.4, juin 2021 AlmaLinux 8.3, mars 2021
Organisation Rocky Enterprise Software Foundation AlmaLinux OS Foundation (association à but non lucratif)

Pour passer d'un CentOS 8 à l'un d'eux, chaque projet fournit un script de migration sur place (migrate2rocky, almalinux-deploy), sans réinstaller. D'autres alternatives existent : Oracle Linux (recompilation de RHEL depuis 2006), CentOS Stream lui-même, ou RHEL directement.

Red Hat a aussi assoupli son offre : depuis 2021, l'abonnement gratuit Red Hat Developer Subscription for Individuals permet à un particulier d'utiliser RHEL sur un petit nombre de machines (jusqu'à 16).

Juin 2023 : nouveau rebondissement

En juin 2023, Red Hat annonce que CentOS Stream devient la seule source publique du code lié à RHEL : le code source exact de chaque version de RHEL n'est plus publié librement, il est réservé aux clients.

Les recompilations doivent s'adapter :

  • AlmaLinux choisit d'être compatible au niveau binaire (ABI) avec RHEL, plutôt que copie « bug pour bug » : les logiciels prévus pour RHEL y fonctionnent, mais il peut exister de petites différences ;
  • Rocky Linux continue à viser l'identité avec RHEL, en récupérant le code par d'autres moyens légaux ;
  • CIQ (l'entreprise derrière Rocky), Oracle et SUSE créent en août 2023 l'OpenELA, une association qui publie du code source compatible avec RHEL.

Pour vous, administrateur, la conséquence est simple : ce que vous apprenez sur Rocky ou Alma vaut pour RHEL, et inversement. Les commandes, les fichiers de configuration et l'examen RHCSA sont les mêmes.

5. La famille aujourd'hui

             nouveautés, tous les 6 mois
  FEDORA  ─────────────────────────────────►   (le laboratoire)
     │  tous les 3 ans environ, Fedora sert de base à
     ▼
  CENTOS STREAM N  ───────────────────────►   (la prochaine mise à jour de RHEL, en avance)
     │
     ▼
  RHEL N.0, N.1, N.2…                          (le produit, 10 ans de support)
     │  code compatible
     ▼
  ROCKY LINUX N.x   ALMALINUX N.x   ORACLE LINUX N.x   (gratuits, compatibles)

En 2018, IBM annonce le rachat de Red Hat pour environ 34 milliards de dollars, finalisé en juillet 2019. Red Hat reste une division autonome, qui continue de développer RHEL et de contribuer massivement à Linux, à systemd, à GNOME, à Podman…

6. Le cycle de vie d'une version de RHEL

Chaque version majeure de RHEL a une durée de vie d'environ dix ans, en deux grandes phases, plus une option payante :

Phase Durée approximative Ce que vous recevez
Support complet (Full Support) ≈ 5 ans Corrections, sécurité, nouveau matériel, petites nouveautés à chaque version mineure (9.1, 9.2…)
Maintenance ≈ 5 ans de plus Corrections de sécurité et de bugs importants seulement
Support étendu (ELS, payant en plus) quelques années de plus Correctifs critiques pour ceux qui n'ont pas pu migrer

Les versions mineures sortent environ tous les six mois : 9.0, 9.1, 9.2… Rocky et Alma suivent le même calendrier, avec un léger décalage.

Selon la version

Version Sortie Noyau Ce qui change pour l'administrateur Fin de maintenance
RHEL 6 novembre 2010 2.6.32 Démarrage par Upstart mais services gérés à l'ancienne : service httpd start, chkconfig httpd on ; ext4 par défaut ; pare-feu iptables ; yum novembre 2020
RHEL 7 juin 2014 3.10 Arrivée de systemd (systemctl) ; pare-feu firewalld ; XFS par défaut ; GRUB 2 ; 64 bits seulement ; MariaDB remplace MySQL ; chronyd pour l'heure juin 2024
RHEL 8 mai 2019 4.18 dnf remplace yum (la commande yum reste en alias) ; dépôts BaseOS et AppStream avec des « modules » ; nftables sous firewalld ; Podman au lieu de Docker ; Python 3 (plus de commande python par défaut) ; console web Cockpit ; politiques cryptographiques système mai 2029
RHEL 9 mai 2022 5.14 Construit à partir de CentOS Stream 9 ; OpenSSL 3 ; connexion SSH de root par mot de passe refusée par défaut ; signatures SHA-1 dépréciées ; anciens fichiers réseau ifcfg dépréciés au profit des fichiers de NetworkManager ; processeurs x86-64 de niveau v2 exigés mai 2032
RHEL 10 mai 2025 6.12 Mode image (le système déployé comme une image de conteneur, avec bootc) ; premiers algorithmes de cryptographie post-quantique ; assistant en ligne de commande Lightspeed ; serveur graphique Xorg retiré (Wayland seulement) ; Valkey remplace Redis ; processeurs x86-64 de niveau v3 exigés prévue en 2035

Ce tableau est la raison d'être du parcours Red Hat de ce cours : chaque leçon importante y a sa section « Selon la version », parce qu'en entreprise vous croiserez encore des serveurs RHEL ou CentOS 6 et 7 à côté de RHEL 9 et 10.

# Sur un RHEL 6 / CentOS 6                    # Sur un RHEL 7 et suivants
service sshd restart                          systemctl restart sshd
chkconfig sshd on                             systemctl enable sshd
iptables -L                                   firewall-cmd --list-all
yum install httpd                             dnf install httpd   (RHEL 8+)

7. La frise de la leçon

1994  Red Hat Linux
1999  Red Hat entre en Bourse
2002  Red Hat Linux Advanced Server 2.1 → bientôt « RHEL »
2003  Red Hat Linux 9, la dernière ; RHEL 3 ; Fedora Core 1
2004  Premières versions de CentOS
2007  RHEL 5
2010  RHEL 6
2014  Red Hat embauche l'équipe CentOS (janvier) ; RHEL 7 (juin)
2019  RHEL 8 (mai) ; IBM finalise le rachat (juillet) ; CentOS Stream (septembre)
2020  8 décembre : fin anticipée de CentOS Linux 8 annoncée
2021  AlmaLinux 8.3 (mars), Rocky Linux 8.4 (juin) ; fin de CentOS Linux 8 (31 décembre)
2022  RHEL 9 (mai), suivi de Rocky 9 et AlmaLinux 9
2023  Code source de RHEL réservé aux clients (juin) ; OpenELA (août)
2024  Fin de CentOS Linux 7 (30 juin)
2025  RHEL 10 (mai), suivi d'AlmaLinux 10 et Rocky 10

Pièges fréquents

  • Dire « CentOS » pour parler d'un serveur Red Hat récent. CentOS Linux n'existe plus : un CentOS 7 encore en service ne reçoit plus de correctifs gratuits depuis juillet 2024. C'est un risque de sécurité à signaler.
  • Confondre CentOS Stream et l'ancien CentOS. Stream est en avance sur RHEL, pas une copie d'une version validée de RHEL.
  • Croire que Rocky et Alma sont « moins professionnels ». Ils sont utilisés en production par de grandes organisations. La différence avec RHEL tient au support et aux certifications des éditeurs, pas aux commandes.
  • Appliquer une procédure RHEL 6 sur un RHEL 9 (ou l'inverse). Regardez toujours la version (cat /etc/redhat-release) avant de suivre un tutoriel.

Lab

Vous êtes sur Rocky Linux 9. Vérifiez sa parenté avec RHEL :

grep -E '^(ID|ID_LIKE|VERSION_ID)=' /etc/os-release
cat /etc/redhat-release       # présent sur toute la famille Red Hat
rpm -qa | wc -l               # nombre de paquets RPM installés
rpm -q rocky-release          # le paquet qui « signe » la distribution

Les tâches : relever la famille déclarée par ID_LIKE, la ligne de /etc/redhat-release, le nombre de paquets et la version exacte de rocky-release. Puis cliquez sur Vérifier.


Quiz

  1. Quelle est la différence entre Fedora et RHEL ?
  2. Qu'était CentOS, et pourquoi était-il si populaire ?
  3. Qu'a annoncé Red Hat le 8 décembre 2020 ?
  4. Où se place CentOS Stream par rapport à RHEL ?
  5. Sur quelle version de RHEL sont apparus systemctl et firewalld ? Et dnf ?
Réponses
  1. Fedora est communautaire et gratuite, avec une version tous les 6 mois environ : c'est le laboratoire des nouveautés. RHEL est la version entreprise, vendue par abonnement, stable et supportée 10 ans.
  2. Une recompilation gratuite du code source de RHEL, sans les marques Red Hat : un RHEL gratuit, identique « bug pour bug », sans support officiel. Hébergeurs, startups et administrateurs en formation l'adoraient.
  3. Que CentOS Linux 8, prévu jusqu'en 2029, s'arrêterait le 31 décembre 2021, le projet se concentrant sur CentOS Stream.
  4. Avant RHEL : il contient ce qui entrera dans la prochaine mise à jour mineure de RHEL.
  5. systemctl et firewalld : RHEL 7 (2014). dnf : RHEL 8 (2019).

Sources de référence : cycle de vie et notes de version de Red Hat Enterprise Linux (documentation Red Hat, CC BY-SA 3.0), annonces officielles de CentOS, Rocky Linux et AlmaLinux. Texte original MasterLinux.

Chapitre 7

Linux aujourd'hui et votre carrière

Objectif

Voir où Linux est utilisé aujourd'hui, quels métiers il ouvre, quelles certifications comptent sur un CV, et choisir votre parcours dans ce cours : famille Red Hat ou famille Debian.

L'essentiel

  • Linux fait tourner la grande majorité des serveurs web et du cloud, 100 % des 500 plus puissants supercalculateurs (depuis 2017), Android et une foule d'appareils embarqués.
  • Les grands métiers : administrateur système, ingénieur DevOps, SRE, ingénieur cloud, sans oublier la sécurité et l'embarqué.
  • Les certifications de référence : RHCSA puis RHCE (Red Hat), LPIC-1 (LPI, neutre), LFCS (Linux Foundation).
  • Choisissez une famille pour commencer : Red Hat (grandes entreprises, banques, télécoms, administrations) ou Debian/Ubuntu (hébergeurs, startups, cloud).
  • Environ quatre cinquièmes de ce que vous apprendrez sont communs aux deux familles : le tronc commun de ce cours.

1. Où tourne Linux ?

Linux est le système le plus utilisé au monde… même si peu de gens le voient. Il est partout où il n'y a pas d'écran Windows ou macOS devant vous.

Domaine Place de Linux Exemples
Serveurs web Très majoritaire La plupart des sites que vous visitez tournent sur Linux, souvent avec nginx ou Apache
Cloud Très majoritaire Les machines virtuelles d'AWS, Google Cloud, Azure ; Microsoft a indiqué que plus de la moitié des machines virtuelles d'Azure tournent sous Linux
Conteneurs Quasi exclusif Docker, Podman, Kubernetes reposent sur des fonctions du noyau Linux (namespaces, cgroups)
Supercalculateurs 100 % du classement TOP500 depuis novembre 2017 Météo, recherche médicale, simulation nucléaire
Téléphones Android utilise le noyau Linux Plus de 3 milliards d'appareils Android actifs selon Google (2021)
Embarqué Très présent Box Internet, routeurs, téléviseurs connectés, voitures, caisses enregistreuses, distributeurs de billets, appareils médicaux
Espace Présent L'hélicoptère Ingenuity, sur Mars en 2021, fonctionnait sous Linux
Postes de travail Minoritaire (quelques pour cent) Développeurs, ChromeOS (basé sur Linux), console Steam Deck

Retenez ceci : quand vous consultez votre banque sur votre téléphone, il est très probable que Linux soit présent à chaque étape : dans le téléphone (Android), dans la box ou l'antenne relais, dans le serveur web de la banque, et dans sa base de données.

2. Pourquoi Linux a gagné

En reprenant les six leçons précédentes, on peut résumer le succès de Linux en cinq raisons :

  1. Il est libre (leçon 0.3) : pas de licence à payer par machine. Pour un hébergeur qui a 10 000 serveurs, cela change tout.
  2. Il est ouvert : n'importe quelle entreprise peut l'adapter à son matériel (Android, box Internet, supercalculateurs).
  3. Il suit les idées d'UNIX (leçons 0.1 et 0.2) : solides, éprouvées, connues de générations d'ingénieurs.
  4. Il est développé par tous (leçon 0.4) : les concurrents (Intel et AMD, Google et Microsoft) améliorent ensemble le même noyau.
  5. Il existe des distributions pour chaque besoin (leçons 0.5 et 0.6) : RHEL pour la banque, Ubuntu pour le cloud, Alpine pour les conteneurs.

3. Les métiers

Savoir administrer Linux ouvre plusieurs métiers, qui se recouvrent souvent. Les intitulés varient d'une entreprise à l'autre.

Métier Ce que vous faites au quotidien Compétences Linux clés
Administrateur système Linux Installer, configurer, mettre à jour et surveiller les serveurs ; gérer comptes, disques, sauvegardes, incidents Tout ce cours : services, réseau, stockage, sécurité, journaux
Ingénieur DevOps Automatiser le déploiement des applications ; chaînes d'intégration continue ; conteneurs Scripts shell, Git, Ansible, Docker/Podman, Kubernetes
SRE (Site Reliability Engineer) Garantir la fiabilité d'un service à grande échelle ; mesurer, alerter, réduire les pannes. Le métier a été formalisé chez Google au début des années 2000 Supervision, performance, automatisation, programmation
Ingénieur cloud Concevoir et gérer des infrastructures chez AWS, Azure ou Google Cloud Linux + réseau + outils du fournisseur, Terraform
Ingénieur sécurité Durcir les serveurs, analyser les journaux, répondre aux incidents SELinux/AppArmor, pare-feu, SSH, audit, journaux
Ingénieur systèmes embarqués Faire tourner Linux sur un appareil (box, voiture, terminal de paiement) Noyau, compilation, démarrage, pilotes

Un parcours fréquent : technicien support ou administrateur junior → administrateur système confirmé → DevOps, SRE ou cloud. Dans tous les cas, la base est la même : être à l'aise en ligne de commande et comprendre ce qui se passe dans un système Linux. C'est exactement ce que ce cours construit.

Au Maroc comme ailleurs, les employeurs de profils Linux sont nombreux : banques et assurances, opérateurs télécoms, administrations, hébergeurs, sociétés de services et centres d'externalisation (offshoring), startups.

4. Les certifications

Une certification prouve à un recruteur que vous savez faire, pas seulement que vous avez lu. Les principales :

Certification Organisme Format Niveau Pour qui ?
RHCSA (examen EX200) Red Hat 100 % pratique : vous administrez de vraies machines RHEL pendant quelques heures Administrateur La référence dans la famille Red Hat ; très demandée en entreprise
RHCE (EX294) Red Hat Pratique, centré sur l'automatisation avec Ansible (depuis RHEL 8) ; exige la RHCSA Administrateur confirmé Après la RHCSA, pour viser DevOps
RHCA Red Hat Plusieurs examens pratiques de spécialité Expert Architectes
Linux Essentials LPI QCM Débutant Première validation des bases
LPIC-1 (examens 101 et 102) LPI (Linux Professional Institute) Questions à choix et à compléter Administrateur junior Neutre : couvre Red Hat et Debian
LPIC-2, LPIC-3 LPI Questions Confirmé, expert Suite du parcours LPI
LFCS The Linux Foundation Pratique, en ligne, surveillé Administrateur Alternative pratique et neutre à la RHCSA
CompTIA Linux+ CompTIA Questions et mises en situation Junior Reconnu surtout en Amérique du Nord

Les examens pratiques (RHCSA, RHCE, LFCS) sont souvent les plus appréciés des recruteurs : on ne peut pas les réussir en apprenant par cœur. Les certifications ont une durée de validité limitée (de deux à cinq ans selon l'organisme) : vérifiez les règles à jour sur le site officiel avant de vous inscrire, car elles changent régulièrement.

Après une première certification Linux, beaucoup d'administrateurs poursuivent vers Kubernetes (CKA, de la Linux Foundation) ou vers les certifications des fournisseurs cloud (AWS, Azure, Google Cloud), qui supposent toutes une bonne maîtrise de Linux.

5. Choisir votre voie : famille Red Hat ou famille Debian ?

Ce cours propose un tronc commun, puis trois parcours : Red Hat, Debian et Ubuntu. Voici comment choisir.

Si vous visez… Commencez par Pourquoi
Une banque, une assurance, un opérateur télécom, une administration, une grande entreprise Red Hat (RHEL, Rocky, Alma) Ces organisations achètent du support RHEL ; la RHCSA y est souvent demandée
La certification RHCSA Red Hat L'examen se passe sur RHEL ; Rocky et Alma sont parfaits pour s'entraîner
Un hébergeur, une startup, une agence web Debian ou Ubuntu Ce sont les distributions les plus courantes chez eux
Le cloud et le DevOps Ubuntu, puis Red Hat Ubuntu est très répandu dans le cloud ; les entreprises clientes, elles, ont souvent du RHEL
Une certification neutre (LPIC-1, LFCS) Le tronc commun, puis les deux familles Ces examens couvrent les deux mondes

Les principales différences que vous rencontrerez :

Famille Red Hat Famille Debian / Ubuntu
Paquets .rpm — dnf (yum avant RHEL 8) .deb — apt
Pare-feu courant firewalld nftables (Debian), ufw (Ubuntu)
Sécurité obligatoire SELinux AppArmor
Groupe des administrateurs wheel sudo
Configuration du réseau NetworkManager (nmcli) /etc/network/interfaces (Debian), Netplan (Ubuntu)
Support d'une version 10 ans ≈ 5 ans (Debian avec LTS, Ubuntu LTS ; plus avec Ubuntu Pro)

Le bon conseil : ne cherchez pas le « meilleur » Linux. Apprenez à fond une famille, puis les différences de l'autre. Un administrateur qui maîtrise Rocky s'adapte à Ubuntu en quelques jours, et inversement : les commandes de base, systemd, SSH, les droits, le shell sont les mêmes.

6. Comment progresser

  1. Pratiquez tous les jours, même vingt minutes : l'administration système s'apprend avec les doigts, pas seulement avec les yeux. Chaque leçon de ce cours a un lab pour cela.
  2. Cassez et réparez : dans un lab, rien n'est grave. Supprimez un fichier, arrêtez un service, et cherchez comment revenir en arrière.
  3. Lisez les messages d'erreur jusqu'au bout : neuf fois sur dix, la solution y est écrite.
  4. Apprenez à vous documenter : man, --help, la documentation officielle de votre distribution (tronc commun, leçon sur la documentation).
  5. Gardez un carnet de vos commandes et de vos solutions : c'est le début de vos propres procédures, et un vrai atout en entretien.
  6. Visez une certification : une date d'examen dans l'agenda est le meilleur moteur.

7. La frise du module Histoire

1964  Multics
1969  UNIX (Thompson, Ritchie, Bell Labs)
1973  UNIX réécrit en C ; les tubes
1978  BSD (Berkeley)
1983  System V (AT&T) — projet GNU (Stallman)
1985  Free Software Foundation
1988  POSIX
1989  GPL
1991  Linux 0.01 (Linus Torvalds)
1993  Slackware, Debian
1994  Linux 1.0 ; Red Hat Linux ; SuSE
1998  « Open source »
2003  RHEL et Fedora
2004  Ubuntu ; CentOS
2008  Premier téléphone Android
2017  Linux sur 100 % des supercalculateurs du TOP500
2019  IBM rachète Red Hat
2021  Rocky Linux et AlmaLinux
2024  Fin de CentOS 7
2025  RHEL 10, Debian 13
…     et la suite, c'est vous qui l'écrivez

Idées reçues

  • « Linux, c'est pour les geeks, pas pour les entreprises. » C'est l'inverse : Linux est surtout un système d'entreprise. C'est sur les postes personnels qu'il reste minoritaire.
  • « Avec le cloud, plus besoin d'administrateurs Linux. » Le cloud déplace le travail, il ne le supprime pas : les machines virtuelles et les conteneurs du cloud sont des Linux qu'il faut configurer, sécuriser et dépanner.
  • « Il faut savoir programmer pour administrer Linux. » Pas pour commencer. Les scripts shell viennent naturellement avec la pratique ; un langage comme Python devient utile plus tard, pour le DevOps ou le SRE.
  • « Une certification suffit pour être embauché. » Elle ouvre des portes, mais l'entretien technique vérifie votre pratique : les labs comptent autant que le diplôme.

Lab

Dernier lab du module, sur Ubuntu 24.04 :

grep '^VERSION_CODENAME=' /etc/os-release   # le nom de code de cette version
uname -m                                    # l'architecture du processeur

Relevez le nom de code et l'architecture, puis engagez-vous : écrivez la famille que vous choisissez (redhat ou debian) et la première certification que vous visez. Personne d'autre que vous ne lira ces fichiers ; c'est une promesse à vous-même. Cliquez ensuite sur Vérifier, et rendez-vous dans le tronc commun.


Quiz

  1. Citez quatre domaines où Linux est utilisé, en dehors des ordinateurs de bureau.
  2. Quelle est la différence principale entre un administrateur système et un SRE ?
  3. Pourquoi la RHCSA est-elle particulièrement appréciée des recruteurs ?
  4. Vous voulez travailler dans une banque qui utilise RHEL. Quelle famille apprenez-vous en premier, et sur quelle distribution gratuite pouvez-vous vous entraîner ?
  5. Citez trois différences entre la famille Red Hat et la famille Debian.
Réponses
  1. Au choix : serveurs web, cloud, conteneurs, supercalculateurs, téléphones Android, box et routeurs, téléviseurs, voitures, appareils médicaux, espace.
  2. L'administrateur fait fonctionner les serveurs (installation, configuration, maintenance) ; le SRE se concentre sur la fiabilité mesurée d'un service à grande échelle, avec beaucoup d'automatisation et de supervision. Les deux métiers se recouvrent largement.
  3. Parce que l'examen est 100 % pratique : on administre de vraies machines, on ne peut pas réussir en apprenant des réponses par cœur.
  4. La famille Red Hat ; entraînement sur Rocky Linux ou AlmaLinux (ou RHEL avec l'abonnement gratuit pour développeurs).
  5. Au choix : paquets .rpm/dnf contre .deb/apt ; SELinux contre AppArmor ; groupe wheel contre sudo ; firewalld contre nftables/ufw ; NetworkManager contre interfaces/Netplan ; durée de support (10 ans contre environ 5 ans).

Sources de référence : TOP500 (top500.org), pages officielles des certifications Red Hat, LPI et Linux Foundation. Texte original MasterLinux.

Passez à la pratique

Les fondamentaux commencent par votre premier terminal, gratuitement.

Découvrir les fondamentaux

https://masterlinux.online