Linus Torvalds

Linus Torvalds

Linus Torvalds est l’une des figures majeures de l’informatique contemporaine. En 1991, alors qu’il est étudiant à l’université d’Helsinki, il commence à développer le noyau Linux sur un ordinateur personnel équipé d’un processeur Intel 80386. Ce qui débute comme un projet personnel devient rapidement un développement collectif auquel participent des programmeurs du monde entier. Linux s’impose progressivement comme l’un des noyaux de système d’exploitation les plus importants de l’informatique moderne.

En 2005, Linus Torvalds réalise une seconde contribution majeure avec la création de Git, système de gestion de versions distribué devenu un outil fondamental du développement logiciel.

Fiche rapide

  • Nom : Linus Benedict Torvalds
  • Naissance : 28 décembre 1969
  • Lieu de naissance : Helsinki, Finlande
  • Nationalités : finlandaise et américaine
  • Domaine : informatique, systèmes d’exploitation, développement logiciel
  • Contributions majeures : noyau Linux, Git
  • Rôle : créateur et mainteneur principal du noyau Linux

Une enfance à Helsinki

Linus Torvalds naît à Helsinki dans une famille appartenant à la minorité suédophone de Finlande. Ses parents, Anna Torvalds et Nils Torvalds, travaillent dans le journalisme.

Son grand-père maternel, Leo Törnqvist, professeur de statistique à l’université d’Helsinki, joue un rôle important dans sa découverte de l’informatique.

Au début des années 1980, il lui fait découvrir un Commodore VIC-20. Linus apprend d’abord le BASIC, mais l’utilisation des programmes existants ne lui suffit rapidement plus. Il veut comprendre ce qui se passe sous l’interface et s’intéresse au fonctionnement du processeur, de la mémoire et des périphériques.

Cette curiosité le conduit progressivement vers le code machine et la programmation de bas niveau.

Le Sinclair QL et l’apprentissage du bas niveau

Après le VIC-20, Linus Torvalds acquiert un Sinclair QL, micro-ordinateur britannique équipé d’un processeur de la famille Motorola 68000. Il modifie son environnement logiciel, développe différents outils et écrit notamment son propre assembleur. La difficulté à trouver certains programmes en Finlande l’incite à créer lui-même les outils dont il a besoin.

Cette manière d’utiliser l’ordinateur est caractéristique de l’éthique hacker au sens historique du terme : ne pas seulement utiliser une machine, mais l’explorer, comprendre ses limites et chercher à les dépasser.

Le Sinclair QL constitue ainsi une étape importante dans son apprentissage de la programmation système.

La découverte d’UNIX à l’université

En 1988, Linus Torvalds entre à l’université d’Helsinki pour étudier l’informatique. Ses études sont interrompues par son service militaire obligatoire, avant qu’il ne reprenne sa formation.

À l’université, il découvre véritablement UNIX, système d’exploitation dont l’histoire remonte aux Bell Labs et aux travaux de programmeurs comme Dennis Ritchie et Ken Thompson.

Il utilise notamment un MicroVAX de Digital Equipment Corporation (DEC) fonctionnant sous ULTRIX, une version d’UNIX développée par DEC.

UNIX lui apparaît comme un environnement particulièrement adapté à la programmation : multi-utilisateur, interactif et construit autour d’outils relativement simples pouvant être combinés.

Cette culture informatique s’est développée quelques décennies plus tôt sur des machines telles que le PDP-11, qui joue un rôle essentiel dans l’histoire d’UNIX.

Torvalds obtient par la suite une maîtrise en informatique à l’université d’Helsinki. Son mémoire porte sur Linux et s’intitule Linux: A Portable Operating System.

MINIX : comprendre un système d’exploitation

Au début des années 1990, Linus Torvalds achète un ordinateur compatible IBM PC équipé d’un processeur Intel 80386.

