Augmenter le nombre de versions majeures à 5 ne signifie pas de changements majeurs ni de problèmes de compatibilité. Cela aide simplement notre cher Linus Torvalds à conserver sa tranquillité d’esprit. Vous trouverez ci-dessous une liste de certains des changements et innovations.
Noyau de base :
- Le planificateur de processus CFS sur les processeurs asymétriques comme ARM fonctionne différemment : il charge en premier les cœurs à faible consommation et économes en énergie.
- Grâce à l'API de suivi des événements de fichier fanotify, vous pouvez recevoir des notifications lorsqu'un fichier est ouvert pour exécution.
- Le contrôleur cpuset a été intégré, qui peut être utilisé pour limiter des groupes de processus en fonction de l'utilisation des nœuds CPU et NUMA.
- La prise en charge des appareils ARM suivants est incluse : Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5 et bien d'autres.
- Améliorations du sous-système ARM : hot-plug mémoire, protection Meltdown et Spectre, adressage mémoire 52 bits, etc.
- Prise en charge de l'instruction WBNOINVD pour x86-64.
Sous-système de mémoire :
- La substitution de balises de test à faible consommation de mémoire est disponible pour l'outil KASAN sur les plateformes ARM64.
- La fragmentation de la mémoire a été considérablement réduite (jusqu'à 90 %), ce qui a permis au mécanisme Transparent HugePage de mieux fonctionner.
- Les performances de mremap(2) sur de grandes zones de mémoire ont été multipliées par 20.
- Dans le mécanisme KSM, jhash2 est remplacé par xxhash, grâce à quoi la vitesse de KSM sur les systèmes 64 bits a augmenté de 5 fois.
- Améliorations de ZRam et MOO.
Bloquer les appareils et les systèmes de fichiers :
- Le mécanisme blk-mq avec un système de files d'attente de requêtes à plusieurs niveaux est devenu le principal pour les périphériques de bloc. Tout le code non-mq a été supprimé.
- Améliorations de la prise en charge de NVMe, notamment en termes de fonctionnement des appareils sur le réseau.
- Pour Btrfs, la prise en charge complète des fichiers d'échange est implémentée, ainsi que la modification du FSID sans réécrire les métadonnées.
- Un appel ioctl a été ajouté à F2FS pour une vérification différée du FS via fsck.
- BinderFS intégré - un pseudo-FS pour la communication interprocessus. Vous permet d'exécuter plusieurs instances d'Android dans le même environnement.
- Un certain nombre d'améliorations dans CIFS : cache DFS, attributs étendus, protocole smb3.1.1.
- ZRam fonctionne de manière plus optimale avec les périphériques d'échange inutilisés, économisant ainsi 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 la Fédération de Russie.
- Prise en charge de l'algorithme de cryptage Adiantum développé par Google pour les appareils basse consommation.
- Algorithmes XChaCha12, XChaCha20 et NHPoly1305 inclus.
- La gestion des appels seccomp peut désormais être déplacée dans l'espace utilisateur.
- Pour les systèmes invités KVM, la prise en charge des extensions Intel Processor Trace est implémentée avec une dégradation minimale des performances.
- Améliorations du sous-système KVM/Hyper-V.
- Le pilote virtio-gpu prend désormais en charge la simulation EDID pour les moniteurs virtuels.
- Le pilote virtio_blk implémente l'appel de suppression.
- Implémentation de fonctionnalités de sécurité pour la mémoire NV basées sur les spécifications Intel DSM 1.8.
Pilotes de périphérique:
- Modifications apportées à l'API DRM pour prendre entièrement en charge la synchronisation adaptative (qui fait partie de la norme DisplayPort) et les taux de rafraîchissement variables (qui font partie de la norme HDMI).
- La norme Display Stream Compression est incluse pour la compression sans perte des flux vidéo adressés aux écrans haute résolution.
- Le pilote AMDGPU prend désormais en charge FreeSync 2 HDR et la réinitialisation du GPU pour CI, VI, SOC15.
- Le pilote vidéo Intel prend désormais en charge les puces Amber Lake, les formats YCBCR 4:2:0 et YCBCR 4:4:4.
- Le pilote Nouveau inclut le travail avec les modes vidéo pour les cartes vidéo de la famille Turing TU104/TU106.
- Pilotes intégrés pour écran tactile Raspberry Pi, panneaux CDTech, Banana Pi, DLC1010GIG, etc.
- Le pilote HDA prend en charge le bouton « jack », les indicateurs LED, les appareils Tegra186 et Tegra194.
- Le sous-système d'entrée a appris à fonctionner avec un défilement de haute précision sur certaines souris Microsoft et Logitech.
- Beaucoup de changements dans les pilotes pour les webcams, les tuners TV, USB, IIO, etc.
Sous-système réseau :
- La pile UDP prend en charge un mécanisme sans copie pour transmettre des données sur un socket sans mise en mémoire tampon intermédiaire.
- Le mécanisme générique de déchargement de réception y a également été ajouté.
- Amélioration des performances de recherche dans les politiques xfrm lorsqu'elles sont nombreuses.
- La possibilité de décharger les tunnels a été ajoutée au pilote VLAN.
- Un certain nombre d'améliorations dans la prise en charge des réseaux Infiniband et sans fil.
Source: linux.org.ru