Nouvelles fonctionnalités et modifications dans UEK R6
Résumé des modifications notables dans UEK R6
Les sections suivantes décrivent les nouvelles fonctionnalités majeures d'Unbreakable Enterprise Kernel version 6 (UEK R6) par rapport à UEK R5. Voici une liste récapitulative des principales fonctionnalités de cette version :
-
Base de noyau stable Linux 5.4
La version 5.4 du noyau de la ligne principale utilisée comme noyau de base pour UEK R6 inclut 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 fonctionnalités et améliorations disponibles dans ce noyau, au lieu de la version principale précédente d'UEK, reportez-vous à la section Core Kernel Functionality.
-
Support de bras
De nombreuses fonctionnalités et améliorations de cette version visent à améliorer la prise en charge de la plate-forme Arm (aarch64). Des changements notables incluent des améliorations de sécurité et une meilleure prise en charge de la virtualisation sur Arm. Pour plus d'informations, reportez-vous à la section Arm (aarch64) Platform.
-
Améliorations de Cgroup v2
La fonctionnalité Cgroup v2 a d'abord été introduite dans UEK R5 pour activer la fonctionnalité de contrôleur de CPU. UEK R6 inclut toutes les fonctionnalités de Cgroup v2, ainsi que plusieurs améliorations décrites dans la section Core Kernel Functionality.
-
Améliorations de ktask
ktask est une structure permettant de mettre en parallèle les tâches consommatrices de CPU dans le noyau. Il peut être utilisé pour accélérer les tâches volumineuses sur les systèmes dotés d'une grande puissance CPU disponible, où une tâche est monothreadée dans l'espace utilisateur. ktask fournit une API générique qui peut ajouter concomitance à 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'invité KVM compatible VFIO pour réduire les temps de démarrage.
La documentation de 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 pour libérer de l'espace pour les nouvelles allocations de page. Cette optimisation peut améliorer les performances en évitant les récupérations directes, qui peuvent nécessiter beaucoup de ressources et de temps.
-
Signature du microprogramme 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 à partir de UEK R6, la vérification et la validation des signatures d'image de noyau peuvent être implémentées pour garantir qu'un système charge uniquement une image de noyau signée et validée.
-
Améliorations 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 pour améliorer l'efficacité de l'effacement des pages et du cache, ainsi que les améliorations apportées à la gestion des pannes et au reporting. Pour plus d'informations, reportez-vous à Gestion de la mémoire.
-
Mises à jour de NVDIMM
Les mises à jour de la fonctionnalité 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 permettant de standardiser la fonctionnalité d'effacement à clé zéro a également été incluse. Pour plus d'informations, reportez-vous à la section Core Kernel Functionality.
-
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 Berkeley Packet Filter (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, reportez-vous à DTrace v2.0.
-
OCFS2
La prise en charge du système de fichiers OCFS2 est activée dans UEK R6. Pour plus d'informations, reportez-vous à OCFS2.
-
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, reportez-vous à Btrfs.
Fonctionnalités principales du noyau
Plusieurs fonctionnalités principales du noyau central ont été implémentées dans le noyau en amont, entre la version 4.14 qui a été utilisée comme version de noyau de base pour UEK R5 et la version 5.4 du noyau qui est utilisée comme version de 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 integrity et confidentiality. Pour plus d'informations sur cette fonctionnalité, reportez-vous à Sécurité.
-
fs-verity
fs-verity est une fonctionnalité de noyau à laquelle les systèmes de fichiers peuvent se connecter pour protéger l'intégrité et l'authenticité des fichiers en lecture seule. Cette fonction 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 asynchrone rapide et évolutive pour les E/S mises en mémoire tampon et non mises en mémoire tampon. Il prend également en charge les E/S interrogées asynchrones. Une bibliothèque d'espace utilisateur,
liburing, fournit des fonctionnalités de base pour les applications avec des assistants afin de permettre aux applications de configurer facilement une instanceio_uringet de soumettre/compléter des E/S. -
Mises à jour du groupe C
La fonctionnalité Cgroup v2 complète est incluse dans UEK R6. La fonctionnalité dans UEK R5 incluait certaines fonctionnalités, telles que le contrôleur CPU, qui permettaient de définir des ressources CPU pour un groupe particulier de tâches. UEK R6 inclut ces fonctionnalités, ainsi que les améliorations notables suivantes :
-
Tueur OOM compatible cgroup qui peut être utilisé pour tuer un cgroup 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.groupdans le contrôleur de mémoire cgroup v2. Ce paramètre détermine que le groupe C est une charge de travail indivisible, et que les tâches, ainsi que leurs descendants, sont ou non tuées ensemble par le tueur OOM. -
Un contrôleur de congélation est ajouté à cgroupsv2, ce qui permet d'arrêter la charge de travail dans un cgroup et de libérer temporairement certaines ressources.
-
Cette version introduit le blk-iocost, un contrôleur proportionnel de conservation du travail basé sur le modèle 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 comme séquentielle ou aléatoire et reçoit un coût de base, en conséquence. Un coût proportionnel supplémentaire est ensuite ajouté.
-
-
NVDIMM
La mémoire persistante peut désormais être utilisée comme RAM traditionnelle. En outre, des correctifs ont été mis en œuvre autour des commandes liées à la sécurité dans libnvdimm pour permettre l'utilisation de clés où les données de charge utile étaient remplies de zéro valeur, pour permettre aux opérations sécurisées de continuer à avoir lieu là où une clé zéro est en cours d'utilisation. Une implémentation commune a été mise en place pour s'assurer que toutes les commandes utilisent la même sémantique de clé zéro et que l'effacement sécurisé des données sur un NVDIMM peut être effectué là où une clé zéro est en cours d'utilisation. 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é a été activée.
Arm (aarch64) Plate-forme
Les fonctionnalités ARM notables suivantes sont implémentées dans UEK R6 :
-
Améliorations apportées à la sécurité
Diverses améliorations ont été apportées pour améliorer les mesures d'atténuation contre les attaques, notamment les suivantes : wrappers syscall, authentification de pointeur, prise en charge de KASLR (randomisation d'adresses virtuelles de noyau) et prise en charge de bits PSTATE.SSBS (coeurs ARM v8.5).
-
Connexion à chaud de la mémoire
Prise en charge de base pour le branchement à chaud de la mémoire.
-
Améliorations de KVM
Les améliorations apportées aux invités KVM sur les systèmes ARM (aarch64) incluent 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 porte-clés sont plus sensibles à l'espace de noms .
-
Compression standard
La compression Zstandard (zstd) est ajoutée à la crypto et à la 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 fonctions de trace du noyau Linux existantes, comme eBPF, qui n'existaient pas lors du premier transfert de DTrace vers Linux. La nouvelle implémentation supprime les dépendances DTrace sur les patchs de noyau spécialisés.
DTrace v2.0 est disponible avec UEK R6 uniquement. Les versions précédentes de l'UEK continuent d'inclure l'implémentation d'origine DTrace.
DTrace V2.0 sur Oracle Linux 8 a été réimplémenté en tant qu'application d'espace utilisateur. Elle ne nécessite plus l'exécution de la bibliothèque libdtrace-ctf sur Oracle Linux 8. Les fonctionnalités de cette bibliothèque sont intégrées à la chaîne d'outils GNU d'Oracle Linux 8. Notez que libdtrace-ctf est toujours requis sur Oracle Linux 7.
La fonctionnalité est fournie au fur et à mesure qu'elle devient disponible, en commençant par un ensemble limité de fonctionnalités (principalement des fonctionnalités de structure qui n'offrent pas beaucoup de fonctionnalités visibles par les utilisateurs), mais en fin de compte, atteignant, puis dépassant, un support antérieur.
-
Modifications et améliorations notables
Les changements et améliorations notables suivants sont inclus :
-
La plupart des fonctionnalités principales sous-jacentes de DTrace sont réimplémentées (compilateur D, API du 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 destiné à générer du code eBPF, et la plupart du langage D est déjà pris en charge par le compilateur.
-
La sortie de reporting 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 (que le module soit compilé ou chargé) si le noyau fournit ces informations dans
/proc/kallsyms(ou/proc/kallmodsyms). -
Les sondes d'entrée et de retour Syscall (fournisseur Systrace) sont activées, avec prise en charge des arguments de sonde typé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 sont les suivantes :
-
La fonction
printf()n'est pas encore implémentée ; utiliseztrace(). -
Actuellement, l'action
trace()fonctionne uniquement sur des valeurs numériques, et non sur des chaînes. -
La plupart des actions, telles que
exit(), ne sont pas encore implémentées. -
Sur les trois portées de variable,
Global ("x")etthread-local ("self->x")ne sont pas encore implémentés -
De nombreux fournisseurs (comme dtrace ou profile) - y compris les sondes telles que
BEGIN,ENDetprofile-1n- ne sont pas encore fonctionnels -
Les descriptions de sonde (provider:module:function:name) qui correspondent à plusieurs sondes via l'utilisation de caractères génériques ne sont pas encore prises en charge. Par exemple,
write:entryfonctionne car il correspond àsyscall:vmlinux:write:entryuniquement, mais pas àwrite:*car il correspond àsyscall:vmlinux:write:entryet àsyscall:vmlinux:write:return.
-
Exemple d'utilisation
Les exemples suivants illustrent la fonctionnalité actuelle dans DTrace v2.0 sur UEK R6. Par exemple, les commandes sont exécutées en tant qu'utilisateur root et /usr/sbin se trouve dans le chemin.
-
Afficher les informations de version de DTrace :
# dtrace -V DTrace 2.0.0 [Pre-Release with limited functionality] dtrace: Oracle D 2.0
-
Répertorier les sondes :
# 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 les éléments ci-dessus :
-
Sondez
write()entrée et sortie de l'appel système (plusieurs sondes à la fois) ; -
Sonde avec enregistrement de l'adresse d'un identificateur de noyau (
max_pfn) et d'autres éléments de données ; -
Les sondes sont nommées (explicitement, pas de caractères génériques) avec la même action.
-
Les variables clause-local sont utilisées.
-
L'action
trace()est utilisée pour générer un rapport sur la sortie.
-
Systèmes de fichiers
Voici les fonctionnalités les plus importantes qui ont été implémentées pour les systèmes de fichiers dans UEK R6 :
Btrfs
Btrfs continue d'être pris en charge dans UEK. Plusieurs améliorations et patchs ont été appliqués dans cette mise à jour, notamment la prise en charge des fichiers swap, la compression ZStandard et diverses améliorations de performances. La prise en charge de Btrfs pour les systèmes de fichiers root est introduite dans Oracle Linux 8.3.
ext4
Des horodatages 64 bits ont été ajoutés aux champs de superbloc.
OCFS2
OCFS2 est toujours 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 sur les plates-formes Arm et la lecture du superbloc de journal pour les opérations en ligne et hors ligne.
XFS
Une nouvelle infrastructure de reporting d'état en ligne et un nouvel 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 Fallocate des fichiers de swap et des fichiers de swap sur les périphériques en temps réel, ainsi que la prise en charge partielle de reflink. Diverses améliorations ont également été apportées aux performances.
NFS
Des améliorations et des améliorations des performances ont été apportées au RPC et aux composants client et serveur NFS. Des améliorations significatives ont été apportées à NFS avec RDMA. Les améliorations suivantes ont été apportées : plusieurs connexions client TCP NFSv4.1+, par serveur, pour un meilleur débit à partir du parallélisme matériel, un comportement de montage logiciel amélioré et des diagnostics améliorés.
Gestion de la mémoire
Les fonctions de gestion de mémoire notables suivantes sont implémentées dans UEK R6 :
-
Vidage TLB
Le code de vidage TLB est amélioré pour éviter les vidages inutiles et réduire les tirs de TLB.
-
Vider la page
La gestion de la mémoire est améliorée pour améliorer le débit en tirant parti de l'effacement des pages volumineuses de manière plus optimale.
-
Améliorations apportées au cache de pages
L'efficacité du cache de pages est améliorée grâce au type de données Xarray plus efficace.
-
Amélioration de la prévention de la fragmentation
Les algorithmes d'évitement de la fragmentation sont améliorés et les temps de compactage et de défragmentation sont plus rapides.
-
Améliorations de la gestion des pannes THP
Des améliorations ont été apportées à la gestion des failles de Transparent Huge Page (THP) ainsi qu'à l'amélioration des rapports sur le statut du THP.
Mise en réseau
Les fonctions de mise en réseau notables suivantes sont implémentées dans Unbreakable Enterprise Kernel version 6 :
-
TCP - Heure de départ anticipée
La pile TCP utilise désormais le modèle Early Departure Time pour l'envoi de paquets, au lieu du modèle le plus rapide possible. Cette amélioration apporte plusieurs gains de performances, car elle résout une limitation dans la structure TCP/IP d'origine et introduit la version programmée des paquets pour surmonter les limitations matérielles et les goulets 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 précédente de UEK 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 significatifs par rapport aux implémentations qui sont limitées à l'espace utilisateur.
-
Réception TCP sans copie
La version précédente de UEK a introduit une fonctionnalité TCP à copie nulle pour l'envoi de paquets au réseau. Cette version active la fonctionnalité de réception pour TCP à copie nulle.
-
Filtrage des paquets
nftables est désormais le back-end par défaut pour les règles de pare-feu. Le filtrage de 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 basé sur le noyau flexible et minimal pour la mise en réseau haute vitesse.
RDMA
Remote Direct Memory Access (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 clusters.
Unbreakable Enterprise Kernel version 6 inclut des fonctionnalités RDMA qui sont fournies dans le noyau en amont, avec l'ajout de fonctionnalités Ksplice et DTrace.
UEK R6 maintient la parité des caractéristiques avec UEK R5 et inclut les mises à jour en amont notables suivantes :
-
Infrastructure de statistiques dynamiques
Une infrastructure de statistiques dynamiques a été mise en œuvre pour faciliter la surveillance de divers objets en les liant à des compteurs accessibles via une interface netlink.
-
Compteurs de flux de verbes
Des patches ont été appliqués pour fournir une API qui permet aux applications d'espace utilisateur de surveiller l'activité de 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 la dénomination est devenue plus cohérente. L'en-têteuverbs_ioctla été étendu pour incluredriver_idet la représentation compacte deuverbs_attr_specest activée. -
Suivi des ressources RDMA
Une infrastructure générale pour le suivi des ressources RDMA a été mise en œuvre. Cette infrastructure est utilisée pour fournir des informations détaillées sur la paire de files d'attente, ainsi que des informations sur l'utilisation globale des ressources.
-
La modération CQ est exposée à l'espace utilisateur
Les patches sont appliqués pour exposer la file d'attente de finalisation (CQ) aux applications d'espace utilisateur afin de contrôler le nombre de CQE requis pour créer un événement. Cette modification offre davantage de contrôles aux applications utilisateur pour améliorer le réglage des performances.
-
Fonctionnalité d'espace de noms améliorée
Divers patches ont été appliqués pour améliorer la fonctionnalité d'espace de noms. Un patch 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 de périphériques dans plusieurs espaces de noms réseau est désactivé et l'exécution des commandes netlink dans les espaces de noms réseau non init_net est désormais possible.
Sécurité
Les fonctions de sécurité suivantes sont implémentées dans Unbreakable Enterprise Kernel version 6 :
-
Mode de verrouillage pour les systèmes x86_64
Le mode de verrouillage est amélioré. Cette version distingue les modes d'intégrité et de confidentialité. Lorsque l'initialisation sécurisée est activée dans UEK R6, le mode d'intégrité de verrouillage est appliqué par défaut. Le mode de confidentialité peut être activé en option sur la ligne de commande du noyau ou à l'aide de securityfs, lorsque l'initialisation sécurisée UEFI est activée. Les modes de verrouillage peuvent également être activés lorsqu'une option de ligne de commande du noyau est utilisée pour désactiver l'initialisation sécurisée. Toutefois, aucune application de verrouillage n'est effectuée par défaut lorsque l'initialisation sécurisée est désactivée.
Les restrictions suivantes sont appliquées lorsque le mode d'intégrité est activé :
-
Appliquer les signatures des modules de noyau
-
Limiter l'accès en lecture/écriture à
/dev/{mem,kmem,port} -
Restreindre efivar_ssdt_load
-
Désactiver l'appel système kexec_load
-
Désactiver la mise en veille prolongée
-
Interdire l'accès PCI BAR à partir de l'espace utilisateur
-
Interdire l'accès au port E/S X86 à partir de l'espace utilisateur
-
Limiter l'accès MSR
-
Limiter l'accès à la méthode 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 le TIOCSSEARIAL
-
Interdire les paramètres des modules de noyau non sécurisés
-
Interdire le module testmmiotrace
-
Interdire l'accès aux débogage
Les restrictions suivantes sont appliquées lorsque le mode de confidentialité est activé :
-
Interdire le traçage et les sondes de perf
-
Limiter l'utilisation de bpf pour lire la mémoire du noyau
-
Interdire l'utilisation dangereuse de perf
-
Interdire les traces
-
Interdire l'accès à
/proc/kcore
Notez que la gestion des trousseaux de clés du noyau a également changé pour UEK R6, qui utilise désormais le code du noyau principal en amont pour implémenter un trousseau de clés de plate-forme. Les clés de base de données d'initialisation sécurisée UEFI et de propriétaire de machine (MOK) sont désormais stockées dans le trousseau de clés de la plate-forme et ne sont pas traitées de la même manière que le trousseau de clés sécurisé du noyau. Bien que kexec fasse confiance aux clés dans le trousseau de clés de la plate-forme, elles ne peuvent pas être utilisées pour ajouter une nouvelle CA dans le noyau pour IMA (Integrity Measurement Architecture) et ne peuvent pas être utilisées pour vérifier les modules du noyau.
-
-
IBRS
La spécification restreinte par branche indirecte (IBRS) continue d'être prise en charge pour les processeurs affectés par la vulnérabilité de canal côté exécution spéculative Spectre V2 et pour lesquels d'autres techniques logicielles ou matérielles peuvent ne pas être suffisantes ou ne sont pas disponibles.
-
Protection améliorée dans les répertoires accessibles en écriture
Cette version du noyau décourage les attaques d'usurpation en interdisant l'ouverture des FIFO ou des fichiers standard qui ne sont pas détenus par l'utilisateur dans des répertoires persistants inscriptibles dans le monde, tels que
/tmp. -
Arm KASLR
La randomisation des adresses virtuelles de 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 la pile mémoire sur les plates-formes Arm.
Stockage
Les fonctions de stockage importantes suivantes sont implémentées dans Unbreakable Enterprise Kernel version 6 :
-
Améliorations de NVMe
NVMe sur l'hôte TCP Fabrics et les pilotes cible ont été ajoutés. La prise en charge des chemins d'accès multiples et de la commande passthrough a été ajoutée. La prise en charge de l'espace de noms NVMe est étendue pour inclure la protection en écriture de l'espace de noms et l'accès asynchrone à l'espace de noms.
Virtualisation
Les fonctions de virtualisation notables suivantes sont implémentées dans Unbreakable Enterprise Kernel version 6 :
-
Améliorations de VirtIO
La fonctionnalité 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 un cache de page invité. Un pilote para-virtualisé VirtIO-IOMMU qui autorise les demandes IOMMU sur le transport VirtIO sans émuler les tables de pages est également ajouté dans cette version.
-
Améliorations de la plate-forme Arm
Les clients sur 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 du pilote
Le noyau Unbreakable Enterprise Kernel version 6 prend en charge un grand nombre de matériel et de périphériques. 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 ligne principale Linux 5.4.
La liste complète des modules de pilote inclus dans la dernière mise à jour de UEK R6 ainsi que les informations de version sont fournies dans l'annexe à la section Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64).
Fonctions de pilote notables
Les nouvelles fonctionnalités suivantes sont notées dans les pilotes livrés avec UEK R6 :
-
Pilote réseau Broadcom BCM573xx
La version du pilote
bnxt_ena été mise à jour vers la version 1.10.1, avec des patches supplémentaires rétroportés à partir de la version 5.5 du noyau en amont et des patches fournis par le fournisseur 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 UEK R6 errata dans la version 5.4.17-2011.6.2 du noyau entraîne un changement de nom de 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é comme
eno3d1est désormais identifié commeeno3. Ce correctif a été appliqué pour améliorer le nommage des périphériques et également pour répondre aux hypothèses sur la fonctionnalité de port sur un périphérique, par exemple 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 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 de noyau précédente à une version actuelle de UEK R6 ou ultérieure. -
Pilote SCSI Broadcom Emulex LightPulse Fibre Channel
Le pilote
lpfca été mis à jour vers 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 5.4 en amont a été rendu disponible et une correction de bogues importante pour le microprogramme 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 de NVMe sur Fibre Channel. -
Pilote QLogic BCM5706/5708/5709/5716
Le pilote
bnx2est mis à jour et, bien que le numéro de version reste la version 2.2.6, le pilote inclut les patches et les mises à jour de microprogramme fournis par le fournisseur. -
Pilote HBA Fibre Channel QLogic
Le pilote
qla2xxxest mis à jour vers la version 10.01.00.22.81.1-k. Cette mise à jour rétroportage de nombreux patchs qui sont depuis entrés dans le noyau en amont et inclut des patchs 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
smartpqiest mis à jour vers la version 1.2.10-025 et inclut les patches en amont qui ont été appliqués au pilote depuis la version 5.4 du noyau sous les conseils 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
mpt3sasest mis à jour vers la version 33.100.00.00 et inclut les patches fournis par le fournisseur.
Packages nouveaux et mis à jour
Pour prendre en charge la fonctionnalité nouvellement ajoutée fournie par l'UEK R6, plusieurs packages binaires de noyau et d'espace utilisateur ont été ajoutés ou mis à jour à partir des packages 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 packages sont disponibles, reportez-vous à la section UEK R6 Installation and Availability.
Les packages d'espace de noyau ajoutés et mis à jour pour UEK R6 sont étiquetés avec le préfixe kernel-uek. Le package linux-firmware est également mis à jour avec les derniers firmwares disponibles.
Les packages répertoriés ici sont spécifiques à la fonctionnalité d'espace utilisateur et sont mis à jour pour tirer parti des fonctionnalités disponibles dans UEK R6. Il n'y a pas de dépendance sur ces packages pour utiliser UEK R6. Si vous utilisez l'un de ces packages et que vous utilisez également UEK R6, vous devez mettre à jour le package vers la dernière version pour une compatibilité totale avec toutes les fonctionnalités disponibles dans UEK R6.
|
Packages |
Numéro de version d'Oracle Linux 8 |
Numéro de version d'Oracle Linux 7 |
|---|---|---|
|
|
67 (x86_64) |
67 (x86_64) |
|
|
01.00.00.3467 (x86_64) |
01.00.00.3467 (x86_64) |
|
|
3.3 (x86_64) |
3.3 (x86_64) |
|
|
5.4.0 (x86_64, aarch64) |
5.4.0 (x86_64, aarch64) |
|
|
5.4.0 (x86_64, aarch64) |
5.4.0 (x86_64, aarch64) |
|
|
1.8.6 (x86_64, aarch64) |
1.8.6 (x86_64, aarch64) |
|
|
1.45.4 (x86_64, aarch64) |
1.45.4 (x86_64, aarch64) |
|
|
2.0.0 (x86_64, aarch64) |
2.0.0 (x86_64, aarch64) |
|
|
S/O |
1.1.0 (x86_64, aarch64) |
|
|
1.0.8 (x86_64, aarch64) |
1.0.8 (x86_64, aarch64) |
|
|
18.5 (x86_64, aarch64) |
18.5 (x86_64, aarch64) |
|
|
7.2.7 (x86_64, aarch64) |
7.2.7 (x86_64, aarch64) |
|
|
5.4.0 (x86_64, aarch64) |
5.4.0 (x86_64, aarch64) |
|
|
2.0.19 (x86_64, aarch64) |
2.0.15 (x86_64, aarch64) |
|
|
1.3.8 (x86_64, aarch64) |
1.3.4 (x86_64, aarch64) |
|
|
20200124-999.4 (x86_64, aarch64) |
20200124-999.4 (x86_64, aarch64) |
|
|
1.9 (x86_64, aarch64) |
1.9 (x86_64, aarch64) |
|
|
0,7 (x86_64, aarch64) |
0,7 (x86_64, aarch64) |
|
|
3.20 (x86_64, aarch64) |
3.20 (x86_64, aarch64) |
|
|
9.0.0 (x86_64, aarch64) |
9.0.0 (x86_64, aarch64) |
|
|
0,35 (x86_64, aarch64) |
S/O |