La récente version du noyau Linux 4.18, qui a été suivie de près par les versions 4.18.1, 4.18.2, 4.18.3, 4.18.3, 4.18.4 et 4.18.5, apporte des changements importants à l’environnement Linux, avec de nombreuses modifications, corrections et améliorations. La toute dernière version s’allège de près de 100 000 lignes de code, adopte le cryptage des fichiers et le Berkeley Packet Filter, et fait un pas vers les gamers et les terminaux mobiles.

Alors que les changements les plus importants pourraient laisser sans voix les développeurs qui attendent ces évolutions depuis un certain temps, les autres pourraient échapper à la masse des utilisateurs de Linux. Alors, pour ne pas passer à côté, voici une sélection de nouveautés apportées par le noyau Linux 4.18.

Un vaste nettoyage du code

Pour commencer, le noyau Linux 4.18 s’est débarrassé de près de 100 000 lignes de code obsolètes. Cela fait beaucoup ! Pour autant, cela ne veut pas dire que certaines de vos caractéristiques préférées ont pu disparaître. Ce nettoyage très méticuleux a supprimé tout le code inutile, et il faut croire qu’il y en avait pas mal. Résultat : le nouveau noyau devrait prendre moins de mémoire, fonctionner un peu plus efficacement et être moins vulnérable aux attaques qui auraient pu profiter des portions négligées de l'ancien code. Le code restant est aussi un peu plus propre et plus facile à gérer.

Suppression de Lustre

La seule conséquence significative de ce nettoyage de code concerne la suppression du système de fichiers Lustre hébergé depuis environ cinq ans par le noyau, mais pas totalement intégré. Lustre a été supprimé parce que son code est incomplet ou pas assez mature et il n'a pas progressé à un rythme suffisant pour mériter son maintien dans le noyau. Mais il n’est pas exclu que ce système de fichiers distribué utilisé en cluster computing - Lustre est une combinaison des mots Linux et cluster - soit réintroduit dans une version ultérieure quand ses développeurs auront pris le temps d’améliorer suffisamment la fonctionnalité pour la rattacher à l'arbre du kernel.

BPFILTER pour renforcer la sécurité réseau

BPFILTER, nom dérivé de Berkeley Packet Filter, est une autre caractéristique intéressante  de ce noyau. Au départ, BPFILTER servait au filtrage de paquets pour d'autres outils comme tcpdump par exemple. Son introduction dans Linux 4.18 pourrait éventuellement remplacer à la fois iptables et nftables. BPFILTER étend également les capacités de Linux dans plusieurs domaines, en particulier la sécurité réseau, l’équilibrage de charge et la surveillance des performances, sans impact sur les performances. On peut donc dire que BPFILTER apporte un changement fondamental pour le réseau et la sécurité. La transition à partir de la technologie précédente devrait être très facile. BPFILTER dispose de solutions simples pour traduire les règles iptables dans son propre format de règles. Il offre également une certaine souplesse pour décider à quel endroit appliquer les règles de filtrage - peut-être sur l'interface réseau elle-même. Il apporte aussi des solutions pour moderniser et revitaliser la pile réseau.

Chiffrement du système de fichiers Speck

Depuis la version 4.18 de Linux, FSCRYPT, qui fonctionne au niveau du système de fichiers plutôt qu'au niveau du périphérique de bloc, supporte les algorithmes de chiffrement Speck128/Speck256. Même si Speck a suscité quelques réticences parce qu'il a été développé par la National Security Agency (NSA) et que l’agence américaine n'a peut-être pas partagé tous ses éléments de design, il offre une nouvelle option de chiffrement du système de fichiers. Il est possible de ne pas l'utiliser, mais c’est, semble-t-il, la seule option de cryptage accessible aux appareils Android bas de gamme et, par conséquent, il peut jouer un rôle important.

Des graphismes plus rapides et de meilleure qualité