Le 386 est un processeur 32 bits proposant notamment un mode protégé, des mécanismes de gestion mémoire et des fonctions bien adaptées à la conception d’un système multitâche.

Pour étudier les systèmes d’exploitation, Torvalds utilise MINIX, conçu par le professeur Andrew S. Tanenbaum.

MINIX est un système de type UNIX principalement destiné à l’enseignement et accompagné du livre Operating Systems: Design and Implementation.

Torvalds peut ainsi observer le fonctionnement d’un véritable système. Mais il souhaite également exploiter plus directement les possibilités de son 80386 et commence à développer ses propres programmes de bas niveau.

D’un émulateur de terminal à un noyau

Le projet qui deviendra Linux ne commence pas immédiatement comme un système d’exploitation complet.

Torvalds veut d’abord utiliser son nouveau PC pour se connecter au système UNIX de son université. Il écrit pour cela un émulateur de terminal fonctionnant directement sur la machine.

Mais pour faire fonctionner ce programme, il doit progressivement prendre en charge des mécanismes de plus en plus fondamentaux : gestion du clavier, communication avec le port série, interruptions, commutation entre tâches et accès au matériel.

Le programme acquiert ainsi peu à peu les fonctions caractéristiques d’un noyau de système d’exploitation.

Torvalds développe son projet depuis MINIX en utilisant notamment les outils du projet GNU. Le noyau est principalement écrit en langage C, avec de l’assembleur pour certaines opérations étroitement liées au processeur.

25 août 1991 : l’annonce de Linux

Le 25 août 1991, Linus Torvalds publie un message dans le groupe de discussion Usenet comp.os.minix.

Il y présente le système qu’il développe pour les ordinateurs équipés de processeurs 386 et 486. Le projet reste encore modeste : Torvalds cherche surtout des retours et demande aux utilisateurs de MINIX quelles fonctionnalités ils souhaiteraient trouver dans un nouveau système.

Il ne s’agit donc pas encore de l’annonce d’un produit achevé.

En septembre 1991, la première version publiquement accessible, Linux 0.01, est déposée sur le serveur FTP de l’université d’Helsinki.

Cette version est encore rudimentaire et dépend de MINIX pour plusieurs opérations de développement et d’installation. Elle contient néanmoins les fondations du futur noyau Linux.

Pourquoi le nom « Linux » ?

Torvalds envisage initialement d’appeler son projet Freax, nom associant les idées de free, freak et la lettre « X » traditionnellement liée à UNIX.

Lors du dépôt des premiers fichiers sur le serveur FTP de l’université, Ari Lemmke, qui administre le serveur, préfère utiliser le nom Linux.

Torvalds trouve d’abord ce nom trop personnel, mais il finit par s’imposer.

Il faut toutefois distinguer le noyau du système complet : Linux désigne techniquement le noyau.

Un système utilisable associe ce noyau à des bibliothèques, des interpréteurs de commandes, des outils système, des compilateurs et des applications. Une partie importante de ces composants provient historiquement du projet GNU.

C’est pourquoi l’expression GNU/Linux est utilisée dans certains contextes pour désigner les systèmes associant le noyau Linux aux outils GNU, tandis que l’usage courant emploie généralement simplement le nom Linux.

1992 : le choix de la licence GPL

Les premières versions de Linux utilisent une licence rédigée par Torvalds lui-même. Le code peut être étudié et modifié, mais certaines utilisations commerciales restent limitées.

En 1992, le noyau passe sous GNU General Public License version 2 (GPLv2).

Ce choix joue un rôle majeur dans son développement. Le code peut être utilisé, étudié, modifié et redistribué, tandis que les versions redistribuées doivent conserver les libertés prévues par la licence.

Universités, particuliers et entreprises peuvent donc participer au projet et construire des produits ou des services autour de Linux sans fermer les modifications redistribuées du noyau.

Le débat avec Andrew Tanenbaum

