Nouvelles fonctionnalités et changements dans UEK R6

Résumé des changements notables dans UEK R6

Les sections suivantes décrivent les nouvelles fonctionnalités majeures d'Unbreakable Enterprise Kernel Release 6 (UEK R6), par rapport à UEK R5. Voici une liste sommaire des principales caractéristiques de cette version :

  • Base stable du noyau Linux 5.4

    La version 5.4 du noyau principal utilisée comme noyau de base pour UEK R6 comprend de nombreuses fonctionnalités et améliorations du noyau en amont par rapport aux versions précédentes et par rapport à RHCK. Pour obtenir la liste des principales fonctions et améliorations disponibles dans ce noyau, au lieu de la version majeure précédente d'UEK, voir Fonctionnalité du noyau principal.

  • Soutien du bras

    De nombreuses fonctionnalités et améliorations de cette version visent à améliorer la prise en charge de la plate-forme Arm (aarch64). Les changements notables incluent des améliorations de sécurité et une meilleure prise en charge de la virtualisation sur Arm. Pour plus de détails, voir Plate-forme ARM (aarch64).

  • Améliorations apportées à Cgroup v2

    La fonctionnalité Cgroup v2 a d'abord été introduite dans UEK R5 pour activer la fonctionnalité de contrôleur CPU. UEK R6 inclut toutes les fonctions de Cgroup v2, ainsi que plusieurs améliorations décrites dans Fonctionnalités du noyau de base.

  • Améliorations de ktask

    ktask est une structure permettant de paralléliser les travaux nécessitant beaucoup de CPU dans le noyau. Il peut être utilisé pour accélérer de grandes tâches sur des systèmes avec beaucoup de puissance CPU disponible, où une tâche est un fil unique dans l'espace utilisateur. ktask fournit une API générique qui peut ajouter simultanéité à de nombreux types de tâches, tout en réduisant la complexité de la gestion de plusieurs threads, et est utilisé lors de l'initialisation de la page de structure et de l'initialisation des invités KVM activés par VFIO pour réduire les temps de démarrage.

    La documentation pour ktask est fournie dans /usr/share/doc/kernel-uek-doc-5.4/core-api/ktask.html, bien que l'interface ne soit pas encore stable.

  • Kswapd parallélisé

    Le remplacement de page est géré dans le noyau de manière asynchrone par kswapd et de manière synchrone par récupération directe. Lorsque les pages libres dans la liste de zones libres sont faibles, kswapd analyse les pages pour les pages inutilisées qui peuvent être expulsées afin de libérer de l'espace pour les nouvelles allocations de pages. Cette optimisation peut améliorer les performances en évitant les récupérations directes, qui peuvent nécessiter beaucoup de ressources et prendre beaucoup de temps.

  • Signature du micrologiciel Kexec

    L'option de vérification et de validation d'une signature d'image de noyau est activée dans UEK R6. Lorsque kexec est utilisé pour charger un noyau depuis UEK R6, la vérification et la validation de la signature d'image du noyau peuvent être mises en oeuvre pour s'assurer qu'un système charge uniquement une image de noyau signée et validée.

  • Amélioration de la gestion de la mémoire

    Plusieurs améliorations de performances ont été implémentées dans le code de gestion de la mémoire du noyau afin d'améliorer l'efficacité de l'effacement des pages et du cache, ainsi que la gestion des défaillances et la création de rapports. Pour plus d'informations, voir Gestion de la mémoire.

  • Mises à jour NVDIMM

    Les mises à jour des fonctionnalités NVDIMM ont été implémentées afin que la mémoire persistante puisse désormais être utilisée comme RAM traditionnelle et une mise à jour qui aide à normaliser la fonctionnalité d'effacement à clé zéro a également été incluse. Pour plus d'informations, voir Fonctionnalité du noyau de base.

  • DTrace v2.0

    La prise en charge de DTrace est activée dans UEK R6 et a été réimplémentée pour utiliser le filtre de paquets Berkeley (BPF) intégré au noyau Linux. La version actuelle est la première version de Dtrace basée sur la nouvelle implémentation, elle n'atteint pas encore la parité des fonctionnalités avec DTrace sur UEK R5, mais elle le sera à l'avenir. D'autres améliorations ont été apportées pour simplifier l'ensemble des RPM disponibles pour DTrace en raison des améliorations apportées à la chaîne d'outils en amont. Pour plus d'informations, voir DTrace v2.0.

  • OCFS2

    La prise en charge du système de fichiers OCFS2 est activée dans UEK R6. Voir OCFS2 pour plus d'informations.

  • Prise en charge du système de fichiers Btrfs

    La prise en charge du système de fichiers Btrfs est activée sur les systèmes Oracle Linux 8 si UEK R6 est installé sur le système. D'autres améliorations ont été apportées à Btrfs dans cette version. Pour plus d'informations, voir Btrfs.

