URL: https://linuxfr.org/news/sortie-du-noyau-linux-3-8 Title: Sortie du noyau Linux 3.8 Authors: antistress Davy Defaud, Batchyx, baud123, detail_pratique, yogitetradim, Anonyme, Spack, Loïc Blot, claudex, NeoX, Akiel, Benoît Sibaud, Christophe Turbout, Florent Zara, RbN et Strash Date: 2012年12月13日T23:22:34+01:00 License: CC By-SA Tags: coulisses, linus_torvalds, alan_cox, f2fs, lwn, linux et kernel Score: 91 La sortie de la version stable 3.8 du noyau Linux [vient d’être annoncée](http://lkml.indiana.edu/hypermail/linux/kernel/1302.2/00936.html) par Linus Torvalds. Le nouveau noyau est, comme d’habitude, téléchargeable sur les serveurs du site _kernel.org_. Le détail des évolutions, nouveautés et prévisions est dans la seconde partie de la dépêche (qui est sous licence libre CC BY-SA). À noter, une nouvelle survenue pendant le développement de cette version, dont l’incidence sur les développements futurs reste inconnue : [Alan Cox](http://fr.wikipedia.org/wiki/Alan Cox "Définition Wikipédia"), qui a été employé successivement par Red Hat et Intel, [a décidé de quitter Intel et le développement du noyau](https://plus.google.com/u/0/111104121194250082892/posts/KW3TdRYwjr9) (dont il est un des piliers) pour raisons familiales. _Merci aux participants à la rédaction de cette dépêche : Batchyx (notamment toute la partie Réseau), detail_pratique, yogitetradim, Spack, Ner’zhul, Étienne Bersac (notamment les parties « Optimisation pour architecture NUMA » et « Virtualisation »), Pierre Mazière, baud123, Xavier Claude, Akiel, Christophe Turbout, Strash et RbN._ ---- [What’s new in Linux 3.8 — The H Open ](http://www.h-online.com/open/features/What-s-new-in-Linux-3-8-1804240.html) [KernelNewbies 3.8 page](http://kernelnewbies.org/Linux_3.8) ---- #La phase de test ##RC-1 : beaucoup de commits et un peu de vin chaud La version [RC-1](https://lkml.org/lkml/2012/12/21/430) a été annoncée par Linus le 21 décembre 2012 : « La plus longue nuit de l’année est derrière nous1, et quoi de mieux à faire que se prendre un bon vin chaud, s’installer confortablement, se relaxer et jouer avec la dernière RC du noyau ? C’était une grande fenêtre de fusion : nous avons plus de _commits_ que n’importe quel autre noyau de la série 3.x (cependant la version 3.2-rc1 était presque aussi importante). En d’autres mots, c’était une fenêtre de fusion mouvementée. _Diffstat_ semble normal : à peu près 63 % des _patches_ sont dans les pilotes _— staging_, réseau, SCSI, GPU, audio, DRBD, etc. —, 18 % de mises à jour dans l’architecture (avec divers changements dans la plate‐forme ARM, qui constituent la plus grosse partie — soupir), et le reste vient de « divers », tels le cœur du réseau, les systèmes de fichiers (un nouveau système de fichiers, F2FS, optimisé pour les mémoires Flash) et des fichiers _include_. Allez‐y, testez. » _Linus_ (1) _Et par « nous », je veux principalement dire les gens dans le même fuseau horaire et le même hémisphère que moi. Parce que je suis trop égocentrique pour me soucier des autres. »_ ##RC-2 : une RC de taille raisonnable pour la nouvelle année La version [RC-2](http://lkml.indiana.edu/hypermail/linux/kernel/1301.0/00436.html) est sortie le 2 janvier 2013 : « C’est une nouvelle année, les gens retournent travailler, et essayent désespérément d’oublier toute la nourriture qu’ils ont ingurgitée en excès durant ces deux dernières semaines. Et eh, pour célébrer cela, voici la RC2 ! Le correctif est relativement petit, et largement dominé par les mises à jour pour processeurs graphiques et la suppression triviale de `__devinit/exit` dans la couche [I2C](http://fr.wikipedia.org/wiki/I%C2%B2C). Mais il y a quelques travaux sur les systèmes de fichiers (ext4, eCryptfs, Ceph), et quelques correctifs de machines virtuelles ; ainsi que quelques tardifs nettoyages sur ARM OMAP. Le résumé des modifications est en annexe, et mon _« merge log »_ ressemble à ça :> Wolfram Sang : i2c __dev* suppression d’attributs David Miller : Correctifs réseau Eric Biederman : Correctifs d’espaces de noms Guenter Roeck : Correctifs sur hwmon Olof Johansson : Correctifs sur ARM SoC, tardifs nettoyages sur OMAP pour ARM Dave Airlie : Mise à jour de DRM Ted Ts’o : Correctifs de bogues sur ext4 Sage Weil : Correctifs sur Ceph Tyler Hicks : Correctifs sur eCryptfs Bjorn Helgaas : Mises à jour PCI Wim Van Sebroeck : Correctifs sur _watchdog_ Bryan Wu : Correctifs sur LED Allez‐y, testez. » _Linus_ ##RC-3 : fin des vacances, une RC de taille raisonnable mais pas anodine pour autant La version [RC-3](http://lkml.indiana.edu/hypermail/linux/kernel/1301.1/01491.html) est sortie le 9 janvier suivant : « Les vacances sont terminées et les choses commencent à revenir à la normale. À l’exception de Greg, je suppose, qui doit probablement essayer de s’extraire de sa montagne de courriels. Une nouvelle semaine, une nouvelle version candidate. De taille plutôt normale. La plupart des changements concernent des pilotes et sont répartis un peu partout pour effacer les dernières traces de `__dev[init|exit]`, un tas d’entre eux étant d’une seule ligne . Mais, à part ça, il y a de vraies mises à jour (les pilotes graphiques se distinguent — principalement Radeon et Exynos), du travail au niveau des architectures (ARM, PowerPC, MIPS et MicroBlaze), des systèmes de fichiers (F2FS, GFS, CIFS et NFS) et du réseau (Netfilter et Sun RPC). Et j’espère vraiment que les choses vont se calmer. J’ai conscience qu’il y a eu des _patches_ de vacances rejetés, mais essayons avant tout d’avoir une RC4 vraiment plus petite. OK ? » _Linus_ ##RC-4 : une RC calme qui sort le jour des enfants La version [RC-4](https://lkml.org/lkml/2013/1/17/634) a été annoncée par Linus le 17 janvier : « Salut, déjà une nouvelle semaine ! En fait, ça m’a tellement surpris que j’ai eu besoin d’un jour supplémentaire. Le concept "sortie en milieu de semaine" me semble bizarre. Ceci m’a conduit à me demander quel était le jour le plus commun pour une sortie, et statistiquement, la plupart des sorties ont lieu un dimanche. L’"astuce Git de la semaine" ressemble à ça : `git log --no-walk --pretty="%ad" $(git tag -l)` qui peut ensuite être redirigé vers : `cut -d' ' -f1 | sort | uniq -c | sort -n` afin de voir l’ensemble des statistiques des étiquettes Git. Cette digression mise à part, je peux joyeusement annoncer que la RC4 est plus petite que la RC3 malgré le jour supplémentaire, même s’il s’en faut de peu. Il n’y a pas vraiment grand‐chose qui sorte du lot : à part un nouveau pilote sans fil (le pilote Atheros Wilocity) et des changements OMAP DRM, le _diffstat_ est plutôt plat et diffus. Ce qui signifie de nombreux petits changements un peu partout. Le journal des modifications est joint, mais c’est en gros 85 % de pilotes, dont plus de la moitié se rapporte au nouveau pilote sans fil et aux changements OMAP DRM précités. Il y a également d’autres changements noyés dans la masse : de petites mises à jour ARM et S390 (plus des touches de SuperH et de x86), quelques petites corrections de systèmes de fichiers, des choses de ce genre. Testez. Mon intuition est que les choses vont vraiment se calmer. Et je détesterais être contredit. » _Linus_ ##RC-5 : avant la conférence Linux Australie La version [RC-5](https://plus.google.com/+Linux/posts/M6654LE9set) est sortie le 25 janvier : « Salut, Linux 3.8-rc5 est sorti. Donc, allez‐y ! Je voyagerai pour LCA _— Linux Conference Australia —_ la semaine prochaine, j’espère donc que les choses se calmeront. Elles ne se sont pas trop calmées pour cette RC5, vu qu’on a encore plus de 300 _commits_ pour cette version. Non pas que ces derniers soient tous inquiétants, mais il y a plus de mouvements sur Btrfs, F2FS, _ptrace_ et dans le chargement des modules que ce que j’aurais préféré voir à ce stade. Bien sûr, il y a aussi les classiques mises à jour de pilotes : i915 et Radeon, USB, série, etc. Mais ces pilotes représentent moins de la moitié des _patches_ ce coup‐ci. Allez‐y, testez. » _Linus_ ##RC-6 : depuis l’Australie La version [RC-6](https://plus.google.com/109995262342451767357/posts/Z5Nhn89AvvY) a été annoncée le 1er février : « Voici la très attendue publication spéciale LCA, mais sans changement de mascotte cette fois. Elle n’est pas énorme, mais je veux vraiment que la RC7 soit plus petite, et je maudirai haut et fort quiconque m’enverra une requête d’ajout pour des choses que je ne considèrerai pas valables. Il y a quelques mises à jour x86 et réseau, plus des changements au niveau du son et des pilotes graphiques Exynos qui montrent le bout de leur nez. Et de nombreuses autres choses dans des sous‐systèmes çà et là (pinctrl, regulator, IOMMU, NFS, DM/MD...). Vous connaissez la chanson. » ##RC-7 : sur le retour La version [RC-7](https://lkml.org/lkml/2013/2/8/470) a été annoncée le 9 février : « Une autre version d’Australie, juste avant de rentrer à la maison. Une fois de plus, cela n’a pas été aussi calme que ce que j’aurais souhaité (et avec l’épouvantable accès à Internet la semaine dernière, chaque récupération était assez pénible — Git utilise plutôt bien la bande passante, mais nécessite néanmoins un réseau qui tienne et ne perde pas de paquets à droite et à gauche). Bref, la voici. Surtout des mises à jour de pilotes (USB, réseau, Radeon, régulateur, son) avec quelques soupçons d’autres trucs (Btrfs, réseau, etc). Ça reste plutôt petit dans l’ensemble. » _Linus_ #Les nouveautés ## i386 : car c’est un bon camaraaaadeu La prise en charge des processeurs [i386](http://fr.wikipedia.org/wiki/i386 "Définition Wikipédia") a été retirée du noyau [à l’initiative d’Ingo Molnar](http://thread.gmane.org/gmane.linux.kernel/1408391/) (comme ça, vous avez le nom du coupable à châtier ; mais attention, il n’est pas seul, c’est une décision collégiale des [mainteneurs x86](http://fr.wikipedia.org/wiki/x86 "Définition Wikipédia")). Le point d’entrée en termes d’ancienneté, s’agissant de l’architecture x86, devient donc de fait le [i486](http://fr.wikipedia.org/wiki/i486 "Définition Wikipédia"). Mine de rien, c’est tout un symbole : il s’agit de [l’architecture sur laquelle Linus Torvalds a créé Linux en 1991](https://www.cs.cmu.edu/~awb/linux.history.html). Toutefois, ce dernier n’a pas montré de sentimentalisme excessif (ce qui n’est de toute façon pas son genre) et [lui a souhaité bon vent](http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=743aa456c1834f76982af44e8b71d1a0b2a82e21). À noter qu’[Intel a cessé de commercialiser ces puces en 2007](http://www.reghardware.com/2006/05/18/intel_cans_386_486_960_cpus/). Cette nouveauté nous donne l’occasion de nous replonger dans le passé du noyau et de sa prise en charge progressive d’[un nombre toujours plus grand d’architectures processeur](http://en.wikipedia.org/wiki/List_of_Linux_supported_architectures) : - la version 1.0, considérée comme stable, sort en mars 1994 pour processeurs i386 uniquement ; - avec la 1.2 qui sort un an plus tard, en mars 1995, Linux devient portable en prenant en charge de nouvelles architectures : [Alpha](http://fr.wikipedia.org/wiki/DEC_Alpha "Définition Wikipédia"), [SPARC](http://fr.wikipedia.org/wiki/SPARC "Définition Wikipédia") et [MIPS](http://fr.wikipedia.org/wiki/Architecture_MIPS "Définition Wikipédia") ; - l’année suivante, la 2.0, sortie en juillet 1996, peut gérer plusieurs processeurs ([SMP](http://fr.wikipedia.org/wiki/Symmetric_multiprocessing "Définition Wikipédia")) ; - [la prise en charge des architectures ARM](http://lkml.indiana.edu/hypermail/linux/kernel/9801.2/0599.html) est introduite dans la version 2.1.80 un an et demi plus tard, en janvier 1998 ; - la 2.2 sort un an plus tard, en janvier 1999, avec la prise en charge des [m68k](http://fr.wikipedia.org/wiki/m68k "Définition Wikipédia") et [PowerPC](http://fr.wikipedia.org/wiki/PowerPC "Définition Wikipédia"), puis, en fin d’année (avec la 2.2.13), des [IBM mainframes](http://fr.wikipedia.org/wiki/Grand_Syst%C3%A8me_IBM "Définition Wikipédia"), ouvrant Linux au monde professionnel ; - la 2.4 sort deux ans plus tard, en janvier 2001, avec la prise en charge des [X86-64](http://fr.wikipedia.org/wiki/X86-64 "Définition Wikipédia") (la 2.6.24 qui sortira en janvier 2008 [unifiera les architectures i386 et x86-64](http://linuxfr.org/news/sortie-du-noyau-linux-2624)) ; - la 3.1, sortie en octobre 2011, [gère l’architecture OpenRISC](http://linuxfr.org/news/sortie-du-noyau-linux%C2%A031#toc_12) ; - sans qu’il s’agisse d’une nouvelle architecture processeur, l’intégration dans la 3.3, sortie en mars 2012, d’[un certain nombre de pilotes Android](http://linuxfr.org/news/sortie-du-noyau-linux-3-3#toc_21) est à signaler ; - la 3.4, sortie en mai 2012, [ajoute l’architecture x32](http://linuxfr.org/news/sortie-officielle-du-noyau-linux-3-4#toc_9) ; - la 3.7, sortie en décembre 2012, [ajoute l’architecture AArch64 (ARM64)](http://linuxfr.org/news/sortie-du-noyau-linux-3-7#toc_11). ## Optimisation pour architecture NUMA Les architectures NUMA, où chaque processeur a un contrôleur mémoire dédié, nécessitent une révision de l’ordonnanceur. En effet, l’ordonnanceur doit tenir compte de la topologie du processeur pour placer un processus sur le cœur le plus proche de sa mémoire. L’ordonnanceur actuel est trop naïf pour ces architectures, ce qui provoque des pertes de performance. Linux 3.8 apporte une première étape dans la prise en charge correcte de ces architectures. Ce ne fut pas facile, car ce sujet touche à deux domaines traditionnellement distincts : la mémoire et le processeur. Les équipes respectives se sont donc chamaillées pendant quelques semaines avant d’aboutir à un premier jalon. Seules les fondations pour une prise en charge automatique du NUMA ont été posées. Les prochaines versions du noyau devraient donc voir l’arrivée d’ordonnanceurs automatiques pour architecture NUMA. Chaque équipe devrait proposer sa solution, plutôt orientée gestion de la mémoire ou du processeur. Le plus optimal l’emportera. ## Prise en charge préliminaire du futur processeur IBM POWER8 Alors que le processeur [IBM POWER](http://fr.wikipedia.org/wiki/IBM POWER "Définition Wikipédia")8 est annoncé pour succéder cette année (dans les serveurs haut de gamme IBM) au POWER7 — qui était à l’honneur notamment dans les dépêches des versions [2.6.27](http://linuxfr.org/news/nouvelle-version-2627-du-noyau-linux) et [2.6.36](http://linuxfr.org/news/le-noyau-linux-2636-est-disponible#bref17) du noyau —, celui‐ci intègre dès à présent [une prise en charge préliminaire](http://lkml.indiana.edu/hypermail/linux/kernel/1212.1/03373.html) de ce processeur. Le POWER8 sera gravé en 22 nm et proposera notamment un [_simultaneous multithreading_](http://fr.wikipedia.org/wiki/simultaneous multithreading "Définition Wikipédia") (SMT) de quatrième génération. Pour rappel, la feuille de route d’IBM est conçue sur la base d’une refonte majeure de la conception du processeur tous les trois ans (ex : POWER7), avec à la mi‐étape un raffinement des méthodes de gravure et quelques changements modestes d’architecture (ex : POWER7+), à la façon de la stratégie [tic‐tac](http://fr.wikipedia.org/wiki/Intel#Tic-tac "Définition Wikipédia") d’Intel. ## Pilote graphique pour Nvidia Tegra 2/3 Bien que [la version 2.6.36 du noyau](http://linuxfr.org/news/le-noyau-linux-2636-est-disponible#bref12) ajoutât la prise en charge du cœur processeur ARM du [Tegra](http://fr.wikipedia.org/wiki/Tegra "Définition Wikipédia") (et que, récemment, [la version 3.4](http://linuxfr.org/news/sortie-officielle-du-noyau-linux-3-4#toc_11) ajoutât celle du Tegra 3), il manquait dans tous les cas la prise en charge de la partie graphique de ces système monopuce ([SoC](http://fr.wikipedia.org/wiki/SoC "System on Chip")). Dorénavant, Linux embarque un pilote graphique basique (pour l’instant limité à la 2D) pour les SoC Tegra 2 et Tegra 3. Une fois n’est pas coutume, ce pilote est développé avec la collaboration du concepteur Nvidia (qui ne va pas pour autant jusqu’à le développer lui‐même : _fuck_). ## Nouveau système de fichiers pour mémoires Flash : F2FS Le nouveau système de fichiers F2FS (sigle pour _Flash-Friendly File-System_) qui fait son apparition dans cette version du noyau a été [spécialement conçu](https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=Documentation/filesystems/f2fs.txt;h=8fbd8b46ee342c502b441d769b7334cdf954ec13;hb=a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565) [par Samsung](http://lkml.indiana.edu/hypermail/linux/kernel/1210.0/03173.html) pour les appareils utilisant de la [mémoire Flash](http://fr.wikipedia.org/wiki/mémoire flash "Définition Wikipédia"), comme les clés USB, cartes mémoires et tous les appareils embarquant ce type de mémoire (tablette, _smartphone..._). Ce n’est pas le premier système de fichiers à avoir cet objectif (citons YAFFS, JFFS2, LogFS ou encore UBIFS) : l’avenir nous dira si le succès est au rendez‐vous. Ce nouveau système de fichiers cible certaines mémoires Flash embarquées, et non les disques SSD. Les mémoires ciblées contiennent un contrôleur FTL, conçu pour implémenter dans le matériel l’optimisation de mémoire Flash que des système de fichiers comme FAT n’ont pas. À noter que Microsoft promeut dorénavant à cet effet exFAT (pour _Extended File Allocation Table_), un système de fichiers propriétaire et breveté développé en 2006 (au lieu de l’antique FAT32 limité aux fichiers de moins de 4 Gio). Ainsi, la norme des cartes mémoire SDXC (qui doivent succéder aux cartes SDHC) prévoit que celles‐ci soient formatées par défaut en exFAT. Sous Linux, il existe [depuis peu](http://linuxfr.org/news/fuse-exfat-en-version-1-0-0) un pilote libre en espace utilisateur (fuse-exfat), sous licence GPL v3, gérant ce système de fichiers. #Les améliorations ##Chiffrement plus rapide Il existe différents algorithmes de chiffrement inclus dans le noyau Linux, tels que [Camellia](http://fr.wikipedia.org/wiki/Camellia_%28algorithme%29 "Définition Wikipédia"), [CAST5](http://fr.wikipedia.org/wiki/CAST5 "Définition Wikipédia"), [Serpent](http://fr.wikipedia.org/wiki/Serpent_%28cryptographie%29 "Définition Wikipédia"), [Twofish](http://fr.wikipedia.org/wiki/twofish "Définition Wikipédia") et [CAST6](http://fr.wikipedia.org/wiki/CAST6 "Définition Wikipédia"). Afin de rendre leur usage le plus transparent possible pour l’utilisateur et de permettre leur généralisation, il est essentiel que ces algorithmes soient performants et tirent profit au mieux des possibilités matérielles. Les précédentes versions du noyau ont connu un certain nombre d’optimisations dont nous nous sommes fait le relai : - code assembleur optimisé [x86_64](http://fr.wikipedia.org/wiki/x86_64 "Définition Wikipédia") de Twofish et Blowfish ([Linux 3.2](http://linuxfr.org/news/le-noyau-linux-3-2-est-disponible#toc_17)) ; - code assembleur optimisé [SSE2](http://fr.wikipedia.org/wiki/SSE2 "Définition Wikipédia") et x86-64 de Serpent ([Linux 3.3](http://linuxfr.org/news/sortie-du-noyau-linux-3-3#toc_17)) ; - code assembleur optimisé x86-64 de Camellia ([Linux 3.4](http://linuxfr.org/news/sortie-officielle-du-noyau-linux-3-4#toc_18)) ; - code assembleur optimisé [AVX](http://en.wikipedia.org/wiki/Advanced_Vector_Extensions "Définition Wikipedia") de Serpent et Twofish ([Linux 3.6](http://linuxfr.org/news/sortie-du-noyau-linux-3-6#toc_18)). Cette nouvelle version du noyau apporte de nouvelles optimisations : - optimisation de Camellia pour les jeux d’instructions [AES-NI](http://en.wikipedia.org/wiki/AES_instruction_set "Définition Wikipedia"), AVX et x86_64 ; - optimisation de CAST5, Serpent, Twofish et CAST6 pour le jeu d’instructions AVX. ##Pilotes graphiques pour vos PC ###Intel Les nouveautés couvrent ici principalement la stabilisation des pilotes pour deux architectures qui forment quasiment les deux bouts de la chaîne de puces graphiques du fondeur : l’antique Gen2 et le _pas-encore-sorti_ Haswell, mais aussi la correction d’un bogue qui créait des artefacts visuels avec les dernières générations (Gen6+) : - Prise en charge [_a priori_ stable](https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=70b12bb415463c1bd146b67c5fbf6784fd046ad9) de la partie graphique de [Haswell](http://fr.wikipedia.org/wiki/Haswell "Définition Wikipédia") (le successeur à venir de [_Ivy Bridge_](https://linuxfr.org/news/intel-ivy-bridge-et-linux-ca-juste-marche)) ; - Avec cette version du noyau et les pilotes _ad hoc_ ([v 2.20.12](http://lists.x.org/archives/xorg/2012-October/054986.html) ou supérieure), les utilisateurs de puces graphiques Intel _Sandy Bridge_ (Gen6) et _Ivy Bridge_ (Gen7) devraient finalement être débarrassés d’un défaut qui aura donné bien du fil à retordre aux développeurs : le [_tearing_](http://en.wikipedia.org/wiki/Screen_tearing) (des parties de l’image se scindent en bandes horizontales qui apparaissent décalées les unes par rapport aux autres pendant un court laps de temps, [voir le rapport de bogue correspondant](https://bugs.freedesktop.org/show_bug.cgi?id=37686)) ; - Stabilisation des pilotes des puces i830/i845 (Gen2) commercialisées au début des années 2000 : ceux‐ci n’avaient pas vraiment apprécié le passage à l’architecture [_Graphics Execution Manager_](http://fr.wikipedia.org/wiki/Graphics Execution Manager "Définition Wikipédia") en 2008. [Cette version du noyau](https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b45305fce5bb1abec263fcff9d81ebecd6306ede), couplée avec les pilotes _ad hoc_ ([v 2.20.16](http://lists.freedesktop.org/archives/xorg/2012-December/055184.html) ou supérieure), règle tout cela ! Certains diront qu’Intel aura pris son temps, d’autres salueront le fait qu’Intel, non content de fournir uniquement des pilotes Linux libres pour ses puces graphiques, continue d’optimiser ses pilotes pour ses très anciennes puces. ###Nouveau (pilote libre pour puces Nvidia) La grande Nouveau‐té est que cette version du noyau permet désormais la prise en charge (2D, et 3D dans la limite de Gallium3D) de toutes les puces Nvidia, même les plus récentes (Fermi, Kepler...). Le temps que ce noyau fasse son chemin dans les différentes distributions et l’expérience utilisateur sera tout à fait confortable par défaut. Un grand bravo à l’équipe de Nouveau qui, rappelons‐le, développe entièrement par rétro‐ingénierie. Les efforts pour permettre la gestion automatique du ventilateur, initiée lors de [la version précédente du noyau](http://linuxfr.org/news/sortie-du-noyau-linux-3-7#toc_21), [se poursuivent](http://article.gmane.org/gmane.comp.video.dri.devel/78292) mais n’ont hélas pu aboutir pour cette version : croisons les doigts pour la prochaine ! De même pour le changement de fréquence _— reclocking_. Le [_Z-buffer_](http://fr.wikipedia.org/wiki/Z-buffer "Définition Wikipédia") permet de ne calculer que la partie rendue à l’écran pour économiser notamment la bande passante. Il semble que seules les puces de génération nv20 en tiraient partie jusqu’à présent. Dorénavant les générations nv30 (GeForce 5/FX) et nv40 (GeForce 6 et 7) en profitent aussi. ###Radeon (pilote libre pour puces ATI/AMD) AMD continue de publier tout doucement les spécifications de ses puces, de sorte que la nouvelle version du noyau prend en charge les transferts de mémoire asynchrones (afin de pouvoir charger les informations en mémoire même lorsque les unités de calcul des _shaders_ sont occupées à faire le rendu). Ceci pour les puces R600 et supérieures (voir [_ici_](http://lists.freedesktop.org/archives/dri-devel/2012-December/031703.html) et [_là_](http://lists.freedesktop.org/archives/dri-devel/2012-December/032055.html)). Il reste toutefois à mesurer les bénéfices pratiques de cette fonctionnalité (avec la version adéquate du pilote 3D). ##Systèmes de fichiers Btrfs et ext4 Cette version du noyau ajoute un système de fichiers spécialisé, ainsi que nous l’avons vu. Mais qu’en est‐il des systèmes généralistes ? Pour faire court, des modifications apportées à Btrfs (toujours considéré comme expérimental) le rendent plus rapide dans certaines conditions (voir [les notes de Chris Mason à ce sujet](http://lkml.indiana.edu/hypermail/linux/kernel/1212.2/00645.html)), tandis que celles apportées à ext4 le rendent plus efficace avec des fichiers de petite taille en les stockant avec les nœuds d’index _— inodes —_ (lire [les notes de Ted Ts’o](https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36cd5c19c3fe8291fac45a262c44c00bd14b531a)) à ce sujet. ##Réseau Pour cette version, les nouveautés (lire [_ici_](http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=6be35c700f742e911ecedd07fcc43d4439922334) et [_là_](http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=8d9ea7172edd2e52da26b9485b4c97969a0d2648)) sont plus limitées que dans la précédente. ###Netlink [Netlink](http://en.wikipedia.org/wiki/Netlink) est une interface de communication entre le noyau et des processus en espace utilisateur présente depuis le noyau 2.2. Elle sert principalement à examiner, configurer et surveiller les données réseau comme les adresses IP, les tables de routage et autres paramètres. Cette interface, plus récente et moderne que la myriade d’[_ioctl_](http://fr.wikipedia.org/wiki/Ioctl) (qu’utilisent encore les vénérables `ifconfig` et `route`), possède de nouvelles fonctionnalités dans cette version 3.8. Il est désormais possible d’examiner, surveiller et modifier la base de données multicast des [ponts réseau](http://fr.wikipedia.org/wiki/Pont_%28informatique%29) _— bridges_. C’est la table qu’utilise le noyau lorsqu’il reçoit une trame multicast sur un pont réseau pour savoir vers quels ports la trame doit être renvoyée. Toujours sur les ponts réseau, il est maintenant possible de modifier tous les paramètres via Netlink, de quoi rendre obsolète le programme `brctl`. Autre nouveauté pour le multicast, mais niveau IP cette fois : l’implémentation du routage multicast IPv4 et IPv6 a été dépoussiérée, et il est maintenant possible d’examiner l’état du routage multicast via Netlink. Une nouvelle interface permettant de modifier les paramètres réseau, auparavant présents sous forme de [sysctl](http://fr.wikipedia.org/wiki/Sysctl), a été intégrée dans ce noyau. Pour l’instant, seuls les paramètres `forwarding` (permettant d’activer le routage entre interfaces) et `rp_filter` (permettant d’activer le filtrage de l’adresse source) peuvent être modifiés et surveillés via Netlink. La gestion de ces nouvelles fonctionnalités a bien sûr été ajoutée dans le programme [`iproute2`](http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2), l’utilisateur principal de Netlink, qui fournit les commandes `ip address`, `ip route` et autres pour configurer le réseau de manière moderne. Ce programme utilise exclusivement les interfaces Netlink lorsqu’elles sont disponibles et sinon utilise des appels à `ioctl()`. Notamment, avant ce noyau 3.8, certains types de tunnels ne pouvaient pas être créés via Netlink. C’est maintenant corrigé, et cela permettra d’éliminer quelques appels à `ioctl()` lorsque l’on utilise `ip tunnel`. ### Espace de nom réseau en tant qu’utilisateur La fonctionnalité permettant de créer une pile réseau virtuelle pour isoler les interfaces et configurations réseau les unes des autres a gagné une fonctionnalité supplémentaire : il n’est plus nécessaire d’être _root_ pour créer un espace de noms réseau _— network namespace_. Un utilisateur simple pourra donc créer un espace de noms réseau, créer des interfaces virtuelles, configurer des adresses IP, ses tables de routages, son pare‐feu Netfilter (via `iptables`) et bien d’autres fonctionnalités, dans un environnement séparé. Comme avant, les cartes réseau originales ne pourront pas être modifiées ou utilisées dans le nouvel espace de noms, sauf si l’administrateur décide de les déplacer. Concrètement, un processus qui crée un nouvel espace de noms réseau sera coupé du réseau physique, et pourra créer des interfaces virtuelles comme s’il était administrateur d’une machine virtuelle sans lien avec l’hôte. Mais, pour tout le reste, il restera un processus dans la machine hôte. Pour créer un espace de noms réseau en tant qu’utilisateur, un processus devra créer un espace de noms d’utilisateurs où il se placera en tant que « super‐utilisateur virtuel ». Les _mount namespaces_, les _pid namespaces_ et les _user namespaces_ ont aussi été modifiés pour être gérés en tant que simple utilisateur. ###Wi‐Fi 802.11 Dans ce noyau apparaît un pilote pour les puces Wilocity 6210. Il s’agit du premier pilote Linux d’un matériel utilisant le standard 802.11ad. Ce standard, basé sur Wi‐Fi mais baptisé WiGig, permet en utilisant une bande de fréquences à 60 GHz, d’obtenir des débits allant jusqu’à 7 Gbit/s, mais sur des distances réduites par rapport à un réseau Wi‐Fi classique. Ce noyau marque également le début de la gestion du standard 802.11ac. Ce standard, plus dans la continuité du Wi‐Fi 802.11n, permet des débits de 500 Mbit/s à 1 Gbit/s, notamment en permettant d’utiliser des canaux plus larges. Aucun pilote de périphérique gérant ce standard n’est pour l’instant intégré dans ce noyau, et cette fonctionnalité reste pour le moment expérimentale. ###Protection contre les attaques TCP aveugles. Le noyau 3.8 implémente maintenant le standard RFC 5961 qui vise à mitiger certaines attaques aveugles contre TCP, qui peuvent permettre à un attaquant de terminer une connexion voire d’injecter des données dans le flux. La faiblesse vient des numéros de séquence de TCP. Un attaquant cherchant à couper une connexion TCP sans avoir accès au contenu de la connexion a besoin de deviner un numéro de séquence valide. Or, un numéro de séquence valide n’a pas besoin de correspondre exactement à la valeur attendue, mais peut être légèrement supérieur, jusqu’à une valeur _Receive Window_, négociée lors de l’établissement de la connexion. Mais, la taille de cette fenêtre n’a cessé de croître avec le temps pour augmenter les performances, ce qui fait qu’un attaquant peut deviner un numéro de séquence plus facilement. Pour éviter ces attaques, la RFC 5961, maintenant implémentée dans ce noyau 3.8, recommande de ne pas accepter les demandes de coupure de connexion qui ne tombent pas exactement sur la valeur attendue, mais à la place, de renvoyer un paquet ACK contenant le numéro de séquence attendu. Si la demande était légitime, alors le pair renverra une demande avec un numéro de séquence exact, garantissant sa légitimité. Comme cela ne change pas le protocole TCP, cette solution peut être implémentée dans ce noyau sans casser la compatibilité avec les autres systèmes. ### Autres nouveautés D’autres petites nouveautés sont apparues dans ce noyau ; Linux gère maintenant les cartes réseau capables de calculer les sommes de contrôles de paquets encapsulés dans des tunnels. Il est maintenant possible de filtrer en fonction du réseau local virtuel (VLAN) dans un filtre _Berkeley_, le traduction d’adresses réseau (NAT) gère mieux les changements de routages et le noyau gère maintenant les extensions DOVE pour VXLAN, qui permettent d’utiliser VXLAN sans multicast IP. ## Virtualisation La prise en charge des [architectures ARM par KVM](http://www.mail-archive.com/kvm@vger.kernel.org/msg84316.html) a été repoussée. Peut‐être pour la 3.9 ? Deux fonctionnalités importantes pour le conteneur sont disponibles dans cette version : la limitation de la mémoire *noyau* pour un _cgroup_ et les espaces de noms utilisateur. ### Limitation de la mémoire noyau Les [contraintes d’utilisation mémoire](http://lwn.net/Articles/516529/) d’un _cgroup_ concernent maintenant également la mémoire noyau. Cela permet de confiner les attaques de type _« fork‐bomb »_ ou des congestions réseau à un conteneur. ### Espace de noms utilisateur [Le but](http://lwn.net/Articles/528078/) est de ne pas considérer l’utilisateur _root_ d’un conteneur comme le _root_ de l’hôte. Cela se fait par une table de correspondance associée au processus. On peut lire cette table dans `/proc/PID/uid_map`. Les groupes sont évidemment gérés de la même manière. #Statistiques En ce qui concerne [les statistiques du cycle de développement du noyau 3.8](http://www.h-online.com/open/features/What-s-new-in-Linux-3-8-1804240.html?page=3), le total des _patches_ s’établit à 12 394, alors qu’il était de 11 990 pour le noyau précédent. C’est à nouveau un chiffre très élevé, même si l’on compare aux précédentes versions en remontant assez loin. L’accroissement net du nombre de lignes de code est d’environ 225 000. Selon [les statistiques du site _remword_](http://www.remword.com/kps_result/3.8_petop.html), 1 305 personnes différentes ont participé à l’écriture des _patches_ de ce nouveau noyau (1 316 développeurs pour le précédent). Le contributeur le plus prolifique est encore une fois H. Hartley Sweeten avec 426 patches (soit 3,44 %). Mais si l’on tient compte du nombre de lignes de code, il s’agit alors de Greg Kroah‐Hartman (47 613 lignes, soit 5,21 %, en 80 patches) et H. Hartley Sweeten n’est plus « que » deuxième (37 580 lignes, soit 4,11 %). À suivre avec la version 3.9...

AltStyle によって変換されたページ (->オリジナル) /