vignette|upright=2|Couches de fonctions du Noyau Linux Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il est utilisé dans les systèmes d'exploitation Linux. Le noyau Linux est un logiciel partiellement libre développé essentiellement en langage C par des milliers de bénévoles et salariés collaborant sur Internet.

Le noyau est le cœur du système, c'est lui qui s'occupe de fournir aux logiciels une interface de programmation pour utiliser le matériel. Le noyau Linux a été créé en 1991 par Linus Torvalds pour les compatibles PC. Initialement conçu pour l'architecture de processeur x86, il a ensuite été porté sur de nombreuses autres, dont m68k, PowerPC, ARM, SPARC, MIPS et RISC-V. Il s'utilise dans une très large gamme de matériel, des systèmes embarqués aux superordinateurs, en passant par les téléphones mobiles et ordinateurs personnels.

Ses caractéristiques principales sont d'être multitâche et multi-utilisateur. Il respecte les normes POSIX ce qui en fait un digne héritier des systèmes UNIX. Au départ, le noyau a été conçu pour être monolithique. Ce choix technique fut l'occasion de débats enflammés entre Andrew S. Tanenbaum, professeur à l'université libre d'Amsterdam qui avait développé Minix, et Linus Torvalds. Andrew Tanenbaum arguant que les noyaux modernes se devaient d'être des micro-noyaux et Linus répondant que les performances des micro-noyaux n'étaient pas bonnes. Depuis sa version 2.0, le noyau, bien que n'étant pas un micro-noyau, est modulaire, c'est-à-dire que certaines fonctionnalités peuvent être ajoutées ou enlevées du noyau à la volée (en cours d'utilisation).

Histoire

En 1991, les compatibles PC dominent le marché des ordinateurs personnels et fonctionnent généralement avec les systèmes d'exploitation MS-DOS, Windows ou OS/2. Les PC basés sur le microprocesseur Intel 80386, vendus depuis 1986, commencent à être abordables. Mais les systèmes grand public restent attachés à la compatibilité avec les anciens processeurs 16 bits d'Intel et exploitent mal les capacités 32 bits et l'unité de gestion mémoire du 80386.

C'est cette année que l’étudiant finlandais Linus Torvalds, indisposé par la faible disponibilité du serveur informatique UNIX de l’université d'Helsinki, entreprend le développement d’un noyau de système d'exploitation, qu’on appellera plus tard « Linux ». Linus désire alors surtout comprendre le fonctionnement de son ordinateur fondé sur un Intel 80386.

Linus Torvalds fait son apprentissage avec le système d’exploitation Minix. Comme le concepteur de Minix — Andrew Tanenbaum — refuse d’intégrer les contributions visant à améliorer Minix, Linus décide de programmer un remplaçant de Minix. Il commence par développer un simple émulateur de terminal, qu’il utilise pour se connecter via un modem au serveur informatique de son université. Après l’ajout de diverses fonctionnalités dont un système de fichiers compatible avec celui de Minix, Linus oriente son projet vers quelque chose de plus ambitieux : un noyau aux normes POSIX. À ce noyau, il adapte de nombreux composants disponibles du système d’exploitation GNU pour obtenir un système d’exploitation plus complet.

Le , il annonce sur le forum Usenet news:comp.os.minix qu'il écrit un système d'exploitation, mais en tant que « hobby, qui ne sera pas grand et professionnel comme gnu ». Le , il annonce la disponibilité d’une ébauche de la version 0.02 de son noyau, la version 0.01 ayant eu une diffusion plus que confidentielle On y trouve les messages en question et leurs traductions.. Enfin en , la version 0.12 est diffusée sous la Licence publique générale GNU (GNU GPL) à la place de la licence ad hoc qui interdisait jusque-là la redistribution commercialeRelease notes for Linux v0.12.

La version Linux 1.0.0 a été lancée le avec lignes de code.

Initialement appelé Freax par son créateur, le projet trouve son nom définitif grâce à Ari LemmkeD’après Lars Wirzenius dans une présentation donnée en 1998 : Linux Anecdotes, administrateur du serveur FTP ftp.funet.fi, qui héberge le travail de Linus Torvalds dans un répertoire nommé Linux. C’est la première apparition d’un terme composé à partir de « Linus » et « UNIX », qui deviendra par la suite une marque déposée au nom de Linus Torvalds. Le manchot Tux, dessiné par Larry Ewing en 1996, devient la mascotte du projet.

La mise à disposition du code de Linux suscita beaucoup d'intérêt de la communauté des utilisateurs de Minix. Dès lors, des milliers de programmeurs bénévoles à travers le monde participèrent au projet. Le modèle de développement de Linux est toujours considéré comme un représentant type de l'organisation caractéristique des grands collectifs open source. Aujourd'hui, des centaines de passionnés et des entreprises de toutes tailles participent au projet, dont Linus Torvalds est toujours le coordinateur. Eric Raymond décrit dans l'essai La Cathédrale et le Bazar (2001) le modèle de développement du noyau Linux et d’une partie des logiciels libresla cathédrale et le bazaar, d’Eric S. Raymond..

Dans les systèmes embarqués, Linux est fréquemment utilisé avec les outils uClibc et BusyBox qui ont été développés pour le matériel particulièrement limité en capacité mémoire. Le fait de pouvoir compiler le noyau Linux avec des options spécialement adaptées au matériel cible donne aux développeurs de nombreuses possibilités d’optimisation.

Développement du noyau Linux Si au début de son histoire le développement du noyau Linux était assuré par des développeurs bénévoles, les principaux contributeurs sont aujourd'hui un ensemble d'entreprises, souvent concurrentes, comme Red Hat, Novell, IBM ou Intel.

IBM possédait son propre UNIX, nommé AIX, mais le passage à Linux - outre qu'il permet d'affecter à d'autres projets les développeurs et mainteneurs d'AIX - présente aussi l'avantage de permettre une reprise, sans difficulté de portage d'applications ni nouvelle formation des équipes informatiques, de serveurs Linux PC vers des Linux sur ses séries i, p et z.

La licence du noyau Linux est la licence publique générale GNU dans sa version 2. Cette licence est libre, ce qui permet d'utiliser, copier et modifier le code source selon ses envies ou ses besoins. Ainsi, quiconque a les connaissances nécessaires peut participer aux tests et à l'évolution du noyau.

Rythme de développement Entre mars et , le nombre de lignes de code a doublé (de à ). Début 2009, la version 2.6.30 du noyau linux est composée de plus de millions de lignes de code dans , alors que de lignes ont été ajoutées entre Noël 2008 et Open Source : 75 % des contributeurs de Linux sont rémunérés sur ZDNet.

Entre 2005 et mi-2009, et ont participé à l'écriture du noyau. Le nombre de patchs proposé est en augmentation, notamment depuis la version 2.6.25.

Rôle de Linus Torvalds Linus Torvalds, créateur du noyau Linux, est le mainteneur officiel depuis le début en 1991. Il est une sorte de « dictateur bienveillant », l'autorité en termes de choix techniques et organisationnels. Les différentes versions du noyau publiées par Linus Torvalds s'appellent « mainline » ou « vanilla » en anglais. Ce sont les noyaux vanilla qui sont intégrés par les distributeurs, avec parfois l'addition de quelques patchs de sécurité, de corrections de bogue ou d'optimisations.

Processus de développement Linus Torvalds a apporté un changement radical dans la façon dont les systèmes d'exploitation sont développés, en utilisant pleinement la puissance du réseau Internet.

Le processus de développement de Linux est public sur Internet : les sources du noyau y sont visibles par tous, les modifications de ces sources sont publiées et revues sur Internet et sont également visibles de tous. Un cycle de développement incrémental et rapide a été adopté depuis le début (aujourd'hui une nouvelle version est publiée toutes les environ), qui a permis de construire autour de Linux et d'Internet par couches successives une communauté dynamique composée de développeurs, de sociétés et d'utilisateurs.

Mode de numérotation Les numéros de version du noyau sont composés de trois nombres : le premier est le numéro majeur, le second le numéro mineur. Avant l'apparition des versions 2.6.x, les numéros mineurs pairs indiquaient une version stable et les numéros mineurs impairs une version de développement. Ainsi, les versions 2.2, 2.4 sont stables, les versions 2.3 et 2.5 sont des versions de développement. Cependant, depuis la version 2.6 du noyau, ce modèle de numérotation stable/développement a été abandonné et il n'y a donc plus de signification particulière aux numéros mineurs pairs ou impairs. Le troisième nombre indique une révision, ce qui correspond à des corrections de bogues, de sécurité ou un ajout de fonctionnalité, par exemple 2.2.26, 2.4.30 ou 2.6.11. Le passage à la version 3.0 fut décidé par Linus Torvalds à l'occasion des du noyau Linux, même si la véritable raison fut plutôt arbitraireLe message de Linus sur LKML.

Depuis (date de publication du noyau 2.6.11), Greg Kroah-Hartman et Chris Wright tentent de maintenir une branche stabilisée du noyau vanilla de Linus Torvalds. Leur but est de stabiliser davantage le noyau, en intégrant des patchs de correction de bogues, de sécurité ou d'optimisation simples et concis répondant à des critères stricts. Cette branche n'intègre pas de nouvelles fonctionnalités. Leurs publications sont indiquées par un quatrième nombre de version, par exemple 2.6.11.1 ou 2.6.11.6. Le fonctionnement technique et organisationnel de cette branche sera éprouvé avec le temps, sur le moyen et long terme.

Patches Il existe une multitude de patches disponibles sur Internet au sein de la communauté de développement du noyau Linux. Les plus connus sont ceux d'Andrew Morton suffixés -mm qui intègrent des patchs de fonctionnalités et optimisations très demandées et les WOLK (, noyau surchargé fonctionnel).

La distribution Ubuntu Studio comporte également un noyau à faible latence (Low-latency Kernel) assurant pour les applications audio une latence plus faible, au prix toutefois d'une plus grande charge du système lui-même (due à des boucles de vigilance, polling) et donc d'une diminution de son throughput. Ce noyau est peu utilisé en dehors de la création musicale, qui exige aussi peu de délai que possible entre la frappe d'une touche et la production de l'effet correspondant.

Différence entre le Mainline et le Downstream Le noyau Mainline est diffusé par Linus Torvalds et ses équipes. Le noyau Downstream, est un noyau retravaillé par un fabricant, avec ses prestataires, pour être adapté sur un modèle de téléphone spécifique. Or, si un noyau ancien (downstream) fonctionnera avec un téléphone de son époque sans problème, l'absence de code source ouvert ne permettra pas aux noyaux récents de fonctionner avec le dit téléphone, à défaut d'une nouvelle adaptation, couteuse.

Linux en temps réel

Les patches d'Ingo Molnár suffixés -rt sont utilisés par les distributions Linux multimédia comme DeMuDi ; ils permettent d'obtenir les performances temps réel nécessaires au bon fonctionnement d'une station de travail multimédia professionnelle. Ingo Molnar est aussi à l'origine du débogueur du noyau kgdb.

Chronologie Cette section est à mettre à jour, il y a un trou entre la 5.11 et la 6.10.