Fonctionnalités du noyau principal

Plusieurs fonctionnalités majeures du noyau central ont été implémentées dans le noyau amont, entre la version 4.14 utilisée comme version du noyau de base pour UEK R5, et la version 5.4 du noyau utilisée comme version du noyau de base pour UEK R6. Bien que certaines fonctionnalités aient été rétroportées dans le noyau UEK R5 dans les versions de mise à jour, les nouvelles fonctionnalités importantes suivantes sont disponibles dans UEK R6 :

  • Mode de verrouillage (x86_64 uniquement)

    Le mode de verrouillage est considérablement amélioré et plusieurs modifications d'implémentation méritent d'être notées. Cette version fait la distinction entre les modes intégrité et confidentialité. Pour plus d'informations sur cette fonction, voir Sécurité.

  • fs-vérité

    fs-verity est une fonctionnalité du noyau dans laquelle les systèmes de fichiers peuvent se connecter pour protéger l'intégrité et l'authenticité des fichiers en lecture seule. Cette fonctionnalité peut être utilisée pour détecter la corruption de fichiers non malveillants et la modification malveillante de fichiers qui ne doivent pas être modifiés sur un système. Cette fonctionnalité ne fonctionne actuellement qu'avec les systèmes de fichiers ext4 et f2fs.

  • E/S asynchrones hautes performances avec io_uring

    Cette fonctionnalité fournit une interface d'E/S asynchrones rapide et évolutive pour les E/S tamponnées et non tamponnées. Il prend également en charge les E/S interrogées asynchrones. Une bibliothèque d'espace utilisateur, liburing, fournit des fonctionnalités de base aux applications avec des assistants pour permettre aux applications de configurer facilement une instance io_uring et de soumettre/compléter des E/S.

  • Mises à jour de Cgroup

    La fonctionnalité Cgroup v2 complète est incluse dans UEK R6. Les fonctionnalités de l'UEK R5 incluaient certaines fonctionnalités, telles que le contrôleur CPU, qui permettait de définir des ressources CPU pour un groupe particulier de tâches. UEK R6 comprend ces fonctionnalités, ainsi que les améliorations notables suivantes :

    • Tueur OOM conscient d'un groupe qui peut être utilisé pour tuer un groupe en tant qu'unité unique afin de maintenir l'intégrité d'une charge de travail. Cette fonctionnalité peut être activée en définissant memory.oom.group dans le contrôleur de mémoire cgroup v2. Ce paramètre détermine que le cgroup est une charge de travail indivisible, et que les tâches, ainsi que leurs descendants, sont tuées ensemble par le tueur OOM ou pas du tout.

    • Un contrôleur de congélateur est ajouté à cgroupsv2, offrant la possibilité d'arrêter la charge de travail dans un cgroup et de libérer temporairement certaines ressources.

    • Cette version introduit blk-iocost, un contrôleur proportionnel de travail basé sur le coût d'E/S. Il dispose actuellement d'un modèle de coût linéaire simple intégré, où chaque E/S est classée séquentielle ou aléatoire et reçoit un coût de base, en conséquence. Un coût proportionnel à la taille supplémentaire est ensuite ajouté au dessus.

  • NVDIMM

    La mémoire persistante peut désormais être utilisée en tant que RAM traditionnelle. En outre, des correctifs ont été implémentés autour des commandes liées à la sécurité dans libnvdimm pour permettre l'utilisation de clés où les données utiles étaient remplies de valeurs nulles, afin de permettre aux opérations sécurisées de continuer à avoir lieu là où une clé zéro est utilisée. Une implémentation commune a été mise en place pour s'assurer que toutes les commandes utilisent la même sémantique à clé zéro et que l'effacement sécurisé des données sur un NVDIMM peut être effectué lorsqu'une clé zéro est utilisée. Cette modification est importante car certaines plates-formes NVDIMM permettent la sécurité avec une clé zéro par défaut, plutôt que de laisser le système d'exploitation spécifier la clé initiale, ce qui pourrait empêcher les opérations de fonctionner là où la sécurité était activée.

Bras (aarch64) Plateforme

