Noyau Linux - Définition et Explications

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Caractéristiques techniques

Portabilité

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 (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) d'architectures.

Linux (Au sens strict, Linux est le nom du noyau de système d'exploitation libre, multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par Linus...) peut fonctionner sur des ordinateurs grand public aussi bien sur les super-calculateurs comme le Roadrunner, classé premier au Top 500 de juin 2009, dans ce même classement Linux était présent sur 88,6 % 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 (La navigation est la science et l'ensemble des techniques qui permettent de :) GPS TomTom (TomTom est un éditeur de logiciels de planification d'itinéraires et un fabricant de systèmes de navigation GPS mobiles.) ou le téléphone (Le téléphone est un système de communication, initialement conçu pour transmettre la voix humaine.) HTC Magic (MagiC est un système d'exploitation propriétaire multitâche pour ordinateurs Atari ST et compatibles. Il a été porté sur PC et Macintosh. Quelle que soit la...), équipé de la distribution Linux (Une distribution Linux (ou distro, distrib), appelée aussi distribution GNU/Linux pour faire référence aux bibliothèques et logiciels du projet GNU, est un...) Android.

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 (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble),...) d'entreprises, souvent concurrentes, comme Red Hat (Red Hat est une société multinationale d'origine américaine éditant des distributions Linux. Elle est l’une des entreprises dédiées aux logiciels Open...), Novell (Novell (NASDAQ : NOVL) est un éditeur de logiciel réputé pour son système d'exploitation réseau NetWare lancé en 1983 pour la plateforme PC (auparavant la société s'appelait Novell...), IBM (International Business Machines Corporation (IBM) est une société multinationale américaine présente dans les domaines du matériel informatique, du logiciel et des services informatiques.) ou Intel.

La licence du noyau Linux est la licence publique générale GNU (La Licence publique générale GNU, ou GNU General Public License (son seul nom officiel en anglais, communément abrégé GNU GPL voire simplement « GPL ») est une licence qui...) dans sa version 2. Cette licence est libre, ce qui permet d'utiliser, copier et modifier le code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau, compréhensible par un être humain entraîné, permettant d'obtenir un...) 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

Rôle de Linus Torvalds (Linus Benedict Torvalds, né le 28 décembre 1969 à Helsinki en Finlande, est un informaticien finlandais. Il est connu pour avoir...)

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 (L'addition est une opération élémentaire, permettant notamment de décrire la réunion de quantités ou l'adjonction de grandeurs...) 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 (Le mot puissance est employé dans plusieurs domaines avec une signification particulière :) du réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit rets », c'est-à-dire un petit filet), on appelle nœud...) Internet (Internet est le réseau informatique mondial qui rend accessibles au public des services variés comme le courrier électronique, la messagerie instantanée et le World Wide Web, en utilisant le protocole...).

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 (Il existe différents types de cycles de développement entrant dans la réalisation d'un logiciel. Ces cycles prendront en compte toutes les étapes de la...) incrémental et rapide a été adopté depuis le début (aujourd'hui une nouvelle version est publiée toutes les 8 semaines environ), qui a permis de construire (Le permis de construire ou permis de construction est un document officiel qui autorise la construction ou la rénovation d'un bâtiment à usage d'habitation, industriel ou autre.) autour (Autour est le nom que la nomenclature aviaire en langue française (mise à jour) donne à 31 espèces d'oiseaux qui, soit appartiennent au genre Accipiter, soit constituent les 5 genres...) de Linux et d'Internet par couches successives une communauté dynamique (Le mot dynamique est souvent employé désigner ou qualifier ce qui est relatif au mouvement. Il peut être employé comme :) de développeurs / sociétés / utilisateurs.

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 (Un chiffre est un symbole utilisé pour représenter les nombres.) 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 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 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 (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.), 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 patchs de fonctionnalités et optimisations très demandées et les WOLK (Working Over Loaded Kernel, noyau surchargé fonctionnel).

Les patches d'Ingo Molnár suffixés -rt sont utilisés par les distributions linux multimédia (Le mot multimédia est apparu vers la fin des années 1980, lorsque les CD-ROM se sont développés. Il désignait alors les applications qui, grâce à la mémoire du CD et aux capacités de l'ordinateur, pouvaient générer, utiliser ou...) 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

