Noyau Linux

Linux Description de l'image Tux.svg.

Informations
Créateur Linus Torvalds
Développé par Linus Torvalds et des milliers de contributeurs
Première version 0.01 (17 septembre 1991)
Dernière version 6.8.7 (17 avril 2024)
Version avancée 6.9-rc5 (21 avril 2024)
Dépôt git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git https://github.com/torvalds/linux.git
État du projet En développement permanent
Écrit en langage C et Rust
Environnement Type UNIX
Langues Anglais
Type Noyau monolithique modulaire
Politique de distribution Gratuit
Licence GPLv2, exceptés des BLOB propriétaires
Site web www.kernel.org

Couches de fonctions du Noyau Linux

Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il est utilisé dans plusieurs systèmes d'exploitation dont notamment GNU/Linux (couramment appelé « Linux ») et Android. Le noyau Linux est un logiciel partiellement libre (contenant des BLOB et des modules non-libre - consultez Linux-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 25 août 1991, 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 5 octobre 1991, 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. Enfin en février 1992, 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 commerciale.

La version Linux 1.0.0 a été lancée le 14 mars 1994 avec 176 250 lignes de code.

Initialement appelé Freax par son créateur, le projet trouve son nom définitif grâce à Ari Lemmke, 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 libres.

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 avril 2005, le nombre de lignes de code a doublé (de 4,4 millions à 8,8 millions). Début 2009, la version 2.6.30 du noyau linux est composée de plus de 11,5 millions de lignes de code dans 28 000 fichiers, alors que 2,8 millions de lignes ont été ajoutées entre Noël 2008 et janvier 2010.

Entre 2005 et mi-2009, 5 000 développeurs et 500 entreprises 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 9 semaines 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 20 ans du noyau Linux, même si la véritable raison fut plutôt arbitraire.