Les caractéristiques ARM notables suivantes sont implémentées dans UEK R6 :

  • Amélioration de la sécurité

    Diverses améliorations ont été apportées pour améliorer les mesures d'atténuation contre les attaques, notamment les wrappers syscall, l'authentification de pointeur, le support KASLR (kernel virtual address randomization) et le support bit PSTATE.SSBS (ARM v8.5 core).

  • Plugiciel de mémoire

    Prise en charge de base de la mémoire de branchement à chaud.

  • Améliorations apportées à KVM

    Les améliorations pour les clients KVM sur les systèmes ARM (aarch64) comprennent l'authentification par pointeur (ARM v8.3) et la prise en charge de l'extension vectorielle évolutive (SVE).

Cryptographie

Les caractéristiques cryptographiques notables suivantes sont implémentées dans UEK R6 :

  • Gestion simplifiée de la description des clés

    Les clés et les keyrings sont plus sensibles à l'espace de noms .

  • Compression Zstandard

    Zstandard compression (zstd) est ajouté à crypto et scompress. Seul le niveau par défaut est activé.

DTrace v2.0

DTrace v2.0 est une réimplémentation de DTrace qui utilise les fonctionnalités existantes de traçage du noyau Linux, comme eBPF, qui n'existait pas lorsque DTrace a été porté pour la première fois sur Linux. La nouvelle implémentation supprime les dépendances DTrace sur les patches de noyau spécialisés.

DTrace v2.0 est disponible uniquement avec UEK R6. Les versions précédentes d'UEK continuent d'inclure l'implémentation initiale de DTrace.

DTrace V2.0 sur Oracle Linux 8 a été réimplémenté en tant qu'application d'espace utilisateur. Il ne nécessite plus l'exécution de la bibliothèque libdtrace-ctf sur Oracle Linux 8. La fonctionnalité de cette bibliothèque est intégrée à la chaîne d'outils Oracle Linux 8 GNU. Notez que libdtrace-ctf est toujours requis sur Oracle Linux 7.

La fonctionnalité est offerte au fur et à mesure qu'elle devient disponible, en commençant par un ensemble limité de capacités (principalement des fonctionnalités de cadre qui n'offrent pas beaucoup de fonctionnalités visibles par l'utilisateur), mais atteignant finalement, puis dépassant, le support antérieur.

  • Changements et améliorations notables

    Les changements et améliorations notables suivants sont inclus :

    • La plupart des fonctionnalités sous-jacentes de DTrace sont réimplémentées (compilateur D, API fournisseur, gestion des sondes) dans l'espace utilisateur. Une grande partie de cette fonctionnalité résidait auparavant dans le noyau.

    • Le compilateur D est maintenant ciblé pour générer du code eBPF, et la plupart du langage D est déjà pris en charge par le compilateur.

    • La sortie de rapport du vérificateur BPF est activée. Lorsque des scripts D compilés sont chargés dans le noyau en tant que programmes BPF, le vérificateur BPF effectue une analyse de code statique pour assurer la sécurité du programme. Lorsque cette analyse échoue, la sortie est générée et DTrace signale cette sortie à l'utilisateur.

    • Les sondes FBT (Function Boundary Tracing) sont activées avec des fonctions regroupées par module (peu importe si le module est compilé ou chargeable) si le noyau fournit ces informations dans /proc/kallsyms (ou /proc/kallmodsyms).

    • Les sondes d'entrée et de retour Syscall (fournisseur de systrace) sont activées, avec prise en charge des arguments de sonde entrés. Actuellement disponible uniquement dans la sortie -lv.

    • Les sondes SDT (Statically Defined Tracing) basées sur des tracepoints Linux sont activées, avec prise en charge des arguments de sonde typés. Actuellement disponible uniquement dans la sortie -lv.

  • Limites notables

    Les limites à noter sont les suivantes :

    • La fonction printf() n'est pas encore mise en oeuvre; utilisez trace().

    • L'action trace() fonctionne actuellement uniquement sur des valeurs numériques et non sur des chaînes.

    • La plupart des actions, telles que exit(), ne sont pas encore mises en oeuvre.

    • Sur les trois portées de variable, Global ("x") et thread-local ("self->x") ne sont pas encore mis en oeuvre

    • De nombreux fournisseurs (comme dtrace ou profil) - y compris des sondes telles que BEGIN, END et profile-1n - ne sont pas encore fonctionnels

    • Les descriptions de sonde (provider:module:function:name) qui correspondent à plusieurs sondes à l'aide de caractères génériques ne sont pas encore prises en charge. Par exemple, write:entry fonctionne car il met en correspondance syscall:vmlinux:write:entry uniquement, mais write:* ne le fait pas car il met en correspondance syscall:vmlinux:write:entry et syscall:vmlinux:write:return.