En 1992, Linus Torvalds et Andrew S. Tanenbaum, créateur de MINIX, s’opposent publiquement dans une série d’échanges devenus célèbres.

Le désaccord porte notamment sur l’architecture des systèmes d’exploitation.

Tanenbaum défend l’approche du micro-noyau, dans laquelle un nombre limité de fonctions restent dans le noyau tandis que davantage de services fonctionnent séparément.

Linux adopte au contraire une architecture généralement qualifiée de monolithique : de nombreux services fondamentaux, notamment les pilotes et les systèmes de fichiers, s’exécutent dans l’espace du noyau.

Torvalds privilégie une approche pragmatique centrée sur les performances et les besoins des machines disponibles.

Ce débat illustre une question classique de l’ingénierie informatique : une architecture théoriquement élégante n’est pas nécessairement celle qui offre le meilleur compromis dans un contexte matériel et logiciel donné.

Internet transforme Linux en projet collectif

Linux cesse rapidement d’être le projet d’un seul étudiant.

Des programmeurs récupèrent le code sur Internet, l’étudient, corrigent des erreurs, ajoutent des pilotes et proposent de nouvelles fonctionnalités.

Torvalds examine les contributions et intègre celles qu’il considère suffisamment pertinentes et robustes.

Le développement du noyau prend ainsi une forme alors encore inhabituelle à cette échelle : des programmeurs géographiquement dispersés collaborent par Internet autour d’un même code source.

Ce fonctionnement ne signifie cependant pas que toutes les décisions soient prises par vote.

Torvalds conserve le dernier mot sur la branche principale du noyau. Autour de lui se construit progressivement une organisation hiérarchisée composée de mainteneurs responsables de différents sous-systèmes, architectures et pilotes.

Linux 1.0 et les distributions

Le 14 mars 1994, Linux atteint officiellement la version 1.0.

Le noyau dispose désormais des mécanismes fondamentaux attendus d’un système de type UNIX : processus, mémoire virtuelle, systèmes de fichiers, réseau et gestion de nombreux périphériques.

Parallèlement, différents projets associent le noyau Linux aux outils GNU, au système graphique X Window et à de nombreux logiciels.

Ces ensembles constituent des distributions Linux. Slackware, Debian puis Red Hat font partie des distributions qui participent à la diffusion du système durant les années 1990.

Linux n’est alors plus seulement un noyau expérimental pour PC : il devient progressivement une plateforme utilisable dans des contextes personnels, universitaires et professionnels.

Tux : le manchot de Linux

En 1996, le projet Linux adopte pour mascotte un manchot dessiné par Larry Ewing.

Le personnage reçoit le nom de Tux.

Torvalds souhaite une mascotte sympathique et immédiatement reconnaissable plutôt qu’un emblème agressif ou institutionnel.

Tux devient rapidement l’un des symboles les plus connus du logiciel libre et de Linux.

De la Finlande aux États-Unis

En 1997, Linus Torvalds quitte la Finlande et rejoint Transmeta en Californie.

L’entreprise travaille sur des microprocesseurs à faible consommation ainsi que sur des techniques de traduction dynamique d’instructions.

Torvalds poursuit parallèlement le développement du noyau Linux.

En 2003, il rejoint l’Open Source Development Labs (OSDL). Cette organisation fusionne ensuite avec le Free Standards Group pour former la Linux Foundation, qui fournit le cadre institutionnel dans lequel il poursuit son activité autour du noyau.

Le mainteneur du noyau Linux

Le rôle de Torvalds change profondément à mesure que Linux grandit.

Au début des années 1990, il écrit lui-même une part importante du code. Avec l’expansion du projet, cela devient impossible : le noyau rassemble désormais un nombre considérable de composants développés et maintenus par de nombreux spécialistes.

Son activité consiste alors surtout à diriger le processus d’intégration.

