Sortie de Linux 2.6.20

Posté par . Modéré par Anonyme.
Étiquettes :
0
5
fév.
2007
Kernel
Fidèle à son rythme de sortie quasi-bimestriel, voici le tout nouveau noyau Linux, le premier de l'année 2007.

Rappelons le processus ayant conduit à la sortie de cette nouvelle version. Après la sortie du 2.6.19, Andrew Morton a indiqué la liste des patchs suffisamment stables pouvant migrer de sa branche de test (la -mm) vers la branche de Linus pendant la période d'intégration. Cette période, d'une durée de deux semaines, permet l'ajout de toutes les nouveautés prévues.
Une fois ce délai de deux semaines écoulé, Linus annonce la sortie de la première release-candidate (la -RC1) et il n'est plus permis d'ajouter de nouvelles fonctions. Seul le travail de correction des bugs et de stabilisation est autorisé, rythmé régulièrement par les releases-candidates successives toutes les quelques semaines. La -RC3 est ainsi apparue juste avant la nuit du réveillon pour éviter, selon Linus, tout problème avec l'organisation MADR ("Mothers Against Drunk Releases").
La RC6, annoncée le 24 janvier dernier (voir le message d'annonce) devait être la version finale, cependant quelques régressions persistaient et Linus a insisté le 30 janvier pour sortir une RC7 afin de corriger cela.

En dépit des espoirs initiaux d'une version facile à développer, car sans grandes nouveautés conceptuelles, le chemin n'a pas été semé de roses. Un bug vicieux et subtil a notamment déclenché une véritable traque à grande échelle dont la saga est narrée en plusieurs épisodes sur le site Kerneltrap.
C'est Linus lui-même qui a finalement eu la peau du bug et un article explicatif (très technique) est disponible ici pour les curieux. Les nouveautés marquantes du nouveau noyau :
  • La principale innovation de la version 2.6.20 est l'intégration de la technologie de virtualisation KVM dans le noyau. C'est la première fois qu'une telle technologie est acceptée dans la branche principale (mainline) car ses concurrents (Xen et autres) sont des patchs externes. C'est la simplicité qui a payé car KVM consiste seulement en un module noyau et un composant en espace utilisateur. Il s'appuie sur les extensions hardware des processeurs récents (Intel VT et AMD SVM). Selon cet article détaillé la solution KVM est plus simple et plus maintenable et la communauté des développeurs va maintenant converger vers cette solution au détriment de Xen.

  • Une option de fonctionnement du noyau à 300 Hz a été ajoutée. Elle permet d'obtenir des nombres entiers quand on la divise par le nombre d'images par seconde des vidéos PAL ou NTSC. Les formats à 25 images/s et 30 images/s sont donc plus facilement supportés.

  • Le support du protocole UDP-Lite est ajouté dans le noyau. UDP-Lite est spécialement adapté pour le transport en streaming des flux média. Un survol technique de ce nouveau protocole est disponible sur ce wiki

  • Toujours en ce qui concerne le réseau on note que DCCP supporte maintenant l'infrastructure de sécurité SELinux ce qui permet un contrôle plus fin.

  • Les bus SCSI peuvent maintenant être scannés de façon asynchrone ce qui améliore la vitesse de démarrage.

  • Le système permettant d'observer les entrées/sorties (I/O Accounting) est largement modifié pour améliorer sa précision. Les développeurs Samba se réjouissent de cette amélioration qui va permettre d'observer plus précisément le comportement de leur logiciel dans tous les cas de figure.

  • Le système de fichier pour cluster GFS2 (introduit dans le noyau précédent) est largement amélioré. Le gestionnaire des verrous (lock manager) supporte maintenant les connections TCP.

  • La couche générique HID n'est plus réservée seulement aux pilotes des périphériques USB et accepte maintenant d'autres protocoles (Bluetooth...etc). L'utilisation de cette couche générique permet une réutilisation et un partage optimal du code.

  • Le mécanisme de Workqueue est largement modifié afin de réduire drastiquement son empreinte mémoire. Cela a conduit à des modifications de l'API et à des corrections à travers tout le noyau. Workqueue est utilisé pour gérer les processus afin de les "endormir" et les "réveiller" après un intervalle de temps spécifié.

  • Le travail d'annotation du code du noyau continue afin de permettre les travail de sparse. Cet outil, écrit à l'origine par Linus Torvalds, utilise des annotations sémantiques présentes dans le code pour faire une analyse des erreurs potentielles lors de la compilation (pointeurs mémoires, verrous...etc). Le sous-système réseau est maintenant largement annoté pour permettre cette analyse automatique.

  • Pour améliorer encore la qualité et la robustesse du noyau une infrastructure d'injection d'erreur a été ajoutée. Cela semble paradoxal mais c'est en fait très simple : le noyau Linux actuel est très stable ce qui entraîne que le code de gestion des erreurs n'est pas souvent sollicité. Pour s'assurer de la robustesse de ce code la nouvelle infrastructure va permettre de générer des erreurs afin de vérifier que le noyau se comporte comme prévu dans tous les cas imaginables. Une documentation complète est disponible pour utiliser au mieux ce mécanisme original.

  • Un nettoyage des fichiers de header de Linux a été effectué. Cela diminue le nombre d'includes afin d'accélérer la compilation du noyau.

  • Comme d'habitude énormément de pilotes sont améliorés, corrigés ou ajoutés. Il est impossible de tous les citer mais, à titre d'exemple parmi d'autres, on peut noter l'intégration du pilote "usbvision" qui permet le support générique de plus de cinquante webcams USB.


En ce qui concerne les évolutions futures du noyau Linux on peut se pencher sur les patchs qui ont rejoint la branche expérimentale -mm d'Andrew Morton.
Une première évolution sera la possibilité d'avoir des entrées/sorties asynchrones dans les fichiers tampons (Asynchronous buffered file I/O). Actuellement ces entrées/sorties asynchrones existent seulement en cas de connexion directe mais si le système de fichier utilise la couche d'abstraction (Virtual File System) alors cette possibilité n'existe plus. Une série de patchs est maintenant en phase de test afin de corriger cela.
On trouve également dans la branche -mm le support unifié des pilotes en espace utilisateur. Il peut être utile dans certains cas, par exemple quand il est trop gros pour rejoindre le noyau, de faire fonctionner un pilote en tant que programme en espace utilisateur (userspace). Afin d'éviter l'anarchie de douzaines d'implémentations différentes il sera possible d'utiliser cette future interface standard. Le support unifié permettra de n'implanter dans l'espace du noyau qu'un minuscule module qui communiquera avec le pilote complet vivant, lui, en espace utilisateur.

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.