Version Date Caractéristiques
0.01 17 septembre 1991 diffusion (Dans le langage courant, le terme diffusion fait référence à une notion de « distribution », de « mise à disposition » (diffusion d'un produit, d'une information), voire de « vaporisation » (diffuseur d'un...) confidentielle
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 (Une disquette est un support de stockage de données informatiques amovible. La disquette est aussi appelée disque souple (floppy disk en...), SCSI en développement
0.12 5 janvier 1992 mémoire virtuelle (En informatique, le mécanisme de mémoire virtuelle a été mis au point dans les années 1960. Il est basé sur l'utilisation d'une mémoire de masse (type disque dur ou anciennement un...), système utilisable, plus de matériel supporté, diffusé en GNU (GNU est un projet de système d'exploitation composé exclusivement de logiciels libres.) 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 (Le mot patch est un anglicisme qui à l'origine désigne un morceau de tissu. Il est également employé pour parler d'une rustine de chambre à air. En...) 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 (UNIX (marque déposée officiellement comme UNIX, parfois aussi écrit comme Unix avec des petites capitales) est le nom d'un système d'exploitation...) classique
1.2 mars 1995 Beaucoup plus d'architectures processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur qui exécute les programmes informatiques. Avec la mémoire notamment, c'est l'un...), modules chargeables, …
2.0 juillet 1996 PowerPC (Le PowerPC est une architecture de microprocesseurs développée conjointement par Apple, IBM et Freescale (ex-Motorola Semiconducteurs). Elle utilise un modèle RISC, privilégiant pipeline et jeu d'instructions réduit....), 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 (IPv6 (Internet Protocol version 6) est un protocole réseau sans connexion de la couche 3 du modèle OSI.), …
2.4 janvier 2001 USB, PCMCIA, I2O, NFS 3, …
2.6 décembre 2003 ALSA, noyau préemptible, NFS 4, …
2.6.18 19 septembre 2006 Outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son efficacité naturelle dans l'action. Cette augmentation se traduit par la simplification des actions entreprises, par une plus grande...) Lockdep, Priority inheritance, gestion des priorités avec SMPnice, ordonnanceur CFQ, …
2.6.19 29 novembre 2006 Système de fichiers GFS2, chiffrage eCryptfs, sous-système libata, …
2.6.20 4 février 2007 Virtualisation (La virtualisation consiste à faire fonctionner sur un seul ordinateur plusieurs systèmes d'exploitation comme s'ils fonctionnaient sur des ordinateurs distincts. On appelle serveur privé virtuel (Virtual Private Server ou...) KVM, Support UDP-Lite, scan asynchrone SCSI, …
2.6.21 25 avril 2007 Interface (Une interface est une zone, réelle ou virtuelle qui sépare deux éléments. L’interface désigne ainsi ce que chaque élément a besoin de connaître de l’autre pour pouvoir...) de paravirtualisation VMI, Dynticks et Clockevents, …
2.6.22 8 juillet 2007 Toute nouvelle couche wifi, allocateur de mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) SLUB, ordonnanceur d'E/S CFQ, nouveaux pilotes …
2.6.23 9 octobre 2007 Nouvel ordonnanceur de tâches CFS, environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie humaine. Avec les enjeux écologiques actuels, le terme environnement tend...) de support des pilotes en espace utilisateur (Quand le processeur d'un système informatique possède au moins deux modes de fonctionnement, dont un mode dit superviseur qui n'impose pas de restrictions sur les instructions exécutées, et un mode dit utilisateur qui...) UIO intégré au noyau, SLUB allocateur de mémoire par défaut, …
2.6.24 24 janvier 2008 Unification (Le concept d'unification est une notion centrale de la logique des prédicats ainsi que d'autres systèmes de logique et est sans doute ce qui distingue le plus Prolog des autres...) des architectures i386 et x86_64, E/S vectorielles, authentification (L'authentification est la procédure qui consiste, pour un système informatique, à vérifier l'identité d'une entité (personne,...) 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 (La topologie est une branche des mathématiques concernant l'étude des déformations spatiales par des transformations continues (sans arrachages ni recollement des structures).) maillée unifiée, support des écrans Braille, support du PAT pour architecture (Architectures est une série documentaire proposée par Frédéric Campain et Richard Copans, diffusé sur Arte depuis 1995.) x86 (La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l'Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses processeurs à partir du Pentium.), montage "--bind" en lecture seule, gestion de droits de sécurité par processus (securebits), amélioration de la virtualisation avec KVM…
2.6.27 9 octobre 2008 Jeu de drivers webcam (Une webcam, ou cybercaméra, est une caméra conçue pour être utilisée comme un périphérique d'ordinateur, et qui produit une vidéo dont la...) GSPCA, couche réseau multi-files, UBIFS, système de debug ftrace
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 (La charge utile (payload en anglais ; la charge payante) représente ce qui est effectivement transporté par un moyen de transport donné, et qui donne lieu à un paiement ou un...) de la gestion mémoire, gestion des réseaux UWB…
2.6.29 23 mars 2009 Intégration de btrfs, SquashFS, pile WiMAX (WiMAX (acronyme pour Worldwide Interoperability for Microwave Access) est une famille de normes, certaines encore en chantier, définissant les connexions à...), amélioration d'eCryptfs, 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
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 3 décembre 2009 Écriture des données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) par BDI, Changements dans l'ordonnanceur CFS, Gestion dynamique de l'énergie (Dans le sens commun l'énergie désigne tout ce qui permet d'effectuer un travail, fabriquer de la chaleur, de la lumière, de produire un mouvement.), 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
2.6.33 24 février 2010 Système de fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : fichier des patients d'un...) DRBD (en), pilote Nouveau, transaction TCP par cookie, contrôleur IO-Block
2.6.34 16 mai 2010 Systèmes de fichier Ceph et LogFS, mise en veille asynchrone des périphériques, mécanisme de sécurité GTSM, Lockdep-RCU, VGA-Switcheroo
2.6.35 2 août 2010 Fonction cpu_stop, gestion de l'énergie, Compactage mémoire, performances réseau avec RPS et RFS, Qualité de service (La qualité de service (QdS) ou Quality of service (QoS) est la capacité à véhiculer dans de bonnes conditions un type de trafic donné, en termes de disponibilité, débit, délais de transmission, gigue,...) avec pm_qos, Gestion des interruptions

Frise chronologique

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 (Un microprocesseur est un processeur dont les composants ont été suffisamment miniaturisés pour être regroupés dans un unique circuit intégré....).

Dans la mesure où le code source du noyau Linux contient une très grande quantité (La quantité est un terme générique de la métrologie (compte, montant) ; un scalaire, vecteur, nombre d’objets ou d’une autre manière de dénommer la valeur d’une collection ou un groupe de choses.) 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 précompilé 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 (Activation peut faire référence à :) de fonctionnalités expérimentales ou l'adaptation à des plate-formes 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:

  • Y: la fonctionnalité est compilée et implantée dans l'image du noyau
  • M: la fonctionnalité est compilée comme module
  • N: la fonctionnalité est ignorée

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:

  • make (make est un logiciel traditionnel d'UNIX. C'est un « moteur de production » : il sert à appeler des commandes créant des fichiers. À la différence...) config: programme en mode texte (En informatique, le mode texte, par opposition au mode graphique, est un type d'affichage sur écran constitué uniquement de caractères.) qui énumère toutes les options et demande d'entrer son choix
  • make menuconfig: utilitaire (Le mot utilitaire peut désigner :) en mode texte écrit avec ncurses, il permet une navigation plus aisée dans la configuration
  • make gconfig: outil graphique basé sur GTK (GTK+ (The GIMP Tool Kit) est un ensemble de bibliothèques logicielles, c'est-à-dire un ensemble de fonctions informatiques, développé originellement pour les besoins du logiciel de traitement d'images The GIMP. GTK+ est maintenant...)
  • make xconfig: outil graphique basé sur Qt
  • make oldconfig: outil permettant de récupérer les paramètres de configuration d'une ancienne version du noyau afin de ne pas recommencer la configuration à zéro (Le chiffre zéro (de l’italien zero, dérivé de l’arabe sifr, d’abord transcrit zefiro en italien) est un symbole marquant une position vide dans l’écriture des nombres en notation...).

La compilation du noyau et des modules se fait par la commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un souhait impératif.) make. Cette opération peut être assez longue. 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.

La distribution Debian (Debian (/de.bjan/) est une organisation communautaire et démocratique, dont le but est le développement d'un système d'exploitation basé exclusivement sur des logiciels libres.) 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.

Gestion de versions

Le noyau a longtemps été maintenu sans système de gestion de versions, avant tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) parce que Linus Torvalds n'aimait pas les systèmes de gestion de version (La gestion de version (en anglais revision control) est une activité qui consiste à maintenir l'ensemble des versions d'un logiciel. Essentiellement utilisée dans le domaine de la création de logiciels, elle est surtout concernée...) centralisés.

En 2002, le noyau est passé (Le passé est d'abord un concept lié au temps : il est constitué de l'ensemble des configurations successives du monde et s'oppose au futur sur une échelle des temps centrée sur le...) à Bitkeeper (BitKeeper est un logiciel de gestion de version.), un système qui correspondait aux exigences techniques de Torvalds. Bitkeeper a été offert à Torvalds et à quelques autres, mais il ne s'agissait pas d'un logiciel libre (Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification, la duplication et la diffusion sont universellement autorisées sans contrepartie...), ce qui a suscité des controverses dans la communauté. Le système n'était pas interopérable avec des systèmes de gestions de version libres tels que CVS et SVN

En avril 2005, les efforts d'Andrew Tridgell pour faire de l'ingénierie (L'ingénierie désigne l'ensemble des fonctions allant de la conception et des études à la responsabilité de la construction et au contrôle des équipements d'une...) inverse (En mathématiques, l'inverse d'un élément x d'un ensemble muni d'une loi de composition interne · notée multiplicativement, est un élément y tel que x·y = y·x = 1,...) sur Bitkeeper ont conduit BitMover, l'éditeur de ce logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de traitement,...), à 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 (git est un gestionnaire de code source qui fait partie des nombreux systèmes de gestion de versions. Il a été créé par Linus Torvalds, le créateur de Linux, et est distribué sous la GNU GPL version 2. C'est donc un logiciel libre.). Git a été écrit en quelques semaines, et deux mois (Le mois (Du lat. mensis «mois», et anciennement au plur. «menstrues») est une période de temps arbitraire.) plus tard, sortait une nouvelle version du noyau développée (En géométrie, la développée d'une courbe plane est le lieu de ses centres de courbure. On peut aussi la décrire comme l'enveloppe de la famille des droites normales à la...) avec Git. Le projet (Un projet est un engagement irréversible de résultat incertain, non reproductible a priori à l’identique, nécessitant le concours...) Git a ensuite volé de ses propres ailes, puis il a été largement adopté dans la communauté du logiciel libre.

Page générée en 0.221 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique