{"id":115726,"date":"2024-05-13T13:52:06","date_gmt":"2024-05-13T11:52:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-9"},"modified":"2024-05-13T13:52:06","modified_gmt":"2024-05-13T11:52:06","slug":"reliz-yadra-linux-6-9","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/reliz-yadra-linux-6-9","title":{"rendered":"Publication du noyau Linux 6.9","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Apr\u00e8s deux mois de d\u00e9veloppement, Linus Torvalds a pr\u00e9sent\u00e9 la sortie du noyau Linux 6.9. Parmi les changements les plus notables : le module dm-vdo pour la d\u00e9duplication et la compression des dispositifs de stockage, un mode d'acc\u00e8s direct aux fichiers dans FUSE, la prise en charge de la cr\u00e9ation de pidfd pour des threads individuels, un m\u00e9canisme de jetons BPF, le support de Rust sur les syst\u00e8mes ARM64, la r\u00e9trogradation du syst\u00e8me de fichiers Ext2, la suppression de l'ancien pilote NTFS, et le soutien au m\u00e9canisme Intel FRED.        <\/p>\n<p>La nouvelle version comprend 15680 corrections de 2106 d\u00e9veloppeurs, la taille du patch est de 54 Mo (les modifications concernent 11825 fichiers, 687954 lignes de code ont \u00e9t\u00e9 ajout\u00e9es, 225344 lignes ont \u00e9t\u00e9 supprim\u00e9es). Dans la version pr\u00e9c\u00e9dente, il y avait 15641 corrections de 2018 d\u00e9veloppeurs, la taille du patch \u00e9tait de 44 Mo. Environ 42% de tous les changements pr\u00e9sent\u00e9s dans la version 6.9 sont li\u00e9s aux pilotes de p\u00e9riph\u00e9riques, environ 17% des modifications concernent la mise \u00e0 jour du code sp\u00e9cifique aux architectures mat\u00e9rielles, 13% sont li\u00e9s \u00e0 la pile r\u00e9seau, 7% aux syst\u00e8mes de fichiers et 4% aux sous-syst\u00e8mes internes du noyau.      <\/p>\n<p>Les principales nouveaut\u00e9s du noyau 6.9 :  <\/p>\n<ul>\n<li class=\"l\"> <b>Sous-syst\u00e8me de disque, entr\u00e9e\/sortie et syst\u00e8mes de fichiers<\/b>\n<ul>\n<li class=\"l\"> Un nouveau gestionnaire dm-vdo (virtual data optimizer) a \u00e9t\u00e9 ajout\u00e9 dans le Device Mapper (DM), permettant de cr\u00e9er un dispositif de bloc virtuel bas\u00e9 sur les dispositifs de stockage existants, offrant des fonctionnalit\u00e9s telles que la d\u00e9duplication des donn\u00e9es r\u00e9p\u00e9t\u00e9es, la compression des donn\u00e9es, l'exclusion des blocs vides et l'augmentation de la taille du dispositif de bloc selon les besoins (thin provisioning). Ces fonctionnalit\u00e9s sont mises en \u0153uvre au niveau du dispositif de stockage et ne d\u00e9pendent pas du syst\u00e8me de fichiers utilis\u00e9 (par exemple, avec dm-vdo, il est possible de r\u00e9aliser automatiquement la consolidation des donn\u00e9es en double et de stocker l'information sous forme compress\u00e9e pour n'importe quel syst\u00e8me de fichiers). Le dm-vdo est pris en charge pour les stockages physiques jusqu'\u00e0 256 To et permet la cr\u00e9ation de volumes logiques jusqu'\u00e0 4 Po. Pour la gestion des partitions vdo, il est recommand\u00e9 d'utiliser lvm. La technologie VDO a \u00e9t\u00e9 d\u00e9velopp\u00e9e par Permabit et a \u00e9t\u00e9 rendue open source apr\u00e8s son acquisition par Red Hat en 2017.\n<li class=\"l\"> Dans le sous-syst\u00e8me FUSE, utilis\u00e9 pour la r\u00e9alisation de syst\u00e8mes de fichiers dans l'espace utilisateur, une impl\u00e9mentation initiale du mode \u00ab passthrough \u00bb a \u00e9t\u00e9 ajout\u00e9e, permettant d'acc\u00e9der directement aux donn\u00e9es des fichiers au niveau du noyau, en contournant le processus fonctionnant dans l'espace utilisateur, ce qui peut consid\u00e9rablement am\u00e9liorer les performances dans certaines situations. Par exemple, les impl\u00e9mentations de syst\u00e8mes de fichiers FUSE fonctionnant en mode lecture seule et contr\u00f4lant l'acc\u00e8s aux fichiers peuvent fournir le contenu des fichiers \u00e0 partir du syst\u00e8me de fichiers d'origine sans passer par le processus FUSE.\n<li class=\"l\"> Le pilote avec une impl\u00e9mentation du syst\u00e8me de fichiers Ext2 a \u00e9t\u00e9 r\u00e9trograd\u00e9 en tant que d\u00e9pr\u00e9ci\u00e9. La raison cit\u00e9e est que le pilote ne prend en charge que des compteurs de temps 32 bits dans les inode, qui d\u00e9passeront le 19 janvier 2038. Au lieu du pilote ext2, il est recommand\u00e9 d'utiliser le pilote ext4, qui prend en charge le fonctionnement avec le syst\u00e8me de fichiers Ext2 et est enti\u00e8rement compatible avec celui-ci, mais qui peut \u00e9galement utiliser dans les partitions ext2 des horodateurs non affect\u00e9s par le probl\u00e8me de 2038, si le syst\u00e8me de fichiers a \u00e9t\u00e9 cr\u00e9\u00e9 avec des inode de plus de 255 octets (dans le pilote ext2, des compteurs de temps 32 bits \u00e9taient utilis\u00e9s ind\u00e9pendamment de la taille de l'inode).\n<li class=\"l\"> L'ancien pilote du syst\u00e8me de fichiers NTFS a \u00e9t\u00e9 supprim\u00e9, et depuis la version 5.15, un nouveau pilote NTFS3 a \u00e9t\u00e9 introduit. La pr\u00e9sence de deux pilotes avec une impl\u00e9mentation de NTFS dans le noyau a \u00e9t\u00e9 jug\u00e9e inappropri\u00e9e, consid\u00e9rant que l'ancien pilote n'a pas \u00e9t\u00e9 mis \u00e0 jour depuis de nombreuses ann\u00e9es, qu'il est en piteux \u00e9tat et ne peut fonctionner qu'en mode lecture.\n<li class=\"l\"> Les syst\u00e8mes de fichiers zonefs et hugetlbfs ont ajout\u00e9 la prise en charge du mappage des identifiants d'utilisateurs des syst\u00e8mes de fichiers mont\u00e9s, utilis\u00e9 pour associer des fichiers d'un utilisateur sp\u00e9cifique sur une partition \u00e9trang\u00e8re mont\u00e9e \u00e0 un autre utilisateur dans le syst\u00e8me actuel.\n<li class=\"l\"> Pour NFSv4, les administrateurs ont d\u00e9sormais la possibilit\u00e9 de nettoyer les \u00e9tats d'ouverture et de verrouillage des fichiers.\n<li class=\"l\"> Pour le syst\u00e8me de fichiers Ext4, seules des corrections de bugs et une mise \u00e0 jour des tests kunit ont \u00e9t\u00e9 signal\u00e9es.\n<li class=\"l\"> Dans Btrfs, la conversion des fonctionnalit\u00e9s vers l'utilisation de folios de pages m\u00e9moire a \u00e9t\u00e9 poursuivie.\n<li class=\"l\">  Dans le syst\u00e8me de fichiers XFS, le d\u00e9veloppement de la possibilit\u00e9 d'utiliser l'utilitaire fsck pour d\u00e9tecter et corriger les probl\u00e8mes en mode en ligne, sans d\u00e9monter le syst\u00e8me de fichiers, a \u00e9t\u00e9 poursuivi.\n<li class=\"l\"> Dans l'appel syst\u00e8me pwritev2(), le drapeau RWF_NOAPPEND a \u00e9t\u00e9 ajout\u00e9, permettant de sp\u00e9cifier un d\u00e9calage pour l'\u00e9criture, m\u00eame si le fichier \u00e9tait ouvert en mode ajout uniquement \u00e0 la fin du fichier.\n<li class=\"l\"> De nouvelles commandes ioctl ont \u00e9t\u00e9 ajout\u00e9es : FS_IOC_GETUUID \u2014 retourne l'identifiant UUID du syst\u00e8me de fichiers sp\u00e9cifi\u00e9, et FS_IOC_GETFSSYSFSPATH \u2014 d\u00e9termine l'emplacement dans \/sys\/fs du syst\u00e8me de fichiers mont\u00e9 sp\u00e9cifi\u00e9.\n<li class=\"l\"> Les syst\u00e8mes de fichiers efs, qnx4 et coda ont \u00e9t\u00e9 convertis pour utiliser la nouvelle API de montage des partitions.\n<li class=\"l\"> La mise en \u0153uvre des op\u00e9rations sur les fichiers effectu\u00e9es en mode sans prise en compte de la casse a \u00e9t\u00e9 am\u00e9lior\u00e9e. La performance a \u00e9t\u00e9 augment\u00e9e gr\u00e2ce \u00e0 une comparaison initiale sensible \u00e0 la casse, avec un retour \u00e0 la recherche sans prise en compte de la casse. Des probl\u00e8mes lors du montage d'overlayfs au-dessus de r\u00e9pertoires r\u00e9gl\u00e9s en mode sans prise en compte de la casse ont \u00e9t\u00e9 r\u00e9solus.                  <\/ul>\n<li class=\"l\"> <b>M\u00e9moire et services syst\u00e8me<\/b>\n<ul>\n<li class=\"l\"> Le support du m\u00e9canisme Intel FRED (Flexible Return and Event Delivery) a \u00e9t\u00e9 mis en place, con\u00e7u pour am\u00e9liorer l'efficacit\u00e9 et la fiabilit\u00e9 de la livraison d'informations sur les \u00e9v\u00e9nements de bas niveau, par rapport au m\u00e9canisme actuel IDT (Interrupt Descriptor Table). L'augmentation des performances et la r\u00e9duction des latences sont assur\u00e9es par le retour des \u00e9v\u00e9nements par l'instruction processeur IRET, plut\u00f4t que par le biais de la table IDT. La fiabilit\u00e9 est augment\u00e9e gr\u00e2ce \u00e0 un traitement distinct de l'arriv\u00e9e des \u00e9v\u00e9nements dans le contexte du noyau et dans le contexte de l'utilisateur, prot\u00e9geant contre l'ex\u00e9cution imbriqu\u00e9e de NMI et sauvegardant dans le cadre de pile \u00e9largi tous les registres CPU associ\u00e9s \u00e0 l'exception.\n<li class=\"l\"> La possibilit\u00e9 d'optimiser l'acc\u00e8s aux donn\u00e9es des c\u0153urs CPU individuels a \u00e9t\u00e9 ajout\u00e9e gr\u00e2ce \u00e0 l'utilisation dans le code du noyau d'espaces d'adresses nomm\u00e9s (Named Address Spaces), mis en \u0153uvre dans GCC sous forme d'extension GNU C.\n<li class=\"l\"> Un nouveau drapeau PIDFD_THREAD a \u00e9t\u00e9 ajout\u00e9 \u00e0 la fonction pidfd_open(), permettant de cr\u00e9er un pidfd pour des threads individuels, et pas seulement d'utiliser le pidfd dans le contexte du leader de groupe de threads. Une r\u00e9alisation d'un pseudo-syst\u00e8me de fichiers pour acc\u00e9der au pidfd via le syst\u00e8me de fichiers virtuel a \u00e9galement \u00e9t\u00e9 propos\u00e9e. Contrairement \u00e0 l'identification des processus par pid, l'identifiant pidfd est li\u00e9 \u00e0 un processus sp\u00e9cifique et ne change pas, tandis que le PID, apr\u00e8s la fin du processus actuel, peut \u00eatre attribu\u00e9 \u00e0 un autre processus.\n<li class=\"l\"> Un m\u00e9canisme de jetons BPF a \u00e9t\u00e9 ajout\u00e9 au sous-syst\u00e8me BPF, permettant de d\u00e9l\u00e9guer s\u00e9lectivement aux programmes des droits d'acc\u00e8s aux op\u00e9rations BPF privil\u00e9gi\u00e9es ; par exemple, il est possible d'accorder \u00e0 une application non privil\u00e9gi\u00e9e l'acc\u00e8s \u00e0 certains sous-syst\u00e8mes BPF sans fournir tous les droits CAP_BPF.\n<li class=\"l\"> Le sous-syst\u00e8me BPF a ajout\u00e9 un nouveau type de m\u00e9moire partag\u00e9e bpf_arena, d\u00e9finissant une zone accessible pour le partage entre les programmes BPF et les processus en espace utilisateur. L'instruction may_goto a \u00e9t\u00e9 ajout\u00e9e, permettant d'organiser le fonctionnement de boucles qui peuvent \u00eatre interrompues par le v\u00e9rificateur. La g\u00e9n\u00e9ration de cookies TCP SYN arbitraires \u00e0 partir de programmes BPF et la cr\u00e9ation de gestionnaires BPF pour lutter contre les attaques par SYN flooding ont \u00e9t\u00e9 ajout\u00e9es.\n<li class=\"l\"> Le transfert des modifications de la branche Rust-for-Linux se poursuit, li\u00e9es \u00e0 l'utilisation du langage Rust comme deuxi\u00e8me langage pour le d\u00e9veloppement de pilotes et de modules noyau (le support de Rust n'est pas activ\u00e9 par d\u00e9faut et n'entra\u00eene pas l'inclusion de Rust dans les d\u00e9pendances de compilation obligatoires du noyau). Le support de l'utilisation du langage Rust sur les processeurs ARM 64 bits a \u00e9t\u00e9 ajout\u00e9. La transition vers la version Rust 1.76 a \u00e9t\u00e9 r\u00e9alis\u00e9e. Le macros 'container_of!' a \u00e9t\u00e9 ajout\u00e9. \u00c0 la place de la fonctionnalit\u00e9 instable 'ptr_metadata', la m\u00e9thode stable 'byte_sub' a \u00e9t\u00e9 engag\u00e9e. Un module 'time' avec la fonction de conversion de temps 'msecs_to_jiffies()' a \u00e9t\u00e9 ajout\u00e9.\n<li class=\"l\"> La possibilit\u00e9 de tronquer des fichiers (ftruncate_file) a \u00e9t\u00e9 ajout\u00e9e au sous-syst\u00e8me io_uring.\n<li class=\"l\"> Un nouveau type de files d'attente WQ_BH (workqueue Bottom Halves) a \u00e9t\u00e9 ajout\u00e9 pour l'ex\u00e9cution asynchrone de code dans le contexte des interruptions logicielles, visant \u00e0 remplacer les anciennes tasklet.\n<li class=\"l\"> Le sous-syst\u00e8me de gestion des minuteries a \u00e9t\u00e9 consid\u00e9rablement retravaill\u00e9, avec une logique am\u00e9lior\u00e9e pour le choix du c\u0153ur CPU actif pour l'ex\u00e9cution d'une minuterie d\u00e9clench\u00e9e, afin de ne pas sortir de l'\u00e9tat de veille des c\u0153urs inactifs.\n<li class=\"l\"> Il est d\u00e9sormais possible de mettre \u00e0 jour le mod\u00e8le de consommation d'\u00e9nergie du noyau (EM, Energy Model) en cours d'ex\u00e9cution, ce qui peut \u00eatre utilis\u00e9, par exemple, pour prendre en compte l'impact de la temp\u00e9rature de fonctionnement sur l'efficacit\u00e9 \u00e9nerg\u00e9tique du CPU. La performance de la fonction em_cpu_energy() a \u00e9t\u00e9 consid\u00e9rablement am\u00e9lior\u00e9e, s'ex\u00e9cutant d\u00e9sormais 1,43 fois plus vite dans les tests sur un syst\u00e8me fixe, et 1,69 fois plus vite sur la carte RockPi 4B.\n<li class=\"l\"> Le support du d\u00e9marrage des syst\u00e8mes bas\u00e9s sur l'architecture ARM64 en mode LPA2 avec un espace d'adressage virtuel de 52 bits a \u00e9t\u00e9 ajout\u00e9.\n<li class=\"l\"> Pour les syst\u00e8mes ARM64, le support des \u00e9critures continues PTE (Page Table Entry) a \u00e9t\u00e9 r\u00e9alis\u00e9, ce qui permet d'augmenter les performances en am\u00e9liorant l'efficacit\u00e9 de l'utilisation de la TLB (Translation Lookaside Buffer).\n<li class=\"l\"> Des correctifs ont \u00e9t\u00e9 appliqu\u00e9s pour am\u00e9liorer la performance du sous-syst\u00e8me de gestion de la m\u00e9moire en r\u00e9duisant l'occurrence des blocages concurrents dans vmalloc().\n<li class=\"l\"> Un m\u00e9canisme de patching \u00e0 chaud (live patching) a \u00e9t\u00e9 impl\u00e9ment\u00e9 pour l'architecture LoongArch, permettant d'appliquer des corrections au noyau sans red\u00e9marrage.\n<li class=\"l\"> Pour les syst\u00e8mes RISC-V, la prise en charge de l'appel syst\u00e8me membarrier() a \u00e9t\u00e9 mise en place, permettant d'\u00e9tablir des barri\u00e8res m\u00e9moire pour les threads actifs dans le syst\u00e8me.\n<li class=\"l\"> Les exigences concernant la version de LLVM\/Clang n\u00e9cessaire pour compiler le noyau ont \u00e9t\u00e9 \u00e9lev\u00e9es. D\u00e9sormais, une version minimale de LLVM 13.0.1 est requise (auparavant, une compilation avec LLVM 11+ \u00e9tait prise en charge).\n<li class=\"l\"> Le m\u00e9canisme \u00ab User trace events \u00bb, qui permet de cr\u00e9er des \u00e9v\u00e9nements de tra\u00e7age \u00e0 partir de processus utilisateur pour suivre les activit\u00e9s dans l'espace utilisateur, a \u00e9t\u00e9 enrichi d'un support pour l'exportation d'informations sur les \u00e9v\u00e9nements dans divers formats (USER_EVENT_REG_MULTI_FORMAT).\n<li class=\"l\"> Le m\u00e9canisme de tra\u00e7age des appels de fonctions a \u00e9t\u00e9 am\u00e9lior\u00e9 pour suivre l'\u00e9tat des arguments d'entr\u00e9e de la fonction lors de la tra\u00e7abilit\u00e9 des sorties. Les valeurs du retour peuvent maintenant \u00eatre associ\u00e9es aux arguments utilis\u00e9s lors de l'appel de la fonction.\n<li class=\"l\"> L'outil perf a ajout\u00e9 un support pour le mode d'agr\u00e9gation de sortie \u00ab cluster \u00bb (\u00ab perf stat -a \u2014per-cluster \u00bb) afin de regrouper les statistiques des ressources partag\u00e9es. Il est maintenant possible d'utiliser la biblioth\u00e8que libcapstone pour le d\u00e9sassemblage des instructions processeur (\u00ab perf script -F disasm \u00bb). Des optimisations de la consommation de m\u00e9moire lors de l'ex\u00e9cution des commandes perf report et perf annotate ont \u00e9t\u00e9 effectu\u00e9es.                    <\/ul>\n<li class=\"l\"> <b>Virtualisation et s\u00e9curit\u00e9<\/b>\n<ul>\n<li class=\"l\"> Une protection contre la vuln\u00e9rabilit\u00e9 RFDS (Register File Data Sampling) a \u00e9t\u00e9 ajout\u00e9e aux processeurs Intel Atom, permettant d'extraire des informations r\u00e9siduelles des fichiers de registre (RF, Register File) du processeur, utilis\u00e9s pour stocker le contenu des registres entre toutes les t\u00e2ches sur le m\u00eame c\u0153ur de CPU. Pour bloquer la vuln\u00e9rabilit\u00e9, une mise \u00e0 jour du microcode est n\u00e9cessaire ainsi que l'utilisation de l'instruction VERW pour effacer le contenu des tampons microarchitecturaux lors du retour de l'espace noyau \u00e0 l'espace utilisateur. Pour activer la protection au d\u00e9marrage du noyau, vous pouvez sp\u00e9cifier le drapeau \u00ab reg_file_data_sampling=on \u00bb. Les informations sur la vuln\u00e9rabilit\u00e9 et la disponibilit\u00e9 du microcode n\u00e9cessaire peuvent \u00eatre \u00e9valu\u00e9es dans le fichier \u00ab \/sys\/devices\/system\/cpu\/vulnerabilities\/reg_file_data_sampling \u00bb.\n<li class=\"l\"> Un support de base pour la protection des syst\u00e8mes invit\u00e9s a \u00e9t\u00e9 ajout\u00e9 gr\u00e2ce \u00e0 l'extension AMD SEV-SNP (Secure Nested Paging), qui permet un fonctionnement s\u00e9curis\u00e9 avec des tables de pages m\u00e9moire imbriqu\u00e9es et prot\u00e8ge contre les attaques \u00ab undeSErVed \u00bb et \u00ab SEVerity \u00bb sur les processeurs AMD EPYC, permettant de contourner le m\u00e9canisme de protection AMD SEV (Secure Encrypted Virtualization). <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4384\">KVM<\/a> Les modifications n\u00e9cessaires pour utiliser SNP sont pr\u00e9vues dans la version 6.10.\n<li class=\"l\"> Les modules impl\u00e9mentant les technologies IMA (Integrity Measurement Architecture) et EVM (Extended Verification Module) ont \u00e9t\u00e9 adapt\u00e9s pour utiliser le framework LSM (Linux Security Modules), ce qui a permis de simplifier consid\u00e9rablement le code sans perte de fonctionnalit\u00e9, de fusionner des fonctionnalit\u00e9s dupliqu\u00e9es et de tirer parti des capacit\u00e9s standards offertes par LSM. Le module IMA est destin\u00e9 \u00e0 v\u00e9rifier l'int\u00e9grit\u00e9 des composants du syst\u00e8me d'exploitation par des signatures num\u00e9riques et des hachages. Le module EVM prot\u00e8ge les attributs \u00e9tendus des fichiers (xattrs) contre les attaques visant \u00e0 compromettre leur int\u00e9grit\u00e9 (EVM emp\u00eachera une attaque hors ligne, o\u00f9 un attaquant pourrait modifier des m\u00e9tadonn\u00e9es, par exemple en d\u00e9marrant \u00e0 partir de son propre support).\n<li class=\"l\"> Les appels syst\u00e8me lsm_list_modules(), lsm_get_self_attr() et lsm_set_self_attr() ont \u00e9t\u00e9 remani\u00e9s pour une meilleure compatibilit\u00e9 avec les environnements 32 bits. Ces appels sont destin\u00e9s \u00e0 l'affichage de la liste des modules LSM (Linux Security Modules) charg\u00e9s et \u00e0 la r\u00e9cup\u00e9ration\/d\u00e9finition des attributs du module LSM. Ce changement rompt la compatibilit\u00e9 ascendante, mais Linus Torvalds a jug\u00e9 que la modification \u00e9tait acceptable, car les nouveaux appels syst\u00e8me avaient \u00e9t\u00e9 ajout\u00e9s dans la derni\u00e8re version du noyau et ne sont pas encore utilis\u00e9s dans les applications.\n<li class=\"l\"> Une tentative a \u00e9t\u00e9 faite pour r\u00e9activer le m\u00e9canisme UBSAN (Undefined Behavior Sanitizer). Le probl\u00e8me r\u00e9side dans le fait que les compilateurs traitent diff\u00e9remment les d\u00e9bordements d'entiers sign\u00e9s et non sign\u00e9s. Les d\u00e9bordements sign\u00e9s et les d\u00e9bordements de pointeurs rel\u00e8vent du comportement ind\u00e9fini, tandis que les d\u00e9bordements non sign\u00e9s sont tronqu\u00e9s modulo 2n, ne conservant que les bits de poids faible du r\u00e9sultat (\u00ab wrap-around \u00bb) et ne sont pas consid\u00e9r\u00e9s comme un comportement ind\u00e9fini. Pour \u00e9viter les situations pouvant entra\u00eener un comportement ind\u00e9fini, le noyau est compil\u00e9 avec l'option \u00ab -fno-strict-overflow \u00bb, ce qui entra\u00eene l'utilisation du \u00ab wrap-around \u00bb pour tous les d\u00e9bordements d'entiers. GCC et Clang ne peuvent pas diagnostiquer correctement certains probl\u00e8mes lorsque le flag \u00ab -fno-strict-overflow \u00bb est utilis\u00e9, et l'activation de l'UBSAN vise \u00e0 mener un travail collaboratif avec les d\u00e9veloppeurs de compilateurs afin de r\u00e9soudre les faux positifs et d'identifier les d\u00e9bordements d'entiers dans des endroits o\u00f9 il n'y a pas de v\u00e9rifications explicites.\n<p>Pour v\u00e9rifier les d\u00e9bordements possibles dans le noyau, des constructions du type \u00ab var + offset \u00bb sont utilis\u00e9es. <var> PAGE_SHIFT) &lt; pgoff){..}&quot;), qui sont li\u00e9es \u00e0 la compilation avec le flag &quot;-fno-strict-overflow&quot; et ne couvrent pas tout le code o\u00f9 un d\u00e9bordement pourrait potentiellement se produire. Le probl\u00e8me est qu&#039;avec l&#039;utilisation d&#039;UBSAN, de telles v\u00e9rifications entra\u00eenaient un grand nombre de faux avertissements, et c&#039;est pourquoi, en 2021, l&#039;UBSAN a d\u00fb \u00eatre d\u00e9sactiv\u00e9. Dans la version mise \u00e0 jour, il est propos\u00e9 d&#039;utiliser des annotations sp\u00e9ciales __signed_wrap et __unsigned_wrap, ainsi que des macros pr\u00eates \u00e0 l&#039;emploi avec des v\u00e9rifications add_would_overflow(a, b) et add_wrap(a, b), permettant de s\u00e9parer l&#039;utilisation pr\u00e9vue par les d\u00e9veloppeurs des d\u00e9bordements d&#039;entiers des d\u00e9bordements al\u00e9atoires pouvant entra\u00eener des vuln\u00e9rabilit\u00e9s. La proposition d&#039;une refonte plus importante du noyau avec l&#039;introduction de d\u00e9finitions de types suppl\u00e9mentaires a \u00e9t\u00e9 rejet\u00e9e par Linus Torvalds.                      <\/ul>\n<li class=\"l\"> <b>Sous-syst\u00e8me r\u00e9seau<\/b>\n<ul>\n<li class=\"l\">  Dans le sous-syst\u00e8me r\u00e9seau, des efforts ont \u00e9t\u00e9 r\u00e9alis\u00e9s pour r\u00e9duire la survenance de blocages concurrents (\u00ab lock contention \u00bb, tentative d'obtenir un verrou d\u00e9tenu par un autre thread). L'utilisation des verrous RTNL a \u00e9t\u00e9 r\u00e9duite.\n<li class=\"l\"> Ajout de la possibilit\u00e9 d'activer le support du busy polling dans le cadre d'appels sp\u00e9cifiques \u00e0 epoll. La taille du pool et les param\u00e8tres budg\u00e9taires peuvent \u00eatre configur\u00e9s s\u00e9par\u00e9ment des param\u00e8tres syst\u00e8me par d\u00e9faut.\n<li class=\"l\"> Structure net_hotdata mise en \u0153uvre pour am\u00e9liorer l'efficacit\u00e9 du cache des variables de configuration r\u00e9seau les plus fr\u00e9quemment utilis\u00e9es.\n<li class=\"l\"> MPTCP a ajout\u00e9 la prise en charge de l'installation d'options TCP_NOTSENT_LOWAT pour les sockets, permettant de limiter la taille du tampon d'envoi. L'API pour les sockets MCTP a ajout\u00e9 la prise en charge des identifiants r\u00e9seau (&#171;network ID&#187;), permettant d'utiliser plusieurs r\u00e9seaux MCTP non chevauchants sur une m\u00eame h\u00f4te.\n<li class=\"l\"> Ajout du support pour le redirection des messages ICMP contenant des informations d'erreur dans IPSec (RFC 4301).\n<li class=\"l\"> Acc\u00e9l\u00e9ration du processus de scan des routes arriv\u00e9es \u00e0 expiration.\n<li class=\"l\"> Optimisation de la performance de XDP gr\u00e2ce \u00e0 une restriction plus stricte sur l'allocation de grandes blocs de m\u00e9moire.\n<li class=\"l\"> Ajout de la possibilit\u00e9 d'attacher des m\u00e9tadonn\u00e9es aux messages netconsole.\n<li class=\"l\"> Dans Netfilter, il est d\u00e9sormais possible de d\u00e9finir des tables \u00e0 partir de l'espace utilisateur, qui sont li\u00e9es au processus de gestion en arri\u00e8re-plan et ne sont pas supprim\u00e9es automatiquement apr\u00e8s l'ach\u00e8vement de l'application utilisateur.\n<li class=\"l\"> Dans nftables, l'ajout d'\u00e9l\u00e9ments \u00e0 des ensembles avec des plages combin\u00e9es a \u00e9t\u00e9 acc\u00e9l\u00e9r\u00e9.                      <\/ul>\n<li class=\"l\"> <b>Mat\u00e9riel<\/b>\n<ul>\n<li class=\"l\"> Dans le pilote i915, le d\u00e9veloppement pour le support des puces Intel LunarLake (Xe 2) se poursuit. Nouveaux identifiants PCI ajout\u00e9s pour les appareils bas\u00e9s sur les puces Intel Arrow Lake et Alder Lake N. Le support du tunneling DisplayPort et de l'allocation de bande passante a \u00e9t\u00e9 ajout\u00e9. Le mode fastboot est activ\u00e9 pour toutes les plateformes. Le support de l'affichage de d\u00e9bogage li\u00e9 aux appareils sp\u00e9cifiques a \u00e9t\u00e9 ajout\u00e9.\n<li class=\"l\"> Dans le pilote AMDGPU, des pr\u00e9parations ont \u00e9t\u00e9 effectu\u00e9es pour le support des GPU AMD RDNA3.5 et RDNA4. Support ajout\u00e9 pour ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 et du cadre RAS ACA. Un param\u00e8tre freesync_video a \u00e9t\u00e9 ajout\u00e9 au module du noyau pour activer le support exp\u00e9rimental de l'optimisation du changement de modes vid\u00e9o utilisant la technologie de synchronisation adaptative FreeSync.\n<li class=\"l\"> Dans le pilote Nouveau, le code de gestion de l'\u00e9cran a \u00e9t\u00e9 converti pour utiliser la fonction kmemdup().\n<li class=\"l\"> Le travail sur le pilote drm (Direct Rendering Manager) pour GPU bas\u00e9 sur l'architecture Intel Xe, utilis\u00e9 dans les cartes graphiques Intel de la famille Arc et dans les graphiques int\u00e9gr\u00e9s des processeurs Tiger Lake, a \u00e9t\u00e9 poursuivi.\n<li class=\"l\"> Un pilote DRM a \u00e9t\u00e9 ajout\u00e9 pour les puces Mediatek MT8188 VDOSYS1.\n<li class=\"l\"> Les configurations du noyau li\u00e9es aux sous-syst\u00e8mes vid\u00e9o ont \u00e9t\u00e9 d\u00e9plac\u00e9es vers la section CONFIG_VIDEO.\n<li class=\"l\"> Ajout de la prise en charge des SoC ARM64 : Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.\n<li class=\"l\"> Ajout du support des plates-formes et appareils ARM : t\u00e9l\u00e9phones Android bas\u00e9s sur la puce Tegra30, mod\u00e8les Chromebook bas\u00e9s sur Mediatek MT8186, NAS, tablettes et consoles de jeux bas\u00e9es sur Rockchips RK35xx, cartes White Hawk bas\u00e9es sur SoC Renesas, cartes bas\u00e9es sur Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.\n<li class=\"l\"> Le code du sous-syst\u00e8me audio ALSA a \u00e9t\u00e9 refactoris\u00e9. Prise en charge des syst\u00e8mes audio Microchip SAM9x7, NXP i.MX95 et Qualcomm WCD939x ajout\u00e9e. Le pilote SoundWire a int\u00e9gr\u00e9 la prise en charge ASoC avec les coprocesseurs audio AMD ACP 6.3, et pour les syst\u00e8mes Intel, un mode DSPless a \u00e9t\u00e9 impl\u00e9ment\u00e9. Prise en charge de codecs audio suppl\u00e9mentaires Cirrus HD ajout\u00e9e. La gestion des p\u00e9riph\u00e9riques audio a \u00e9t\u00e9 am\u00e9lior\u00e9e dans le pilote virtio.\n<li class=\"l\"> Prise en charge des contr\u00f4leurs Ethernet Marvell Octeon PCI Endpoint NIC VF et Intel E825-C 100G ajout\u00e9e.            <\/ul>\n<\/ul>\n<p>Simultan\u00e9ment, la Fondation latino-am\u00e9ricaine pour le logiciel libre a form\u00e9 une variante enti\u00e8rement libre du noyau 6.9 \u2014 Linux-libre 6.9-gnu, purg\u00e9e des \u00e9l\u00e9ments de firmware et de pilotes contenant des composants non libres ou des sections de code dont l'utilisation est limit\u00e9e par le fabricant. La version 6.9 met \u00e0 jour le code de nettoyage des blobs dans les pilotes amdgpu, ath12k, adreno, btusb et r8169. Le nouveau pilote ptp_fc3 a \u00e9galement \u00e9t\u00e9 nettoy\u00e9. Des corrections ont \u00e9t\u00e9 apport\u00e9es au nettoyage des noms des blobs dans les fichiers dts (devicetree) pour l'architecture Aarch64. Des probl\u00e8mes de nettoyage du pilote i915, provoquant des blocages lors de l'initialisation, ont \u00e9t\u00e9 r\u00e9solus. Des modifications ont \u00e9t\u00e9 apport\u00e9es concernant le traitement des blobs fournis sous forme de dumps hexad\u00e9cimaux.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61160\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u043c\u043e\u0434\u0443\u043b\u044c dm-vdo \u0434\u043b\u044f \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0432 FUSE, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f pidfd \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c BPF-\u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Rust \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 ARM64, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0424\u0421 Ext2 \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NTFS, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-115726","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/reliz-yadra-linux-6-9\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/reliz-yadra-linux-6-9\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Version du noyau Linux 6.9 | ProHoster","description":"Apr\u00e8s deux mois de d\u00e9veloppement, Linus Torvalds a pr\u00e9sent\u00e9 la version du noyau Linux 6.9.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/reliz-yadra-linux-6-9","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/reliz-yadra-linux-6-9","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-05-13T11:52:06+00:00","article:modified_time":"2024-05-13T11:52:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115726","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 00:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 00:14:20","updated":"2026-01-23 00:14:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/115726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=115726"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/115726\/revisions"}],"predecessor-version":[{"id":164261,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/115726\/revisions\/164261"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=115726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=115726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=115726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}