Les modifications remontent à travers une hiérarchie de mainteneurs spécialisés avant d’atteindre la branche principale du noyau.

Le développement moderne de Linux suit des cycles réguliers. Après l’ouverture d’une fenêtre d’intégration destinée aux principales nouveautés, plusieurs versions candidates permettent de tester et de stabiliser le noyau avant une nouvelle version.

Un style de direction controversé

Linus Torvalds est connu pour accorder une grande importance à la qualité du code, aux performances et à la simplicité des solutions techniques.

Son style de communication a toutefois suscité de nombreuses critiques. Pendant longtemps, certains de ses messages adressés aux développeurs ont été particulièrement abrupts et parfois insultants.

En 2018, il reconnaît publiquement que son comportement pose problème et s’éloigne temporairement du développement du noyau afin de travailler sur sa manière de communiquer.

La même année, le projet Linux adopte un nouveau code de conduite.

L’épisode montre qu’un grand projet logiciel ne repose pas uniquement sur la qualité technique du code : son fonctionnement dépend également de la capacité d’une communauté internationale à collaborer durablement.

2005 : la création de Git

Au début des années 2000, le développement du noyau Linux utilise BitKeeper, un système propriétaire de gestion de versions distribué.

Lorsque cette solution cesse d’être adaptée aux conditions dans lesquelles la communauté Linux pouvait l’utiliser en 2005, Torvalds recherche une alternative.

Les solutions disponibles ne répondent pas suffisamment aux contraintes particulières du noyau : très grand nombre de modifications, développement distribué, branches fréquentes, performances élevées et nécessité de préserver l’intégrité de l’historique.

Torvalds commence alors à développer Git en avril 2005.

Les premières versions utilisables apparaissent très rapidement et Git est bientôt employé pour gérer les sources du noyau Linux.

Contrairement aux systèmes centralisés, Git est distribué : chaque développeur peut disposer localement d’une copie complète du dépôt et de son historique.

Git représente également les contenus et l’historique à l’aide d’identifiants cryptographiques, ce qui permet de vérifier l’intégrité des objets enregistrés.

Après la phase initiale de conception conduite par Torvalds, la maintenance principale du projet est confiée à Junio C. Hamano.

Git dépasse ensuite très largement le projet Linux pour devenir l’un des outils fondamentaux du développement logiciel moderne.

L’importance réelle de Linus Torvalds

L’importance historique de Linus Torvalds doit être appréciée avec précision.

Il n’a inventé ni UNIX, ni le logiciel libre, ni le langage C. Il n’a pas non plus écrit seul le système que l’on appelle couramment Linux.

Son apport propre est néanmoins considérable.

Il crée en 1991 les premières versions du noyau Linux, ouvre son développement à des contributeurs répartis dans le monde entier et construit progressivement un processus capable d’intégrer le travail de milliers de programmeurs.

Il joue ensuite un rôle central dans la continuité technique du projet en restant à la tête de la branche principale du noyau.

Avec Git, il apporte en 2005 une seconde contribution indépendante qui transforme cette fois la manière dont les programmeurs organisent et partagent le développement du logiciel.

Repères chronologiques

  • 1969 : naissance de Linus Torvalds à Helsinki
  • Début des années 1980 : découverte de la programmation sur Commodore VIC-20
  • Années 1980 : programmation de bas niveau sur Sinclair QL
  • 1988 : entrée à l’université d’Helsinki
  • 1990 : approfondissement de sa connaissance d’UNIX
  • 1991 : début du développement du noyau Linux
  • 25 août 1991 : annonce publique du projet sur comp.os.minix
  • Septembre 1991 : diffusion de Linux 0.01
  • 1992 : adoption de la licence GNU GPLv2
  • 14 mars 1994 : publication de Linux 1.0
  • 1996 : adoption de Tux et publication de Linux 2.0
  • 1997 : installation aux États-Unis et entrée chez Transmeta
  • 2003 : arrivée à l’Open Source Development Labs
  • 2005 : création de Git
  • 2007 : création de la Linux Foundation à partir de la fusion de l’OSDL et du Free Standards Group
  • 2012 : réception du Millennium Technology Prize
  • 2018 : prise de recul temporaire et adoption d’un nouveau code de conduite par le projet Linux