Depuis mars 2005 (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 (working over loaded kernel, 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.

Linux en temps réel Article détaillé : Linux-rt.

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

Chronologie des versions de Linux
Version Date Principales améliorations
0.01 17 septembre 1991 Diffusion confidentielle (10 000 lignes de codes).
0.02 5 octobre 1991 Annonces sur usenet, système quasi inutilisable.
0.03 octobre 1991 bash et gcc disponibles en binaire.
0.10 décembre 1991 Premières contributions externes, internationalisation du clavier.
0.11 mi-décembre 1991 Pilote pour disquette, SCSI en développement.
0.12 5 janvier 1992 Mémoire virtuelle, système utilisable, plus de matériel supporté, diffusé en GNU GPL, consoles virtuelles.
0.95 7 mars 1992 Init/login, X Window est porté, un groupe de discussion existe : alt.os.linux
0.95a 17 mars 1992 Nouveau mainteneur pour les linux root diskette : Jim Winstead.
0.96 - 0.99 patch level 15Z 2 ans de développement, pour l'ajout de fonctionnalités et de corrections, les forums comp.os.linux.* sont les plus fréquentés de Usenet et sont réorganisés 3 fois, signe que la communauté grandit et est très active.
1.0 mars 1994 Le noyau Linux est stable pour la production et fournit les services d'un UNIX classique (176 000 lignes de codes).
1.2 mars 1995 Beaucoup plus d'architectures processeur, modules chargeables… (311 000 lignes de codes)
2.0 juillet 1996 PowerPC, Multiprocesseur, plus de matériels supportés, gestion du réseau plus complète, apparition de la mascotte Tux.
2.1.80 janvier 1998 Prise en charge préliminaire des architectures ARM
2.2 janvier 1999 Framebuffer, NTFS, Joliet, IPv6… (1,8 million de lignes de codes)
2.4 janvier 2001 USB, PCMCIA, I2O, NFS 3, X86-64… (3,378 millions de lignes de codes)
2.6 décembre 2003 ALSA, noyau préemptible, ACL, NFS 4… (5,93 millions de lignes de codes)
2.6.16 LTS 20 mars 2006 Première version avec un support étendu, support du OCFS2, support des processeurs Cell, ajout de 13 nouveaux appels système pour les plateformes x86 et x86_64, support de cpufreq pour les Power Mac G5, amélioration de la gestion de l'énergie pour certains périphériques, support IPv6 pour le protocole DCCP, gestion des ACL pour le système de fichiers CIFS, gestion du système de fichiers HFSX, support de l'exécution d'exécutables à partir de système de fichiers plan9….
2.6.17 17 juin 2006 Support des CPU multicoeurs Niagara de Sun, support du chipset wifi Broadcom 43xx, optimisation de l'image du noyau au démarrage sur les x86, nouvel ordonnanceur optimisé pour les processeurs multicoeurs….
2.6.18 19 septembre 2006 Outil Lockdep, Priority inheritance, gestion des priorités avec SMPnice, ordonnanceur CFQ….
2.6.19 29 novembre 2006 Système de fichiers GFS2, chiffrement eCryptfs, sous-système libata, etc..
2.6.20 4 février 2007 Virtualisation KVM, Support UDP-Lite, scan asynchrone SCSI….
2.6.21 25 avril 2007 Interface de paravirtualisation VMI (Virtual Machine Interface), Dynticks et Clockevents….
2.6.22 8 juillet 2007 Toute nouvelle couche wifi, allocateur de mémoire SLUB, ordonnanceur d'E/S CFQ, nouveaux pilotes… (8,499 millions de lignes de codes).
2.6.23 9 octobre 2007 Nouvel ordonnanceur de tâches CFS, environnement de support des pilotes en espace utilisateur UIO intégré au noyau, SLUB allocateur de mémoire par défaut….
2.6.24 24 janvier 2008 Unification des architectures i386 et x86-64, E/S vectorielles, authentification des périphériques USB, ordonnancement de groupe avec CFS.
2.6.25 16 avril 2008 SMACK (alternative à SELinux), gestion du bus CAN, refonte de timerfd, amélioration de la gestion du temps réel.
2.6.26 13 juillet 2008 Intégration du débogueur du noyau kgdb, début de support des réseaux à topologie maillée unifiée, support des écrans Braille, support du PAT pour architecture x86, montage « --bind » en lecture seule, gestion de droits de sécurité par processus (securebits), amélioration de la virtualisation avec KVM.
2.6.27 LTS 9 octobre 2008 Jeu de drivers webcam GSPCA, couche réseau multi-files, UBIFS, système de debug ftrace (en).
2.6.28 24 décembre 2008 Gestionnaire de mémoire pour cartes graphiques GEM (Graphics Execution Manager), système de fichiers ext4, meilleure montée en charge de la gestion mémoire, gestion des réseaux UWB.
2.6.29 23 mars 2009 Intégration de Btrfs, SquashFS, pile WiMAX, amélioration d'eCryptfs (en), intégration de KMS, etc..
2.6.30 9 juin 2009 Intégration de NILFS, d'un cache local pour les systèmes de fichiers distants, du module de sécurité TOMOYO, du support des équipements de stockage objet (11,561 millions de lignes de codes).
2.6.31 9 septembre 2009 Prise en charge d'USB 3.0, apparition de l'API fsnotify pour la notification des évènements relatifs au système de fichiers, défragmentation à chaud d'ext4, moniteur de performances perfcounters.
2.6.32 LTS 3 décembre 2009 Écriture des données par BDI, Changements dans l'ordonnanceur CFS, Gestion dynamique de l'énergie, Gestion d'intégrité TXT, devtmpfs pour le listage des périphériques, technique KSM pour la réduction de l'empreinte mémoire de systèmes virtualisés avec KVM, prise en charge de la fonction TRIM par Btrfs.
2.6.33 LTS 24 février 2010 Système de fichier DRBD, pilote Nouveau, transaction TCP par cookie, contrôleur IO-Block, prise en charge de la fonction TRIM par ext4.
2.6.34 LTS 16 mai 2010 Systèmes de fichiers Ceph et LogFS, mise en veille asynchrone des périphériques, mécanisme de sécurité GTSM, Lockdep-RCU, VGA-Switcheroo.
2.6.35 LTS 2 août 2010 Fonction cpu_stop, gestion de l'énergie, Compactage mémoire, performances réseau avec RPS et RFS, Qualité de service avec pm_qos, Gestion des interruptions.
2.6.36 20 octobre 2010 AppArmor, réécriture de la fonction OOM Killer, outil fanotify, optimisations VFS.
2.6.37 5 janvier 2011 Amélioration des performances d'ext4 et des mécanismes de traçage (jump label), prise en charge de FITRIM (un TRIM différé) pour ext4, introduction de l'allocateur mémoire memblock en remplacement de early_res, pile PPTP, premier pilote wifi Broadcom (tous les principaux constructeurs wifi ont maintenant un pilote libre).
2.6.38 15 mars 2011 Nouvelle gestion macroscopique de la pagination, optimisation de la résolution de chemin d'accès.
2.6.39 18 mai 2011 Approche par thread pour le branchement des périphériques, intégration officielle de ipsets, prise en charge de FITRIM (un TRIM différé) par Btrfs, fin du verrou global (Big Kernel Lock).
3.0 LTS 22 juillet 2011 Nouvelle mise en cache des pages mémoire, améliorations de Btrfs, nouvelle interface d'accès à l'alarme du BIOS, suppression de prefetch, compilateur à la volée pour les instructions de comparaison de la pile réseau.
3.1 24 octobre 2011 Architecture OpenRISC, gestion de la consommation par cpupower, ajouts de fonctionnalités pour KVM, amélioration de la gestion mémoire de Xen, de la gestion des débits des disques, du Virtual File System, du protocole BATMAN, ajout de pilotes NFC
3.2 LTS 4 janvier 2012 Amélioration de CFS, ext4, Btrfs, MPI et des pilotes graphiques, algorithmes Extended Verification Module pour la vérification cryptographique et Proportional rate reduction pour la pile TCP, gestion des générateurs de nombres aléatoires numériques et des architectures Hexagon et secAMD Bulldozer, gestion dynamique du writeback, implémentation en assembleur de SHA-1, Blowfish et Twofish, RAID-5 pour EXOFS (en), API Dynamic Voltage and Frequency Scaling, lecture asynchrone pour SMB. La version 3.2.5 règle un bogue existant depuis la version 2.6.38 dans gestion de l’ASPM (Active State Power Management) qui provoquait une surconsommation d’énergie.
3.3 19 mars 2012 Intégration des pilotes Android, de libgcrypt, d'Open vSwitch, d'un pilote réseau « team », de l'architecture C6X, ajout d'un cgroup pour les ressources réseau, « naturalisation » de memcg, nouvelle infrastructure de « byte queue limits », buffer DMA, PAE pour les processeurs ARM, support de LLCP et NVM Express, nouveau gestionnaire de batterie, amélioration de ext4 et Btrfs, reconstruction « à chaud » pour le RAID, sortie audio via HDMI
3.4 20 mai 2012 Architecture x32, dm-verity dans la carte des périphériques, unification de la gestion des horloges pour l'architecture ARM, module de sécurité YAMA, amélioration de ext4, de Btrfs, des pilotes graphiques et de perf, support de Universal Flash Storage et HSI, algorithme Camellia en assembleur, domaines IRQ
3.5 21 juillet 2012 Algorithme CoDel pour la pile TCP, refonte de la table des exceptions x86, meilleure gestion de EDAC, NUMA, des espaces de noms des utilisateurs et des journaux du noyau, amélioration de Btrfs, ext4, perf et des pilotes graphiques AMD et intel, méthode autosleep, filtrage des appels systèmes par Seccomp, sondes uprobes, mode repair pour les connexions TCP
3.6 30 septembre 2012 Veille et hibernation combinées, économie d'énergie pour ATA et PCIe, améliorations de TCP, de Btrfs et ext4, de la génération d'entropie et des pilotes graphiques, suppression du cache de routage IPv4, swap sur NFS, meilleure gestion des SSD en RAID
3.7 11 décembre 2012 Compilation multiplateforme, version 64 bits et virtualisation pour l'architecture ARM, Supervisor Mode Access Prevention, gestion de la signature des modules par MODSIGN, de la Wii Balance Board, du processeur SPARC T4 (en), réécriture de KMS et de Nouveau, amélioration du pilote Radeon, de TCP, de perf, des systèmes de fichiers Btrfs et ext4, NAT IPv6, VXLAN, nettoyage des en-têtes
3.8 19 février 2013 Fin du support de i386, ajout du support de POWER8, amélioration de l'ordonnanceur NUMA, amélioration des pilotes graphiques Tegra, Intel, Nouveau et Radeon, nouveau système de fichiers F2FS et amélioration de Btrfs et ext4, amélioration de Netlink, optimisation des algorithmes de chiffrement, gestion du Wi-Fi 802.11ac et 802.11ad, espaces de nom réseau pour les utilisateurs, implémentation de la RFC5961. Ajout des conteneurs LXC.
3.9 29 avril 2013 Nouveau mode de mise en veille, regroupement des architectures ARM, amélioration des pilotes graphiques Intel, Nouveau et Radeon, RAID 5 et 6 pour Btrfs, améliorations d'IPv6, nouveau filtre dans Netfilter, verrouillage des filtres sur les socket, device-mapper-cache pour utiliser un périphérique comme cache d'un autre, amélioration de l'algorithme LZO
3.10 LTS 30 juin 2013 Ajout du support pour Unified Video Decoder (en), intégration du bcache SSD/HDD, amélioration significative du support des processeurs Intel Haswell, meilleure prise en charge de processeurs ARM 64 bits, amélioration des fonctions de virtualisation et ajout de pilotes audios. Comme à chaque nouvelle version, des mises à jour sont fournies pour les systèmes de fichiers ext4 et btrfs
3.11 2 septembre 2013 Compression des pages de swap, compression du noyau en LZ4 pour l'architecture ARM, optimisation de la création de fichiers temporaires, améliorations pour les architectures ARM et Aarch64, des pilotes graphiques intel, nVidia et ATI/AMD, réduction de la consommation des cartes graphiques par Dynamic Power Management et Active State Power Management, améliorations d'ext4, Btrfs, XFS, F2FS et Lustre
3.12 LTS 3 novembre 2013 Amélioration des performances de cpufreq, render nodes pour DRM, gestion des droits pour les tampons graphiques, infoframes HDMI et ultra HD, endormissement profond pour les processeurs graphiques Haswell, extinction automatique et décodage matériel VP3-VP4 pour les cartes nVidia, meilleure gestion de l'énergie pour les cartes ATI/AMD, prise en charge des cœurs graphiques Adreno, amélioration des performances de ext4 et F2FS
3.13 20 janvier 2014 Mécanisme UEFI Common Platform Error Record, earlyprintk pour UEFI, seqcount/seqlocks dans lockdep, équilibrage NUMA automatique, limitation de consommation des processeurs intel, amélioration du pilote pour les GPU ARM Adreno et les cartes nVidia, son sur HDMI et gestion de l'énergie pour les GPU AMD/ATI, gestion des processeurs Broadwell (microarchitecture) (en) et du Display Serial Interface, remplacement de iptables par nftables, file d'attente multiple pour l'écriture de fichiers par les systèmes multi-cœurs, meilleure gestion du loginuid, amélioration de /dev/urandom
3.14 LTS 31 mars 2014 Support des coprocesseurs cryptographiques AMD, du chipset Intel Merrifield et de nouveaux processeurs ARM et MIPS, amélioration des pilotes graphiques AMD et intel, accélération pour les GPU nVidia GK110/GK208, adresses IPv6 temporaires en espace utilisateur, bouchon automatique sur TCP, débogueur pour BSD Packet Filter, amélioration de Btrfs et F2FS, amélioration de la virtualisation par Xen.
3.15 8 juin 2014 Prise en charge du mode mixte EFI, prise en charge du jeu d'instruction AVX-512AVX-512, amélioration de l'ordonnanceur, abandon d'anciennes plateformes x86, amélioration de la gestion des touches de luminosité, amélioration des pilotes graphiques libres, amélioration de la protection contre les attaques par déni de service, prise en charge du niveau de sécurité 4 en Bluetooth, stabilisation des systèmes de fichier ext3/4, et amélioration de XFS, Btrfs, F2FS
3.16 LTS 3 août 2014 Amélioration des pilotes graphiques libres, TCP Fast Open disponible pour IPv6, corrections de vulnérabilités, améliorations des systèmes de fichiers XFS, Btrfs, F2FS, Reiser4 et NFS
3.17 5 octobre 2014 Prise en charge du mode inactif par la génération Broadwell (microarchitecture) (en), support de nouvelles puces ARM, fin de la prise en charge des architectures IBM POWER3 et IBM RS64, amélioration des pilotes graphiques libres, corrections de vulnérabilités, améliorations des systèmes de fichiers F2FS, NFS, XFS et Btrfs
3.18 LTS 7 décembre 2014 Accélération de la mise en veille, amélioration du support de CLANG, améliorations des pilotes graphiques libres, corrections de vulnérabilités, améliorations des systèmes de virtualisation Xen et KVM, améliorations des systèmes de fichiers F2FS, NFS, OverlayFS, Ceph
3.19 8 février 2015 Support de nouvelles puces ARM, prise en charge de la technologie Intel MPX (en), amélioration de la gestion du bug de l'an 2038, amélioration des pilotes graphiques libres, corrections de vulnérabilités, améliorations des systèmes de fichiers F2FS, NFS, OverlayFS, Ceph, Btrfs et SquashFS, améliorations des systèmes de virtualisation Xen
4.0 12 avril 2015 Mise à jour du noyau à la volée, support des puces Trusted Platform Module 2.0, amélioration des pilotes graphiques libres, corrections de vulnérabilités, améliorations des systèmes de fichiers F2FS, OverlayFS, Ceph et Btrfs, améliorations des systèmes de virtualisation KVM et Virtio
4.1 LTS 21 juin 2015 Support de nouvelles puces (ARM, Xilinx, Qualcomm), amélioration de la gestion de l’énergie, importante mise à jour de l'architecture x86, correction de vulnérabilités, amélioration des pilotes graphique libres, des systèmes de fichiers et des systèmes de virtualisation
4.2 30 août 2015 Support de nouvelles puces (ARM, Hitachi H8), amélioration des verrous, amélioration des performances réseaux, amélioration des modules de sécurité, correction de vulnérabilités, amélioration des pilotes graphique libres, des systèmes de fichiers Btrfs, Ext4, FUSE, F2FS et des systèmes de virtualisation KVM et Xen
4.3 1er novembre 2015 Intel Skylake Graphics activé par défaut, support de l'AMD Radeon R9 Fury, support OpenGL pour VMware, réécriture du pilote NVIDIA/Nouveau, disparition du pilote EXT3 (pris en charge par le pilote EXT4), nombreuses améliorations pour XFS, EXT4, F2FS, Btrfs, RAID5/6 et TRIM.
4.4 LTS 10 janvier 2016 Support pour l'accélération graphique en machine virtuelle, amélioration des I/O (directes et asynchrones), support pour les SSD Open-channel, journalisation du RAID5 dans la couche MD (RAID/LVM), les programmes eBPF peuvent être utilisés par des utilisateurs non privilégiés, nouveau pilotes.
4.5 13 mars 2016 Améliore la gestion de la consommation d'énergie. Support préliminaire pour AMD PowerPlay (en). Retravail massif des architectures ARM v6 et ARM v7.
4.6 15 mai 2016 Ajout du système de fichiers OrangeFS (en), ajout de la gestion de l’USB 3.1, gère la version 5 du protocole B.A.T.M.A.N..
4.7 24 juillet 2016 Gestion des manettes de la Xbox One de Microsoft, du Thunderbolt (interface) d’Apple/Intel, et de l'USB/IP.
4.8 4 septembre 2016 Supporte l'overclocking de AMDGPU (grâce à la prise en charge d’OverDrive).
4.9 LTS 11 décembre 2016 Améliorations concernant la sécurité du noyau. AMDGPU supporte AMD PowerPlay (en). Compatible avec Raspberry Pi Zero.
4.10 30 avril 2017 Améliorations (exː Amlogic S905) et corrections (exː AMD Ryzen).
4.11 1er mai 2017 Améliorations et corrections.
4.12 2 juillet 2017 Apporte le support de l'USB Type-C et d'IMSM (Intel Matrix RAID (en) Storage Manager).
4.13 3 septembre 2017 Améliorations (ext4, I/O, accélération de TLS) et corrections.
4.14 LTS 12 novembre 2017 Hausse de la mémoire vive maximale gérée sur les architectures x86_64, Support de nouveaux appareils ARM et corrections.
4.15 28 janvier 2018 Améliorations concernant la résistance à Meltdown (vulnérabilité) et à Spectre (vulnérabilité), nombreuses améliorations concernant AMDGPU.
4.16 16 mai 2018 Améliorations concernant la résistance aux failles de sécurité dans les CPU. Ajout de la seconde partie du code concernant AMD Secure Encrypted Virtualization (en).
4.17 3 juin 2018 Améliorations concernant le noyau 4.17 .
4.18 12 août 2018 Améliorations concernant le noyau 4.18 .
4.19 LTS 22 octobre 2018 Améliorations concernant le noyau 4.19 .
4.20 23 décembre 2018 Améliorations concernant le noyau 4.20 .
5.0 3 mars 2019 Amélioration du pilote libre pour les AMD Radeon VII, portant le rendu à un niveau jamais atteint par aucun pilote libre de GPU et venant concurrencer frontalement le pilote propriétaire pour Nvidia.
5.1 5 mai 2019 Améliorations concernant VFS avec l'ajout de fsopen, améliorations des io asynchrones avec l'intégration de io_uring.


5.2 7 juillet 2019 Améliorations concernant le noyau 5.2 .
5.3 15 septembre 2019 Améliorations concernant le noyau 5.3 .
5.4 24 novembre 2019 Améliorations concernant le noyau 5.4 .
5.5 26 janvier 2020 Améliorations concernant le noyau 5.5 .
5.6 29 mars 2020 Améliorations concernant le noyau 5.6 .
5.7 31 mai 2020 Améliorations concernant le noyau 5.7 .
5.8 2 août 2020 Améliorations concernant le noyau 5.8 .
5.9 11 octobre 2020 Améliorations concernant le noyau 5.9 .
5.10 13 décembre 2020 Améliorations concernant le noyau 5.10 .
5.11 14 février 2021 Améliorations concernant le noyau 5.11 .


Source : www.kernel.org

 

Gestion de versions

Le noyau a longtemps été maintenu sans système de gestion de versions, avant tout parce que Linus Torvalds n'aimait pas les systèmes de gestion de version centralisés.

En 2002, le noyau est passé à Bitkeeper, un système de gestion de versions propriétaire qui correspondait aux exigences techniques de Linus Torvalds. L'utilisation de ce logiciel était offerte gratuitement aux développeurs du noyau. Cependant, ne s'agissant pas d'un logiciel libre, le choix de ce produit a suscité des controverses dans la communauté. Le système n'était, par exemple, pas interopérable avec des systèmes de gestion de versions libres tels que CVS et SVN.

En avril 2005, les efforts d'Andrew Tridgell pour faire de l'ingénierie inverse sur Bitkeeper ont conduit BitMover, l'éditeur de ce logiciel, à arrêter son soutien au développement de Linux. En réaction, Linus Torvalds et quelques autres ont développé un nouveau système de gestion de versions : Git. Une première version de Git a été écrite en quelques semaines, et deux mois plus tard, sortait une nouvelle version du noyau développée avec Git. Le développement et la maintenance du logiciel Git a ensuite été rapidement laissé à Junio Hamano et à la communauté. Il est depuis largement adopté, entre autres, par la communauté du logiciel libre.

Caractéristiques techniques

Compilation du noyau

Comme tous les programmes informatiques, le noyau Linux est écrit sous forme de code source, et doit être transformé en binaire exécutable pour être compris par le microprocesseur.

Dans la mesure où le code source du noyau Linux contient une très grande quantité de fonctionnalités, l'utilisateur peut choisir de n'intégrer que celles qui lui sont utiles ou les mieux adaptées (de nombreuses fonctionnalités sont concurrentes) : c'est l'étape de configuration du noyau.

La grande majorité des distributions GNU/Linux installent un noyau compilé préalablement qui répond aux besoins des postes de travail et serveurs. Il est donc rare qu'un utilisateur de Linux ait à compiler un noyau. La compilation permet d'adapter le noyau à des besoins spécifiques comme le support de matériels peu répandus, l'activation de fonctionnalités expérimentales ou l'adaptation à des plateformes particulières comme des systèmes embarqués.

Le code source du noyau Linux est disponible sur le site kernel.org, mais les distributions GNU/Linux fournissent également des sources empaquetées sur leurs dépôts.

L'étape la plus importante de la compilation d'un noyau personnalisée est la configuration du noyau. Les options de configuration sont déclarées dans le fichier .config, chacun correspond à une fonctionnalité du noyau, qu'on décide d'utiliser ou non. Trois choix sont généralement possibles :

Certaines options consistent en un choix binaire : la fonctionnalité est incluse dans l'image noyau ou n'est pas compilée.

Il existe plusieurs outils pour régler la configuration :

La compilation du noyau et des modules se fait par la commande make. Cette opération peut être assez longue, cependant l'utilisation de l'argument -j permet de réduire le temps de compilation. Ceci au détriment de la réactivité des autres programmes et donc du système d'exploitation. L'installation est automatisée, les commandes make install et make modules_install permettent respectivement d'installer l'image du noyau et ses modules.

Pour permettre l'amorçage du système avec la nouvelle image de noyau, il est nécessaire de configurer le chargeur de démarrage (LILO, GRUB) pour qu'il exécute l'image du noyau au démarrage. Avec (GRUB, GRUB2) la commande update-grub automatise la configuration.

La distribution Debian fournit un utilitaire, make-kpkg qui automatise les étapes ci-dessus et crée des paquets Debian. Ceci permet ensuite un déploiement facile sur un grand nombre de machines. Sinon, toujours pour debian, on peut entrer les commandes sudo su ; make menuconfig ; make deb-pkg ; cd ../ ; dpkg -i *deb

Interfaces

System Call Interface et Linux Standard Base

Portabilité

L'ubiquité de noyau Linux

Bien que le but initial du projet était seulement de fournir un noyau de type UNIX sur les architectures x86, la disponibilité des sources a permis à des contributeurs de l'adapter à un très grand nombre d'architectures.

Linux peut fonctionner sur des ordinateurs grand public aussi bien que sur les super-calculateurs classés premiers au Top 500 : dans le classement de novembre 2021, Linux est présent sur 100 % des machines.

Le noyau est également utilisé sur des systèmes embarqués, pourvus d'un matériel plus modeste ; parmi les exemples les plus connus, on peut citer les systèmes de navigation par satellite TomTom ou les téléphones équipés de la distribution Linux Android.

Codage des caractères

Alors que la plupart des applications sont développées pour travailler avec des codages de caractères particuliers, la conception du noyau Linux est telle que le codage des caractères utilisé n'est pas connu. En particulier, comme dans les anciens Unix, le nom des fichiers est considéré comme une chaîne d'octets, sans qu'il soit possible de savoir de manière déterministe quel texte spécifique elle représente, en l'absence de la connaissance du codage de caractères utilisés.

Pour ce qui est du shebang, le noyau de Linux considère que les scripts seront écrits dans un codage de caractère étendant l'ASCII, sans inclure d'octet indicateur avant le premier caractère, comme cela peut se produire en Unicode. Malgré tout, du texte Unicode peut transiter dans le noyau, notamment lors de l'accès aux systèmes de fichiers NTFS ou CIFS/Samba.

Litiges

Simple hobby d'un étudiant au départ, le noyau Linux a permis l'émergence de systèmes d'exploitation gratuits en concurrence directe avec les autres systèmes d'exploitation commerciaux. Depuis sa mise à disposition sur de nombreuses architectures (après la version 1.0), il a été la cible d'actions en justice :

Critiques

Brad Spengler, développeur chez grsecurity, accuse le noyau Linux de centrer parfois ses efforts sur les fonctionnalités au détriment de la sécurité. Il prétend que Linus Torvalds lui aurait dit ne pas être intéressé par l’ajout d’options de sécurité utiles pour éviter des dépassements de tampon, car cela ralentirait le chargement des applications.

Il reproche l’absence d’une personne chargée officiellement de la sécurité, avec qui il serait possible de communiquer en privé en toute sécurité. À la place, la seule solution est d’envoyer un courriel sur une liste de diffusion relative aux questions de sécurité où les failles découvertes sont parfois utilisées à des fins malveillantes avant qu’une mise à jour de sécurité ne soit diffusée, alors que les usagers de Linux ne sont pas au courant de l’existence de cette faille.

Enfin, il remet en cause l’implantation du système LSM depuis la version 2.6 du noyau qui aurait été implanté par laxisme et aurait facilité l’insertion de rootkits invisibles au sein du système en les faisant passer pour des modules de sécurité. Cette critique n’est plus d’actualité grâce aux modifications apportées depuis la version 2.6.24.

Notes et références

  1. (en) « It’s official, Linux was released on September 17, 1991 » (consulté le 10 avril 2018)
  2. Greg Kroah-Hartman, « Linux 6.8.7 », 17 avril 2024 (consulté le 17 avril 2024)
  3. Linus Torvalds, « Linux 6.9-rc5 », 21 avril 2024 (consulté le 23 avril 2024)
  4. (en) Linus Benedict Torvalds, « comp.os.minix », août 1991 (consulté le 6 septembre 2009)
  5. Cette information est issue du document Naissance de Linux, disponible sur Wikisource. On y trouve les messages en question et leurs traductions.
  6. Release notes for Linux v0.12
  7. (en) « Linux kernel version 1.0.0 released », sur www.webdevelopersnotes.com (consulté le 7 décembre 2017)
  8. (en) Nate Larkin, Samson and the Pirate Monks : Calling Men to Authentic Brotherhood, Thomas Nelson, 18 février 2007, 224 p. (ISBN 978-1-4185-7769-8, lire en ligne)
  9. D’après Lars Wirzenius dans une présentation donnée en 1998 : Linux Anecdotes
  10. « U.S. Reg No: 1916230 », United States Patent and Trademark Office (consulté le 1er avril 2006)
  11. Sébastien Broca, Utopie du logiciel libre : du bricolage informatique à la réinvention sociale, Éd. le Passager clandestin, 2013 (ISBN 978-2-916952-95-6 et 2916952950, OCLC 867598251, lire en ligne)
  12. la cathédrale et le bazaar, d’Eric S. Raymond.
  13. The Linux Foundation, « Linux Kernel Development », 2009 (consulté le 4 février 2010)
  14. « The Linux Kernel Open Source Project: Languages Page », sur Open Hub (consulté le 30 septembre 2015)
  15. Open Source : 75 % des contributeurs de Linux sont rémunérés sur ZDNet
  16. Le message de Linus sur LKML
  17. Annonce de Linux 2.1.80
  18. Sortie du noyau 2.6.16 sur LinuxFr.org
  19. Sortie du noyau 2.6.17 sur LinuxFr.org
  20. Sortie du noyau 2.6.18 sur LinuxFr.org
  21. Sortie du noyau 2.6.19 sur LinuxFr.org
  22. Sortie du noyau 2.6.20 sur LinuxFr.org
  23. Sortie du noyau 2.6.21 sur LinuxFr.org
  24. Sortie du noyau 2.6.22 sur LinuxFr.org
  25. Sortie du noyau 2.6.23 sur LinuxFr.org
  26. Sortie du noyau 2.6.24 sur LinuxFr.org
  27. Sortie du noyau 2.6.25 sur LinuxFr.org
  28. Sortie du noyau 2.6.26 sur LinuxFr.org
  29. Sortie du noyau 2.6.27 sur LinuxFr.org
  30. Sortie du noyau 2.6.28 sur LinuxFr.org
  31. Sortie du noyau 2.6.29 sur LinuxFr.org
  32. Sortie du noyau 2.6.30 sur LinuxFr.org
  33. Sortie du noyau 2.6.31 sur LinuxFr.org
  34. Sortie du noyau 2.6.32 sur LinuxFr.org
  35. Sortie du noyau 2.6.33 sur LinuxFr.org
  36. Sortie du noyau 2.6.34 sur LinuxFr.org
  37. Sortie du noyau 2.6.35 sur LinuxFr.org
  38. Sortie du noyau 2.6.36 sur LinuxFr.org
  39. Sortie du noyau 2.6.37 sur LinuxFr.org
  40. Sortie du noyau 2.6.38 sur LinuxFr.org
  41. Sortie du noyau 2.6.39 sur LinuxFr.org
  42. « Sortie du noyau Linux 3.0 », sur linuxfr.org, 22 juillet 2011 (consulté le 22 avril 2015)
  43. « Sortie du noyau Linux 3.1 », sur linuxfr.org, 24 octobre 2011 (consulté le 22 avril 2015)
  44. « Sortie du noyau Linux 3.2 », sur linuxfr.org, 5 janvier 2012 (consulté le 22 avril 2015)
  45. « Sortie du noyau Linux 3.3 », sur linuxfr.org, 19 mars 2012 (consulté le 22 avril 2015)
  46. « Sortie du noyau Linux 3.4 », sur linuxfr.org, 21 mai 2015 (consulté le 22 avril 2015)
  47. « Sortie du noyau Linux 3.5 », sur linuxfr.org, 22 juillet 2012 (consulté le 22 avril 2015)
  48. « Sortie du noyau Linux 3.6 », sur linuxfr.org, 1er octobre 2012 (consulté le 22 avril 2015)
  49. « Sortie du noyau Linux 3.7 », sur linuxfr.org, 11 décembre 2012 (consulté le 22 avril 2015)
  50. « Sortie du noyau Linux 3.8 », sur linuxfr.org, 19 février 2015 (consulté le 22 avril 2015)
  51. « Sortie du noyau Linux 3.9 », sur linuxfr.org, 29 avril 2013 (consulté le 22 avril 2015)
  52. « Sortie du noyau Linux 3.10 », sur linuxfr.org, 3 juillet 2013 (consulté le 22 avril 2015)
  53. « Sortie du noyau Linux 3.11 », sur linuxfr.org, 3 septembre 2013 (consulté le 22 avril 2015)
  54. « Sortie du noyau Linux 3.12 », sur linuxfr.org, 6 novembre 2013 (consulté le 22 avril 2015)
  55. « Sortie du noyau Linux 3.13 », sur linuxfr.org, 21 janvier 2015 (consulté le 22 avril 2015)
  56. (en) « Linux 3.14 Supports AMD's Cryptographic Coprocessor - Phoronix », sur phoronix.com (consulté le 24 février 2021).
  57. « Sortie du noyau Linux 3.14 », sur linuxfr.org
  58. « Sortie du noyau Linux 3.15 », sur linuxfr.org, 12 juin 2014 (consulté le 22 avril 2015)
  59. « Sortie du noyau Linux 3.16 », sur linuxfr.org, 7 août 2014 (consulté le 22 avril 2015)
  60. « Sortie du noyau Linux 3.17 », sur linuxfr.org, 13 octobre 2014 (consulté le 22 avril 2015)
  61. « Sortie du noyau Linux 3.18 », sur linuxfr.org, 17 décembre 2014 (consulté le 22 avril 2015)
  62. « Sortie du noyau Linux 3.19 », sur linuxfr.org, 16 février 2015 (consulté le 22 avril 2015)
  63. « Sortie du noyau Linux 4.0 », sur linuxfr.org, 22 avril 2015 (consulté le 22 avril 2015)
  64. « Sortie du noyau Linux 4.1 - LinuxFr.org », sur linuxfr.org (consulté le 26 juillet 2015)
  65. « Sortie du noyau Linux 4.2 - LinuxFr.org », sur linuxfr.org (consulté le 17 septembre 2015)
  66. (en) « Sortie du noyau Linux 4.4 - kernelnewbies.org »
  67. « Sortie du noyau Linux 4.5 - LinuxFr.org », sur linuxfr.org (consulté le 20 avril 2016)
  68. « Sortie du noyau Linux 4.6 - LinuxFr.org », sur linuxfr.org (consulté le 6 juin 2016)
  69. « Sortie du noyau Linux 4.7 - LinuxFr.org », sur linuxfr.org (consulté le 28 septembre 2016)
  70. « Sortie du noyau Linux 4.8 - LinuxFr.org », sur linuxfr.org (consulté le 16 décembre 2016)
  71. « Sortie du noyau Linux 4.9 - LinuxFr.org », sur linuxfr.org (consulté le 8 février 2017)
  72. « Sortie du noyau Linux 4.10 - LinuxFr.org », sur linuxfr.org (consulté le 8 février 2017)
  73. « Sortie du noyau Linux 4.11 - LinuxFr.org », sur linuxfr.org (consulté le 26 juin 2020)
  74. « Linux_4.12 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  75. « Linux_4.13 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  76. « Linux_4.14 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  77. « Linux_4.15 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  78. « Linux_4.16 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  79. « Linux_4.17 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  80. « Linux_4.18 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  81. « Linux_4.19 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  82. « Linux_4.20 - Linux Kernel Newbies », sur kernelnewbies.org (consulté le 24 février 2021).
  83. « Sortie du noyau Linux 5.0 - LinuxFr.org », sur linuxfr.org (consulté le 24 février 2021)
  84. « Sortie du noyau Linux 5.1 - LinuxFr.org », sur linuxfr.org (consulté le 24 février 2021)
  85. http://lkml.iu.edu/hypermail/linux/kernel/1907.0/05444.html
  86. https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/
  87. https://lore.kernel.org/lkml/CAHk-=wjmzaD=BZ1hjUYu+RTnSGDLfCRwCdg99GeQpCjEwo9uzw@mail.gmail.com/
  88. https://lore.kernel.org/lkml/CAHk-=wigRZ6TSJU09bMk3Df2DiOw83B7TrQUq+iXroQCK5EVAQ@mail.gmail.com/
  89. https://lore.kernel.org/lkml/CAHk-=wi9ZT7Stg-uSpX0UWQzam6OP9Jzz6Xu1CkYu1cicpD5OA@mail.gmail.com/
  90. https://lore.kernel.org/lkml/CAHk-=wiZGrCkiBB1V7bxp8NZH6yWi9mPM4ptMW16OzOiNprBFA@mail.gmail.com/
  91. https://lore.kernel.org/lkml/CAHk-=wj+mDPbj8hXspXRAksh+1TmPjubc9RNEbu8EVpYyypX=w@mail.gmail.com/
  92. https://lore.kernel.org/lkml/CAHk-=wi-u86++np80GQvgDuARdt9xpBNho6SjHLmYgm8jibGag@mail.gmail.com/
  93. https://lore.kernel.org/lkml/CAHk-=whCKhxNyKn1Arut8xUDKTwp3fWcCj_jbL5dbzkUmo45gQ@mail.gmail.com/
  94. https://lore.kernel.org/lkml/CAHk-=wg8LpRi9+P2_V+ehJ2_EoJifNh2QmVf47aLXfkCd-1UAQ@mail.gmail.com/
  95. Distribution du noyau Linux
  96. "NOTE! I detest the centralized SCM model" Message de Torvalds sur la Kernel Mailing List
  97. Linux Torvalds, « Kernel SCM saga.. », 2005 (consulté le 5 novembre 2009)
  98. (en) Linux Kernel Mailing List, « Linux 2.6.12 », 17 juin 2005
  99. « List Statistics | TOP500 », sur www.top500.org (consulté le 22 novembre 2021)
  100. Linux Journal 1997
  101. Le Monde informatique 07/07/2005
  102. (en) John P. Mello Jr., « Developer Raps Linux Security », sur LinuxInsider, 1er janvier 2005 (consulté le 13 janvier 2013)
  103. (en) politique envers le système LSM sur grsecurity.net
  104. (en) Article sur lwn.net sur le passage en API statique de LSM

Annexes

Articles connexes

Filmographie

Liens externes