Les pilotes graphiques open source du kernel 4.18 de Linux ont été améliorés. Le pilote AMDGPU (pilote graphique open source pour les dernières cartes graphiques AMD Radeon) contient du code pour la future carte graphique Vega 20 GPU et pourra prendre en charge le hardware Vega M (l’élément graphique Radeon que l'on retrouve dans les processeurs Intel Kabylake-G). Le support Hyper-V pour le hardware Vega M et Nvidia Volta GV100 a également été amélioré. Avec ces changements, on peut s’attendre à des affichages ultra-rapides.

Amélioration du support audio

Le kernel 4.18 améliore significativement la prise en charge des puces audio. C’est le cas par exemple du support de certains appareils Creative Labs CA0132, de la prise en charge de l'audio sur le PC portable Spectre x360 de HP et de plusieurs circuits Realtek et contrôleurs MediaTek.

Un pilote pour le contrôleur Steam

Les gamers apprécieront tout particulièrement le driver Steam Controller qui permet à un périphérique d’être reconnu directement comme un HID normal (interface humaine ou périphérique d'entrée). Ainsi, les utilisateurs n'auront pas besoin d’installer de client Steam ou de pilote de contrôleur. Le driver permet d’utiliser un Gamepad comme souris virtuelle, un pavé tactile ou un clavier via une connexion USB ou sans fil sans affecter l’usage du contrôleur Steam officiel.

Amélioration des performances

Le mécanisme de contrôle de la concomitance sans verrouillage dans l'espace utilisateur dit de « séquences redémarrables » est inclus dans le nouveau kernel. Les appels système RSEQ permettent des opérations plus rapides dans l'espace utilisateur comme le montrent certains micro-benchmarks. Il apporte également des améliorations notables dans le code scheduler du noyau. Ces changements devraient se traduire par une amélioration significative de la performance globale du système.

Une autre amélioration apportée par Linux 4.18 concerne la prise en charge du transfert à deux voies dans l'USB 3.2, accélérant les transferts de données des périphériques USB pour les hôtes et les périphériques qui utilisent des câbles de type C. Le noyau Linux 4.18 se dote également d’une interface de polling du noyau pour les I/O asynchrones. Celle-ci permet d’interroger un ensemble de descripteurs de fichiers pour déterminer ceux qui peuvent effectuer des I/O sans blocage. Ce changement améliore aussi la performance. Le nouveau noyau comporte également une API de réception sans copie TCP ainsi que la prise en charge des sockets AF XDP hautes performances qui promet d'améliorer les performances tout en économisant les cycles CPU et la bande passante mémoire.

Pas de bogue de l'an 2000 en 2038

Le noyau fait également des progrès significatifs pour éliminer le problème 2038 reconnu depuis longtemps. Les moins jeunes n’ont pas oublié le fameux épisode du bogue de l'an 2000, alias Millenium, qui a suscité beaucoup d’inquiétude vers la fin de 1999. À l’époque, les gens craignaient que les systèmes et les applications utilisant un format d’année à deux chiffres, sans le 19 du siècle, dans leurs champs de date ne décident soudainement, sur le coup de minuit le 31 décembre 1999, de repasser à l’année 1900, ce qui aurait eu pour effet de crasher tous les systèmes. Parce que les systèmes Unix stockent les dates de manière très particulière (nombre de secondes depuis Unix Epoch), le problème ne se posera pas avant le 19 janvier 2038. Mais le travail de structure timespec du noyau 4.18 permettra d’éviter que les systèmes 32 bits ne tombent en panne quand la pendule affichera 3 h 14 min 7 s à cette date (ou essaie de le faire).

Les autres changements apportés par Linux 4.18 : 

  • - Les systèmes de fichiers FUSE qui permettent d’implémenter un système de fichiers entièrement fonctionnel dans l'espace utilisateur, peuvent désormais être montés par des utilisateurs sans privilèges.

  • - Ajout de correctifs d'atténuation de la faille Spectre pour les dispositifs ARM 32 bits.

  • - Support du processeur mobile Qualcomm Snapdragon 845. Ce système sur puce SoC équipe de nombreux appareils mobiles haut de gamme.

  • - Support complet de Raspberry Pi 3B et 3B+.

  • - Mises à jour de la gestion de l'alimentation pour améliorer les performances sur serveurs et PC.

  • - Prise en charge du Thunderbolt natif pour le hardware Dell.

Le détail de tous ces changements est disponible sur le site kernelnewbies.

En conclusion, le noyau Linux 4.18 affiche un grand nombre d’améliorations en terme de performance, de sécurité et de fonctionnalité que les utilisateurs de systèmes Linux devraient apprécier. Il pourra aussi les rassurer sur l’échéance de 2038 !