Exemple d'utilisation

Les exemples suivants illustrent la fonctionnalité actuelle de DTrace v2.0 sur UEK R6. Par exemple, supposons que les commandes sont exécutées en tant que racine et que /usr/sbin figure dans la variable PATH.

  • Afficher les informations sur la version de DTrace :

    # dtrace -V
    DTrace 2.0.0 [Pre-Release with limited functionality]
    dtrace: Oracle D 2.0
  • Sondes de liste :

    # dtrace -l
    DTrace 2.0.0 [Pre-Release with limited functionality]
    ID   PROVIDER    MODULE                     FUNCTION NAME
    1     dtrace                                        BEGIN
    2     dtrace                                        END
    3     dtrace                                        ERROR
    4        fbt   vmlinux     trace_initcall_finish_cb entry
    5        fbt   vmlinux     trace_initcall_finish_cb return
    6        fbt   vmlinux         initcall_blacklisted entry
    7        fbt   vmlinux         initcall_blacklisted return          

    Sur ce système particulier, il y avait :

    • Sondes 3 dtrace

    • Sondes 87890 fbt (basées sur kprobes)

    • Sondes 1262 sdt (basées sur des tracepoints Linux)

    • 666 sondes syscall

  • Exemple de script qui utilise l'option -S, pour générer le code D compilé en tant que programme eBPF et qui utilise l'option -e, pour quitter après la compilation :

    # dtrace -Sen 'write:entry { trace(1) }'
    DTrace 2.0.0 [Pre-Release with limited functionality]
    
    Disassembly of ::write:entry
              
    DIFO 0x46af600 returns D type (integer) (size 8) [record 16 bytes]
    INS OFF  OPCODE                  INSTRUCTION
    000 000: 62 a 0 fef8 ffffffff    stw  [%fp-264], -1     ! = EPID
    001 008: 62 a 0 fefc 00000000    stw  [%fp-260], 0
    002 016: 7a a 0 ff00 00000000    stdw [%fp-256], 0
    003 024: 7a a 0 ff08 00000000    stdw [%fp-248], 0
    004 032: 7a a 0 ff10 00000000    stdw [%f
    [...]
  • Exemple de script :

    # dtrace -n '
    write:entry,
    write:return
    {
    this->x = 3;                /* clause-local variables */
    this->y = 8;
    trace(this->x * this->y);
    trace(&`max_pfn);
    }'

    Dans ce qui précède :

    • Sonde write() entrée et sortie d'appel système (plusieurs sondes à la fois);

    • Sonde avec enregistrement de l'adresse d'un identifiant de noyau (max_pfn) et d'autres éléments de données;

    • Les sondes sont nommées (explicitement, sans caractères génériques) avec la même action.

    • Les variables clause-locales sont utilisées.

    • L'action trace() est utilisée pour produire un rapport de sortie.

Systèmes de fichiers

Voici les caractéristiques les plus remarquables qui ont été mises en œuvre pour les systèmes de fichiers dans UEK R6 :

Btrfs

Btrfs continue d'être pris en charge dans UEK. Plusieurs améliorations et correctifs ont été appliqués dans cette mise à jour, notamment la prise en charge des fichiers de swap, la compression ZStandard et diverses améliorations de performance. La prise en charge de Btrfs pour les systèmes de fichiers racines est introduite dans Oracle Linux 8.3.

ext4

Des horodatages 64 bits ont été ajoutés aux champs superblock.

OCFS2

OCFS2 continue d'être pris en charge dans UEK. Plusieurs améliorations et correctifs ont été appliqués dans cette mise à jour, notamment la prise en charge de la fonctionnalité AIO 'nowait', la prise en charge des plates-formes Arm et la lecture du superbloc du journal pour les opérations en ligne et hors ligne.

XFS

Une nouvelle infrastructure de rapports de santé en ligne et un espace utilisateur ioctl pour obtenir l'état des métadonnées après l'ajout de fsck en ligne. Également ajouté dans cette version est la prise en charge de la mise à jour des fichiers de swap et de swap sur les périphériques en temps réel, ainsi que la prise en charge partielle de reflink. Diverses améliorations de performance ont également été apportées.

NFS

Des améliorations ont été apportées aux performances de RPC et des composants client et serveur NFS. Des améliorations significatives ont été apportées au NFS avec RDMA. Les améliorations suivantes ont été apportées : plusieurs connexions de client TCP NFSv4.1+, par serveur, pour un débit amélioré du parallélisme matériel, un comportement de montage logiciel amélioré et des diagnostics améliorés.

Gestion de la mémoire

Les fonctionnalités notables suivantes de gestion de la mémoire sont implémentées dans UEK R6 :

  • Rinçage de l'équilibreur de charge de travail

    Le code de rinçage TLB est amélioré pour éviter les rinçages inutiles et réduire les tirs de TLB.

  • Effacement de larges pages

    La gestion de la mémoire est améliorée pour améliorer le débit en optimisant le nettoyage des pages volumineuses.

  • Amélioration du cache de pages

    L'efficacité du cache de pages est améliorée en utilisant le type de données Xarray le plus efficace.

  • Amélioration de l'évitement de la fragmentation

    Les algorithmes d'évitement de fragmentation sont améliorés et les temps de compactage et de défragmentation sont plus rapides.

  • Amélioration de la gestion des défaillances THP

    Des améliorations ont été apportées à la gestion des défaillances de Transparent Huge Page (THP) et à la production de meilleurs rapports sur l'état du THP.

Réseau

Les fonctions de réseau suivantes sont mises en oeuvre dans Unbreakable Enterprise Kernel version 6 :

  • TCP - Heure de départ en avance

    La pile TCP utilise désormais le modèle Heure de départ anticipé pour envoyer des paquets, au lieu du modèle le plus rapide possible. Cette amélioration apporte plusieurs gains de performance, car elle résout une limitation dans le cadre TCP/IP d'origine et introduit la version programmée des paquets pour surmonter les limitations matérielles et les goulots d'étranglement.

  • Déchargement de réception générique

    GRO est activé pour le protocole UDP (User Datagram Protocol).

  • Réception TLS

    La version UEK précédente a permis au noyau d'envoyer des messages TLS. Cette version permet au noyau de recevoir également des messages TLS. L'implémentation de la gestion du noyau des connexions TLS offre des gains de performances importants par rapport aux implémentations qui sont limitées à l'espace utilisateur.

  • Réception TCP sans copie

    La version UEK précédente a introduit une fonctionnalité TCP à copie nulle pour envoyer des paquets au réseau. Cette version active la fonctionnalité de réception pour TCP à copie nulle.

  • Filtrage de paquets

    nftables est désormais le serveur dorsal par défaut pour les règles de pare-feu. Le filtrage réseau basé sur BPF (bpfilter) est également ajouté dans cette version.

  • Chemin de données express (XDP) ajouté

    XDP est un transport de paquets flexible et minimal basé sur le noyau pour la mise en réseau à grande vitesse.

RDMA

L'accès direct à la mémoire à distance (RDMA) est une fonctionnalité qui permet un accès direct à la mémoire entre deux systèmes connectés par un réseau. RDMA facilite la mise en réseau à haut débit et à faible latence dans les grappes.

Unbreakable Enterprise Kernel version 6 comprend des fonctionnalités RDMA fournies dans le noyau amont, avec l'ajout des fonctionnalités Ksplice et DTrace.

UEK R6 maintient la parité des caractéristiques avec UEK R5 et comprend les mises à jour en amont notables suivantes :

  • Infrastructure de statistiques dynamiques

    Une infrastructure de statistiques dynamiques a été mise en place pour faciliter la surveillance de divers objets en les liant à des compteurs accessibles via une interface netlink.

  • Compteurs de flux Verbes

    Des correctifs ont été appliqués pour fournir une API qui permet aux applications de l'espace utilisateur de surveiller l'activité du trafic en temps réel et les événements des objets verbes qu'elle gère.

  • Améliorations apportées à RDMA ioctl()

    Diverses mises à jour ont été appliquées pour améliorer RDMA ioctl(). De manière significative, de nouveaux en-têtes sont utilisés et les noms ont été rendus plus cohérents. L'en-tête uverbs_ioctl a été étendu pour inclure driver_id et la représentation compacte de uverbs_attr_spec est activée.

  • Suivi des ressources RDMA

    Une infrastructure générale de suivi des ressources RDMA a été mise en place. Cette infrastructure est utilisée pour fournir des informations détaillées sur la paire de files d'attente (QP), ainsi que des informations globales sur l'utilisation des ressources.

  • La modération CQ est exposée à l'espace utilisateur

    Des correctifs sont appliqués pour exposer la file d'attente d'achèvement (CQ) aux applications de l'espace utilisateur afin de contrôler le nombre d'ECC nécessaires à la création d'un événement. Ce changement donne plus de contrôles aux applications utilisateur pour améliorer le réglage des performances.

  • Fonctionnalité d'espace de noms améliorée

    Divers correctifs ont été appliqués pour améliorer la fonctionnalité de l'espace de noms. Un correctif qui vous permet de modifier en toute sécurité l'espace de noms réseau d'un périphérique RDMA a été appliqué pour ajouter une commande. Le partage d'appareil dans plusieurs espaces de noms de réseau est désactivé et l'exécution des commandes netlink dans les espaces de noms de réseau non init_net est désormais possible.

Sécurité

Les fonctions de sécurité notables suivantes sont mises en oeuvre dans Unbreakable Enterprise Kernel version 6 :

  • Mode de verrouillage pour les systèmes x86_64

    Le mode de verrouillage est amélioré. Ce communiqué fait la distinction entre les modes d'intégrité et de confidentialité. Lorsque le démarrage sécurisé est activé dans UEK R6, le mode d'intégrité de verrouillage est appliqué par défaut. Le mode de confidentialité peut être activé en tant qu'option sur la ligne de commande du noyau ou en utilisant securityfs, lorsque UEFI Secure Boot est activé. Les modes de verrouillage peuvent également être activés lorsqu'une option de ligne de commande du noyau est utilisée pour désactiver le démarrage sécurisé. Cependant, aucune application de verrouillage n'est effectuée par défaut lorsque le démarrage sécurisé est désactivé.

    Les restrictions suivantes sont appliquées lorsque le mode d'intégrité est activé :

    • Imposer des signatures de module de noyau

    • Restreindre l'accès en lecture-écriture à /dev/{mem,kmem,port}

    • Restreindre efivar_ssdt_load

    • Désactiver l'appel système kexec_load

    • Désactiver l'hibernation

    • Interdire l'accès PCI BAR à partir de l'espace utilisateur

    • Interdire l'accès au port d'E/S X86 à partir de l'espace utilisateur

    • Restreindre l'accès aux droits de gestion hypothécaires

    • Limiter l'accès à ACPI custom_method

    • Ignorer le paramètre de noyau acpi_rspd

    • Désactiver le remplacement de la table ACPI

    • Interdire le stockage PCMCIA CIS

    • Interdire TIOCSSEARIAL

    • Interdire les paramètres de module de noyau non sécurisés

    • Interdire le module testmmiotrace

    • Interdire l'accès aux débogues

    Les restrictions suivantes sont appliquées lorsque le mode de confidentialité est activé :

    • Interdire le traçage et les sondes de perf

    • Restreindre l'utilisation de bpf pour lire la mémoire du noyau

    • Interdire l'utilisation dangereuse de perf

    • Interdire les fichiers trace

    • Interdire l'accès à /proc/kcore

    Notez que la gestion des porte-clés du noyau a également changé pour UEK R6, qui utilise maintenant le code du noyau amont de la ligne principale pour implémenter un porte-clés de plate-forme. Les clés MK (Secure Boot DB) et MK (Machine Owner Keys) d'UEFI sont désormais stockées dans le porte-clés de la plate-forme et ne sont pas traitées de la même manière que le porte-clés de confiance du noyau. Bien que kexec fasse confiance aux clés du porte-clés de la plate-forme, celles-ci ne peuvent pas être utilisées pour ajouter une nouvelle autorité de certification au noyau pour IMA (Integrity Measurement Architecture) et ne peuvent pas être utilisées pour vérifier les modules de noyau.

  • IBRS

    Indirect Branch Restricted Speculation (IBRS) continue d'être pris en charge pour les processeurs affectés par la vulnérabilité Spectre V2 Speculative Execution Side Channel Vulnerability et pour lesquels d'autres techniques logicielles ou matérielles peuvent ne pas être suffisantes ou ne pas être disponibles.

  • Amélioration de la protection dans les annuaires mondiaux accessibles en écriture

    Cette version du noyau décourage les attaques d'usurpation d'identité en interdisant l'ouverture de FIFO ou de fichiers réguliers qui ne sont pas détenus par l'utilisateur dans des répertoires collants écrits dans le monde, tels que /tmp.

  • Arm KASLR

    La randomisation des adresses virtuelles du noyau est activée par défaut pour les plates-formes ARM.

  • aarch64 Authentification du pointeur

    Cette fonctionnalité ajoute des primitives qui peuvent être utilisées pour atténuer certaines classes d'attaques de corruption de pile de mémoire sur les plates-formes Arm.

Stockage

Les fonctions de stockage suivantes sont mises en oeuvre dans Unbreakable Enterprise Kernel version 6 :

  • Améliorations apportées à NVMe

    Des pilotes NVMe sur l'hôte TCP Fabrics et les pilotes cibles ont été ajoutés. La prise en charge des chemins multiples et la prise en charge des commandes passthrough ont été ajoutées. La prise en charge des espaces de noms NVMe est étendue pour inclure la protection en écriture des espaces de noms et l'accès asynchrone aux espaces de noms.

Virtualisation

Les fonctions de virtualisation suivantes sont mises en oeuvre dans Unbreakable Enterprise Kernel version 6 :

  • Améliorations de VirtIO

    La fonction VirtIO PMEM ajoute un mécanisme de vidage asynchrone basé sur VirtIO et simule la mémoire persistante à un invité, ce qui lui permet de contourner le cache d'une page d'invité. Un pilote virtualisé VirtIO-IOMMU qui autorise les demandes IOMMU via le transport VirtIO sans émuler de tables de pages est également ajouté dans cette version.

  • Amélioration de la plateforme ARM

    Les systèmes de plate-forme ARM (aarch64) incluent l'authentification par pointeur (ARM v8.3) et la prise en charge de l'extension vectorielle évolutive (SVE).

Mises à jour de pilote

Unbreakable Enterprise Kernel version 6 prend en charge un grand nombre de matériel et d'appareils. En étroite collaboration avec les fournisseurs de matériel et de stockage, Oracle a mis à jour plusieurs pilotes de périphérique à partir des versions de la version principale de Linux 5.4.

La liste complète des modules de pilote inclus dans la dernière mise à jour d'UEK R6, ainsi que les informations de version, sont fournies dans l'annexe sous Modules de pilote dans Unbreakable Enterprise Kernel version 6 (x86_64).

Fonctions de conducteur notables

Les nouvelles fonctionnalités suivantes sont notées dans les pilotes livrés avec UEK R6 :

  • Broadcom BCM573xx pilote de réseau

    La version du pilote bnxt_en a été mise à jour à la version 1.10.1, avec des correctifs supplémentaires rétroportés à partir de la version du noyau amont 5.5 et le fournisseur a apporté des correctifs spécifiques à l'extension et à la mise à jour des fonctionnalités des contrôleurs Ethernet Broadcom Thor.

    Une modification en amont de ce pilote qui a été incorporée dans une mise à jour errata UEK R6 dans la version 5.4.17-2011.6.2 du noyau entraîne une modification du nom du périphérique pour le deuxième port des interfaces réseau Broadcom qui utilisent ce pilote. Par exemple, un périphérique précédemment identifié en tant que eno3d1 est maintenant identifié en tant que eno3. Ce correctif a été appliqué pour améliorer l'appellation des périphériques et également pour répondre aux hypothèses concernant la fonctionnalité du port sur un périphérique, telles que dans les situations où le périphérique réseau peut appartenir à différentes fonctions. Par conséquent, cette modification peut entraîner des problèmes avec les scripts réseau lors de la mise à niveau à partir d'un système qui utilise RHCK ou UEK R5 vers UEK R6. Vous devrez peut-être vous assurer que les scripts réseau sont renommés et mis à jour en conséquence si vous passez d'une version précédente du noyau à une version courante d'UEK R6 ou ultérieure.

  • Broadcom Emulex LightPulse Fibre Channel SCSI pilote

    Le pilote lpfc a été mis à jour à 12.6.0.3. Cette mise à jour inclut un grand nombre de correctifs apportés par le fournisseur pour corriger les modifications apportées au pilote depuis que le noyau amont 5.4 a été mis à disposition et qu'une correction de bogue importante a été apportée pour le micrologiciel de l'adaptateur . Les modifications apportées à ce pilote ont également entraîné des mises à jour d'autres dépendances du noyau, telles que le code NVMe sur Fibre Channel.

  • Pilote QLogic BCM5706/5708/5709/5716

    Le pilote bnx2 est mis à jour et, bien que le numéro de version reste à la version 2.2.6, le pilote inclut les correctifs apportés par le fournisseur et les mises à jour du micrologiciel.

  • Pilote HBA QLogic Fibre Channel

    Le pilote qla2xxx est mis à jour vers la version 10.01.00.22.81.1-k. Cette mise à jour rétablit de nombreux correctifs qui sont depuis entrés dans le noyau en amont et inclut des correctifs apportés par un fournisseur particulier pour améliorer les performances et fournir des correctifs pour certains bogues dans le pilote d'origine.

  • Pilote Microsemi Smart Family Controller

    Le pilote smartpqi est mis à jour vers la version 1.2.10-025 et comprend les correctifs en amont qui ont été appliqués au pilote depuis la version 5.4 du noyau conformément aux directives du fournisseur. Ces mises à jour incluent plusieurs corrections de bogues et améliorations des performances.

  • Pilote de périphérique LSI MPT Fusion SAS 3.0

    Le pilote mpt3sas est mis à jour vers la version 33.100.00.00 et inclut les correctifs apportés par le fournisseur.

Ensembles nouveaux et mis à jour

Pour prendre en charge la nouvelle fonctionnalité ajoutée fournie par l'UEK R6, plusieurs paquets binaires de noyau et d'espace utilisateur ont été ajoutés ou mis à jour à partir des paquets inclus dans la distribution de base. Pour plus d'informations sur les canaux ULN et les référentiels de serveur yum Oracle Linux dans lesquels ces ensembles sont disponibles, voir Installation et disponibilité d'UEK R6.

Les ensembles d'espace du noyau ajoutés et mis à jour pour UEK R6 sont étiquetés avec le préfixe kernel-uek. Le paquet linux-firmware est également mis à jour avec les derniers firmwares disponibles.

Les packages répertoriés ici sont spécifiques à la fonctionnalité de l'espace utilisateur et sont mis à jour pour tirer parti des fonctionnalités disponibles dans UEK R6. Il n'y a aucune dépendance sur ces paquets pour utiliser UEK R6. Si vous utilisez l'un de ces packages et utilisez également UEK R6, vous devez mettre à jour le package vers la dernière version pour une compatibilité complète avec toutes les fonctionnalités disponibles dans UEK R6.

Ensembles

Numéro de version d'Oracle Linux 8

Numéro de version d'Oracle Linux 7

ndctl,ndctl-libs, ndctl-devel, daxctl, daxctl-libs, daxctl-devel

67 (x86_64)

67 (x86_64)

ipmctl, ipmctl-monitor, libipmctl, libipmctl-devel

01.00.00.3467 (x86_64)

01.00.00.3467 (x86_64)

libsafec, libsafec-check, libsafec-devel

3.3 (x86_64)

3.3 (x86_64)

btrfs-progs, btrfs-progs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

xfsprogs, xfsprogs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

ocfs2-tools

1.8.6 (x86_64, aarch64)

1.8.6 (x86_64, aarch64)

e2fs-progs, libss, libss-devel, libcom_err, libcom_err-devel

1.45.4 (x86_64, aarch64)

1.45.4 (x86_64, aarch64)

dtrace, dtrace-devel, dtrace-testsuite

2.0.0 (x86_64, aarch64)

2.0.0 (x86_64, aarch64)

libdtrace-ctf,libdtrace-ctf-devel

S.O.

1.1.0 (x86_64, aarch64)

bcache-tools

1,0,8 (x86_64, aarch64)

1,0,8 (x86_64, aarch64)

cloud-init

18,5 (x86_64, aarch64)

18,5 (x86_64, aarch64)

crash, crash-devel

7.2.7 (x86_64, aarch64)

7.2.7 (x86_64, aarch64)

iproute, iproute-devel, iproute-doc, iproute-tc

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

kexec-tools

2.0.19 (x86_64, aarch64)

2.0.15 (x86_64, aarch64)

libzstd, libzstd-devel

1.3.8 (x86_64, aarch64)

1.3.4 (x86_64, aarch64)

linux-firmware

20200124-999,4 (x86_64, aarch64)

20200124-999,4 (x86_64, aarch64)

nvme-cli

1,9 (x86_64, aarch64)

1,9 (x86_64, aarch64)

nvmetcli

0,7 (x86_64, aarch64)

0,7 (x86_64, aarch64)

nbd

3,20 (x86_64, aarch64)

3,20 (x86_64, aarch64)

drbd-utils

9,0,0 (x86_64, aarch64)

9,0,0 (x86_64, aarch64)

libdnf, python3-libdnf, python3-hawkey

0,35 (x86_64, aarch64)

S.O.