Aller au contenu

« Noyau Linux » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Melkor73 (discuter | contributions)
→‎Faille sur les noyaux Linux 2.6 : corr fautes de frappe
Melkor73 (discuter | contributions)
corr lien
Ligne 115 : Ligne 115 :
Il s’agit d’une faille locale (mais dont rien n’empêche l’exploitation par une personne qui a déjà un accès distant à la machine) qui permet, à partir d’un simple compte utilisateur, de bénéficier d’une élévation de privilèges et ainsi avoir des droits d’administration sur la machine vulnérable.
Il s’agit d’une faille locale (mais dont rien n’empêche l’exploitation par une personne qui a déjà un accès distant à la machine) qui permet, à partir d’un simple compte utilisateur, de bénéficier d’une élévation de privilèges et ainsi avoir des droits d’administration sur la machine vulnérable.


La faille a déjà été testée avec succès sur plusieurs distributions, dont Debian, Fedora et Ubuntu. Exploitable très simplement, elle représente un danger important et les développeurs de Linux recommandent de mettre à jour rapidement son noyau. Un patch corrigeant cette faille sur les versions du noyau impactés a été très rapidement mise en ligne<ref>[http://lkml.org/lkml/2008/2/11/25 Le patch contre l'exploit vmsplice sur la LKML]</ref> (dès le {{date||10|février|2008}}) sur la [[liste de diffusion]] du noyau linux et a été intégré aux différentes distributions les jours suivants.
La faille a déjà été testée avec succès sur plusieurs distributions, dont Debian, Fedora et Ubuntu. Exploitable très simplement, elle représente un danger important et les développeurs de Linux recommandent de mettre à jour rapidement son noyau. Un patch corrigeant cette faille sur les versions du noyau impactés a été très rapidement mise en ligne<ref>[http://lkml.org/lkml/2008/2/10/153 Le patch contre l'exploit vmsplice sur la LKML]</ref> (dès le {{date||10|février|2008}}) sur la [[liste de diffusion]] du noyau linux et a été intégré aux différentes distributions les jours suivants.


== Litiges ==
== Litiges ==

Version du 15 février 2008 à 11:39

Linux
[[Fichier:Tux, le manchot |frameless |upright=0.55 |alt=Description de l'image Tux, le manchot. ]]
Description de l'image Linux 5.13.5 boot message screenshot.png.
Informations
Créateur Linus TorvaldsVoir et modifier les données sur Wikidata
Développé par Linus Torvalds et des milliers de contributeurs
Première version 0.01 ()[1]Voir et modifier les données sur Wikidata
Dernière version Modèle:Dernière version stable/Noyau Linux
Dépôt git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gitVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Environnement GNU/Linux
Type Noyau
Licence GPL
Site web www.kernel.org

Le noyau Linux est un noyau de système d'exploitation de type Unix. Le noyau Linux est un logiciel libre développé par une large communauté de contributeurs. Formellement, « Linux » est le nom du seul noyau, mais dans les faits, on appelle souvent « Linux » l'ensemble du système d'exploitation, aussi appelé « GNU/Linux », voire l'ensemble d'une distribution Linux.

Le noyau est le cœur du système, c'est lui qui s'occupe de fournir aux logiciels une interface pour utiliser le matériel. Le noyau Linux a été développé par Linus Torvalds au début des années 1990 pour les compatibles PC, d'architecture x86. Depuis, il a été porté sur nombre d'architectures dont m68k, PowerPC, StrongARM, Alpha, SPARC, MIPS, etc. Il peut être au cœur autant d'un ordinateur personnel que d'un superordinateur, voire d'un système embarqué tel un téléphone portable ou un assistant personnel.

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 avec Andrew S. Tanenbaum, professeur à l'université libre d'Amsterdam, qui avait développé Minix, Andrew Tanenbaum arguant que les noyaux modernes se devaient d'être des micro-noyaux et Linus répondant que les performances des micronoyaux 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

Le noyau Linux a vu le jour le , date à laquelle Linus Torvalds annonça sur le forum Usenet comp.os.minix la disponibilité d'une ébauche de son système d'exploitation[2]. C'était la version 0.02, la 0.01 ayant eu une diffusion plus que confidentielle[3].

Avant d'être un noyau, Linux était un émulateur de terminal que Linus utilisait pour se connecter via un modem au serveur de son université. Il fut écrit à l'origine de façon ludique et initié pour comprendre le fonctionnement de son ordinateur, un 80386, machine très moderne pour l'époque. Après ajout de diverses fonctionnalités dont un système de fichiers hérité de Minix, Linus orienta son projet vers quelque chose de plus ambitieux : un système d'exploitation aux normes POSIX.

La mise à disposition du code de Linux (qui s'était appelé Freax dans la chambre de Linus) suscita beaucoup d'intérêt de la communauté des utilisateurs de Minix. Dès lors, des centaines de programmeurs bénévoles à travers le monde ont participé à ce projet.

Développement du noyau Linux

Le noyau Linux n'est pas développé par une entreprise, mais par une communauté de développeurs bénévoles, de nombreux développeurs étant toutefois rémunérés pour ce travail par des entreprises (parfois concurrentes).

La licence du noyau Linux est la licence publique générale GNU. 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. Le noyau Linux 2.6 fournit plus de 200 appels systèmes possibles aux applications listés dans <asm/unistd.h>

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 terme 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 l'addition de quelques patches de sécurité, de corrections de bogue ou d'optimisations.

Mode de numérotation

Les numéros de version du noyau sont composés de trois chiffres : 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 chiffre 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.

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 patches 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 chiffre 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.

Les 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 patches de fonctionnalités et optimisations très demandées et les WOLK (Working Over Loaded Kernel, noyau surchargé fonctionnel).

Les patches d'Ingo Molnar 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.

Chronologie

Version Date Caractéristiques
0.01 diffusion confidentielle
0.02 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 mémoire virtuelle, système utilisable, plus de matériel supporté, diffusé en GNU GPL, consoles virtuelles
0.95 init/login, X Window est porté, un groupe de discussion existe : alt.os.linux
0.95a 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
1.2 mars 1995 Beaucoup plus d'architectures processeur, modules chargeables, ...
2.0 juillet 1996 PowerPC, Multiprocesseur, plus de matériels supportés, gestion du réseau plus complète, apparition de la mascote Tux
2.2 janvier 1999 FrameBuffer, NTFS, Joliet, IPv6,...
2.4 janvier 2001 USB, PCMCIA, I2O, NFS 3, ...
2.6 décembre 2003 ALSA, noyau préemptible, NFS 4, ...
2.6.21 avril 2007 Interface de paravirtualisation VMI, Dynticks et Clockevents, ...
2.6.22 juillet 2007. Toute nouvelle couche wifi, allocateur de mémoire SLUB, ordonnanceur CFQ, nouveaux pilotes...
2.6.23 octobre 2007 Nouvel ordonnanceur 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 janvier 2008 Unification des architectures i386 et x86_64, E/S vectorielles, authentification des périphériques USB, ...

Compilation du noyau

Le code source du noyau Linux est disponible sur le site kernel.org. Pour compiler votre nouveau noyau, tapez ces commandes dans l'ordre :

  • make mrproper
  • make xconfig ou make menuconfig ou make config ou make oldconfig
  • make dep (pas besoin sur les noyaux 2.6)
  • make clean
  • make bzImage
  • make modules
  • make modules_install


Notes : avec un noyau 2.6, il suffit, en root, de taper make menuconfig, puis make, et enfin make modules_install. Vous devrez ensuite copier le fichier arch/i386/boot/bzImage en fichier /boot/vmlinuz-(version du noyau), par la commande cp arch/i386/boot/bzImage /boot/vmlinuz-(version du noyau), puis de modifier ou ajouter une entrée dans /etc/lilo.conf, et taper la commande lilo si vous utilisez lilo, ou dans /boot/grub/menu.lst si vous utilisez grub. Certaines distributions (Debian, Ubuntu, ...) proposent un utilitaire make-kpkg pour fabriquer un paquet installable d'un noyau.

Faille sur les noyaux Linux 2.6

Une importante faille de sécurité a été mise en évidence, par les spécialistes en sécurité d'iSEC[4], le , sur l'ensemble des noyaux Linux 2.6 récents (2.6.17 à 2.6.24.1), et une preuve de concept est parue le lendemain. Il s’agit d’une faille locale (mais dont rien n’empêche l’exploitation par une personne qui a déjà un accès distant à la machine) qui permet, à partir d’un simple compte utilisateur, de bénéficier d’une élévation de privilèges et ainsi avoir des droits d’administration sur la machine vulnérable.

La faille a déjà été testée avec succès sur plusieurs distributions, dont Debian, Fedora et Ubuntu. Exploitable très simplement, elle représente un danger important et les développeurs de Linux recommandent de mettre à jour rapidement son noyau. Un patch corrigeant cette faille sur les versions du noyau impactés a été très rapidement mise en ligne[5] (dès le Année invalide (février)) sur la liste de diffusion du noyau linux et a été intégré aux différentes distributions les jours suivants.

Litiges

Simple défi d'étudiant au départ, le noyau Linux est devenu, en tant que concurrence gratuite commerciale ou non, une menace pour les autres systèmes d'exploitations commerciaux. Ces dernières années, il a été la cible de campagnes publicitaires et d'actions en justice. La nature même du développement décentralisé du noyau Linux, les milliers de participations à son évolution de la part d'entreprises ou de particuliers, et la protection du code source par la licence GPL juridiquement contestée en font une structure peu apte à se défendre de manière autonome. Face à un concurrent coriace sur le plan du rapport qualité/prix, il est donc tentant de porter la concurrence sur le terrain juridique.

  1. Sur la marque : En 1995, Linux avait acquis une certaine notoriété ; un particulier eut l'idée de déposer la marque Linux, ce que personne n'avait fait (la même chose était arrivée avec MLF quelques années avant en France). La réaction fut vive dans toute la communauté, le litige se régla à l'amiable et Linus devint propriétaire du nom Linux (et donc libre de le refuser ou non à une distribution qu'il estimerait s'écarter trop du projet initial).
  2. Sur les droits d'auteur : un procès opposa SCO à IBM au sujet du noyau Linux : voir à ce sujet SCO contre Linux.
  3. Sur les brevets logiciels : incompatibles avec l'idée de logiciel libre et celle d'interopérabilité indispensable à leurs succès, les brevets logiciels sont une épée de Damoclès pesant sur la communauté Linux, qui se mobilisa au Parlement européen, et réussit à y faire échec.

Notes

  1. (en) « It’s official, Linux was released on September 17, 1991 » (consulté le )
  2. Le message sur wikisource.
  3. Linus Torvalds a annoncé publiquement qu'il travaillait sur un nouveau système d'exploitation le .
  4. Mise en évidence de la faille vmsplice par iSec
  5. Le patch contre l'exploit vmsplice sur la LKML

Voir aussi

Articles connexes

Liens externes

Modèle:ODP

Modèle:Lien BA