L'augmentation du numéro de version majeure à 5 ne signifie pas de grands changements ou des problèmes de compatibilité. Cela aide simplement notre cher Linus Torvalds à garder son calme. Ci-dessous, vous trouverez une liste de certains changements et nouveautés.
Cœur du noyau :
- Le planificateur de processus CFS sur des processeurs asymétriques tels que ARM fonctionne différemment : il commence par charger les cœurs à faible puissance et écoénergétiques.
- Via l'API de suivi des événements de fichiers fanotify, il est possible de recevoir des notifications lors de l'ouverture d'un fichier pour exécution.
- Un contrôleur cpuset intégré permet de limiter les groupes de processus en fonction de l'utilisation du CPU et des nœuds NUMA.
- Le support est ajouté pour les dispositifs ARM suivants : Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5, et beaucoup d'autres.
- Améliorations dans le sous-système ARM : connexion à chaud de la mémoire, protection contre Meltdown et Spectre, adressage mémoire de 52 bits, etc.
- Support de l'instruction WBNOINVD pour x86-64.
Sous-système de mémoire :
- Pour l'outil KASAN sur les plateformes ARM64, il est disponible une substitution de balises de vérification avec une faible consommation de mémoire.
- La fragmentation de la mémoire est considérablement réduite (jusqu'à 90 %), ce qui améliore le fonctionnement du mécanisme Transparent HugePage.
- La vitesse de mremap(2) sur de grandes zones de mémoire a été augmentée jusqu'à 20 fois.
- Dans le mécanisme KSM, jhash2 a remplacé xxhash, ce qui a multiplié par 5 la vitesse de fonctionnement de KSM sur les systèmes 64-bit.
- Améliorations dans ZRam et OOM.
Périphériques de blocs et systèmes de fichiers :
- Le mécanisme blk-mq avec un système de files d'attente à plusieurs niveaux est devenu principal pour les périphériques de blocs. Tout le code non-mq a été supprimé.
- Améliorations du support NVMe, en particulier en ce qui concerne le fonctionnement des dispositifs via le réseau.
- Pour Btrfs, une prise en charge complète des fichiers d'échange a été mise en œuvre, ainsi qu'un changement de FSID sans réécriture des métadonnées.
- Dans F2FS, un appel ioctl a été ajouté pour un contrôle différé du FS via fsck.
- BinderFS a été intégré – un pseudo-FS pour l'interaction entre processus. Il permet de lancer plusieurs instances d'Android dans un seul environnement.
- Une série d'améliorations dans CIFS : cache DFS, attributs étendus, protocole smb3.1.1.
- ZRam fonctionne plus efficacement avec des dispositifs d'échange non utilisés, économisant de la mémoire.
Sécurité et virtualisation :
- Ajout de la fonction de hachage Streebog (GOST 34.11-2012), développée par le FSB de Russie.
- Support de l'algorithme de chiffrement Adiantum, développé par Google pour des dispositifs peu puissants.
- Intégration des algorithmes XChaCha12, XChaCha20 et NHPoly1305.
- Le traitement des appels seccomp peut désormais être effectué dans l'espace utilisateur.
- Pour les systèmes invités KVM le support des extensions Intel Processor Trace a été implémenté avec un impact minimal sur la performance.
- Améliorations dans le sous-système KVM/Hyper-V.
- Le pilote virtio-gpu a obtenu le support de la simulation EDID pour les moniteurs virtuels.
- L'appel discard a été intégré dans le pilote virtio_blk.
- Des fonctions de sécurité pour la mémoire NV basées sur les spécifications Intel DSM 1.8 ont été mises en œuvre.
Pilotes de périphériques :
- Modifications de l'API DRM pour un support complet de la synchronisation adaptative (partie de la norme DisplayPort) et des fréquences de rafraîchissement variables (partie de la norme HDMI).
- Le standard Display Stream Compression a été inclus pour la compression sans perte des flux vidéo destinés aux écrans haute résolution.
- Le pilote AMDGPU prend désormais en charge FreeSync 2 HDR et la réinitialisation du processeur graphique pour CI, VI, SOC15.
- Le pilote vidéo Intel a ajouté la prise en charge des puces Amber Lake, des formats YCBCR 4:2:0 et YCBCR 4:4:4.
- Le pilote Nouveau prend en charge les modes vidéo pour les cartes graphiques de la famille Turing TU104/TU106.
- Les pilotes d'écran tactile Raspberry Pi, CDTech, Banana Pi, DLC1010GIG, etc., ont été intégrés.
- Le pilote HDA prend en charge le bouton 'jack', les indicateurs LED, les dispositifs Tegra186 et Tegra194.
- Le sous-système d'entrée a appris à travailler avec un défilement haute précision sur certaines souris Microsoft et Logitech.
- De nombreux changements dans les pilotes de webcams, de tuners TV, USB, IIO, etc.
Sous-système réseau :
- Dans la pile UDP, un mécanisme de zero-copy a été implémenté pour transmettre des données via un socket sans mise en tampon intermédiaire.
- Un mécanisme de Generic Receive Offload a également été ajouté.
- La performance de recherche dans les politiques xfrm a été améliorée avec un grand nombre de politiques.
- Le pilote VLAN a ajouté la fonctionnalité de déchargement des tunnels.
- Une série d'améliorations pour le support d'Infiniband et des réseaux sans fil.
Source : linux.org.ru