Un projet personnel devenu une infrastructure mondiale

Le noyau commencé en 1991 sur un ordinateur personnel équipé d’un Intel 80386 fonctionne aujourd’hui sur une gamme extrêmement vaste de matériels.

On retrouve Linux dans les serveurs, les centres de données, les équipements réseau, les systèmes embarqués, les supercalculateurs et de nombreux appareils électroniques. Android utilise lui aussi le noyau Linux, même si son environnement logiciel diffère fortement de celui des distributions GNU/Linux classiques.

Cette réussite ne repose pas seulement sur le programme écrit par Torvalds au début des années 1990. Elle résulte également d’un modèle de développement capable de coordonner les contributions d’individus, d’universités et d’entreprises parfois concurrentes.

Avec Linux puis Git, Linus Torvalds a ainsi influencé deux dimensions fondamentales de l’informatique moderne : les logiciels exécutés par les machines et les outils utilisés pour construire ces logiciels.


Crédit de l’image : auteur inconnu — LinuxMag.com, décembre 2002, sous licence CC BY-SA 3.0, Wikimedia Commons.

Publications similaires

  • Steve Dompier

    Steve Dompier, de son nom complet Steven James Dompier, est l’une des figures les plus singulières des débuts de la micro-informatique personnelle. Né le 7 janvier 1946 à Spokane, dans l’État de Washington, il devient en 1975 l’un des premiers utilisateurs du Altair 8800 et participe aux premières réunions du Homebrew Computer Club. Son nom…

  • J. Presper Eckert

    J. Presper Eckert : l’ingénieur de l’ENIAC et pionnier de l’UNIVAC John Adam Presper Eckert Jr., généralement appelé J. Presper Eckert ou simplement « Pres », est l’un des principaux ingénieurs de la naissance de l’informatique électronique. Avec le physicien John W. Mauchly, il conçoit l’ENIAC, l’un des premiers grands ordinateurs électroniques numériques programmables à…

  • Betty Snyder Holberton

    Betty Snyder Holberton : de l’ENIAC aux premiers outils de programmation Frances Elizabeth « Betty » Snyder Holberton appartient à la première génération de programmeurs de l’histoire de l’informatique électronique. Membre des six femmes chargées de programmer l’ENIAC, elle participe ensuite au développement des méthodes de programmation de l’UNIVAC. Son parcours ne s’arrête pourtant pas…

  • Ken Williams

    Ken Williams est l’une des figures majeures de l’histoire du jeu vidéo sur micro-ordinateur. Programmeur de formation et entrepreneur, il cofonde avec son épouse Roberta Williams la société On-Line Systems, qui deviendra ensuite Sierra On-Line. Le couple joue un rôle important dans l’évolution du jeu d’aventure. Alors que les premières aventures informatiques reposent essentiellement sur…

  • L’éthique hacker

    L’éthique hacker : comprendre, créer et partager L’éthique hacker désigne un ensemble de valeurs apparues dans les premières communautés de programmeurs, notamment au MIT à partir de la fin des années 1950. Elle repose sur une relation active à la technique : accéder directement aux machines, comprendre leur fonctionnement, expérimenter librement et partager les connaissances…

  • Dennis Ritchie

    Dennis Ritchie est l’une des figures majeures de l’histoire de l’informatique. Créateur du langage C et co-développeur du système UNIX avec Ken Thompson et d’autres chercheurs des Bell Labs, il joue un rôle déterminant dans l’évolution de la programmation système.Son apport repose sur une association particulièrement féconde : un système d’exploitation conçu pour être simple…