Linux 5.5 : de la souplesse pour les livepatchs

linux-5-5

La version 5.5 du noyau Linux fait son entrée. Elle favorise la gestion des E/S et des livepatchs, entre autres nouveautés.

Malgré des correctifs apportés tardivement  à un pilote de réseau sans fil et au module netfilter, il n’y avait pas lieu de repousser le passage de Linux 5.5 en version stable. Ainsi en a décidé Linus Torvalds.

Certains des changements qu’apporte cette nouvelle mouture sont spécifiques à une architecture :

  • arm64 : prise en charge complète du framework de traçage Ftrace
  • MIPS : prise en charge des tests de couverture du code avec kcov
  • RISC-V : prise en charge de seccomp(), qui permet de transférer un processus vers un état de sécurité dans lequel il ne peut plus exécuter que certains appels système
  • x86 : iopl(), destiné à modifier le niveau de privilège des appels système, est désormais émulé. Conséquence : l’impossibilité d’activer et de désactiver les interruptions.

Favoriser les livepatchs

Parmi les modifications apportée au noyau, on notera :

  • Des améliorations pour le sous-système d’E/S io_uring
    1) Capacité à modifier les fichiers en cours de manipulation sans avoir à relancer l’opération
    2) Possibilité de définir des timeouts absolus
    3) Prise en charge d’accept() pour gérer les demandes de connexion en attente
    4) Commande IORING_OP_CONNECT pour permettre les appels connect() asynchrones
    5) Suppression de sysctl()
  • Du nouveau également pour clone3(), destiné à créer des processus fils partageant le même contexte d’exécution (espace d’adressage) que le processus père
    1) Suppression, dans les processus fils, de tous les gestionnaires de signaux
    2) Avec les privilèges adéquats, possibilité de choisir l’identifiant qui sera attribué au nouveau processus dans chacun des espaces de noms où il se trouvera
  • Système de suivi des livepatchs (correctifs appliqués sans redémarrage) pour en améliorer l’intercompatibilité
  • Mécanisme de « trampoline » pour accélérer les appels entre le noyau et les programmes BFS
  • Remplacement de l’algorithme d’équilibrage de charge du planificateur CPU
  • Nouveau pilote hmem. Il permet au noyau d’utiliser des zones mémoire spécifiques réservées par le firmware.

On recense également des nouveautés pour certains systèmes de fichiers :

  • Btrfs : d’une part, la prise en charge des algorithmes de somme de contrôle xxhash64, blake2B et sha256. De l’autre, la possibilité d’utiliser 3 ou 4 supports en RAID, contre 2 maximum auparavant.
  • CIFS : prise en charge du multicanal et de flock() pour ajouter des verrous consultatifs à des fichiers ouverts
  • Pour le client NFS, prise en charge des opérations de copie directe entre serveurs
  • statx() peut maintenant indiquer si un fichier est protégé avec fs-verity (introduit avec Linux 5.4)

Sur le volet sécurité, on aura relevé la prise en charge de l’algorithme de cryptographie blake2b. Et sur la partie réseau, un nouveau mécanisme d’attribution de noms alternatifs aux interfaces.

Photo d’illustration © Steve-Young – Fotolia.com