Nuevas funciones y cambios en UEK R6
Resumen de cambios notables en UEK R6
En las siguientes secciones, se describen las nuevas funciones principales de Unbreakable Enterprise Kernel versión 6 (UEK R6), en relación con UEK R5. A continuación, se muestra una lista resumida de las funciones clave de esta versión:
-
Base de núcleo estable de Linux 5.4
La versión de núcleo mainline 5.4 utilizada como núcleo base para UEK R6 incluye muchas funciones y mejoras de núcleo ascendente con respecto a las versiones anteriores y con respecto a RHCK. Para obtener una lista de las principales funciones y mejoras que están disponibles en este núcleo, en lugar de la versión principal anterior de UEK, consulte Core Kernel Functionality.
-
Soporte de Arm
Muchas características y mejoras en esta versión tienen como objetivo mejorar el soporte para la plataforma Arm (aarch64). Los cambios notables incluyen mejoras de seguridad y un mejor soporte de virtualización en Arm. Consulte la Plataforma Arm (aarch64) para obtener más información.
-
Mejoras de Cgroup v2
La funcionalidad de Cgroup v2 se introdujo por primera vez en UEK R5 para activar la funcionalidad del controlador de CPU. UEK R6 incluye todas las funciones de Cgroup v2, junto con varias mejoras que se describen en Core Kernel Functionality.
-
mejoras de ktask
ktask es una estructura para paralelizar el trabajo que consume mucha CPU en el núcleo. Se puede utilizar para acelerar grandes tareas en sistemas con mucha potencia de CPU disponible, donde una tarea tiene un solo thread en el espacio de usuario. ktask proporciona una API genérica que puede agregar simultaneidad a muchos tipos diferentes de tareas, al tiempo que se reduce la complejidad en torno a la gestión de varios threads, y se utiliza durante la inicialización de la página de estructura y la inicialización de invitados KVM habilitada para VFIO para reducir los tiempos de inicio.
La documentación para ktask se proporciona en
/usr/share/doc/kernel-uek-doc-5.4/core-api/ktask.html, aunque la interfaz aún no es estable. -
Kswapd en paralelo
La sustitución de páginas se gestiona en el núcleo de forma asíncrona mediante kswapd y de forma síncrona mediante la recuperación directa. Cuando las páginas libres de la lista de zonas libres son bajas, kswapd analiza las páginas en busca de páginas no utilizadas que se pueden expulsar para liberar espacio para nuevas asignaciones de páginas. Esta optimización puede mejorar el rendimiento al evitar las reclamaciones directas, que pueden requerir muchos recursos y mucho tiempo.
-
Firma de firmware de Kexec
La opción para comprobar y validar una firma de imagen de núcleo está activada en UEK R6. Cuando se utiliza kexec para cargar un núcleo desde UEK R6, la comprobación y validación de firmas de imágenes de núcleo se pueden implementar para garantizar que un sistema solo cargue una imagen de núcleo firmada y validada.
-
Mejoras en la gestión de memoria
Se han implementado varias mejoras de rendimiento en el código de gestión de memoria del núcleo para mejorar la eficiencia en torno al borrado de páginas y caché, y mejoras en la gestión de fallos y la generación de informes. Consulte Gestión de memoria para obtener más información.
-
Actualizaciones de NVDIMM
Las actualizaciones de la función NVDIMM se han implementado para que la memoria persistente ahora se pueda usar como RAM tradicional y también se ha incluido una actualización que ayuda a estandarizar la funcionalidad de borrado de llave cero. Consulte Core Kernel Functionality para obtener más información.
-
DTrace v2.0
La compatibilidad con DTrace está activada en UEK R6 y se ha reimplantado para utilizar el filtro de paquetes de Berkeley (BPF) que está integrado en el núcleo de Linux. La versión actual es la primera versión de Dtrace basada en la nueva implementación, aún no alcanza la paridad de funciones con DTrace en UEK R5, pero lo hará en el futuro. Se han realizado otras mejoras para simplificar el conjunto de RPM disponibles para DTrace debido a las mejoras en la cadena de herramientas ascendente. Consulte DTrace v2.0 para obtener más información.
-
OCFS2
La compatibilidad con el sistema de archivos OCFS2 está activada en UEK R6. Consulte OCFS2 para obtener más información.
-
Compatibilidad con el sistema de archivos Btrfs
La compatibilidad con el sistema de archivos Btrfs se activa en los sistemas Oracle Linux 8 si UEK R6 está instalado en el sistema. En esta versión, se han realizado mejoras adicionales en Btrfs. Consulte Btrfs para obtener más información.
Funcionalidad del núcleo central
Se han implementado varias funciones principales del núcleo central en el núcleo ascendente, entre la versión 4.14 que se utilizó como versión base del núcleo para UEK R5 y la versión 5.4 del núcleo que se usa como versión base del núcleo para UEK R6. Aunque algunas funciones se han vuelto a admitir en el núcleo UEK R5 en las versiones de actualización, las siguientes nuevas funciones significativas están disponibles en UEK R6:
-
Modo de bloqueo (sólo x86_64)
El modo de bloqueo se mejora significativamente y hay varios cambios de implementación que vale la pena señalar. Esta versión distingue entre los modos integrity y confidential. Consulte Seguridad para obtener más información sobre esta función.
-
fs-verity
fs-verity es una función del núcleo a la que los sistemas de archivos pueden conectarse para proteger la integridad y la autenticidad de los archivos de solo lectura. Esta función se puede utilizar para detectar daños de archivos no maliciosos y modificaciones maliciosas de archivos que no se deben cambiar en un sistema. Esta función actualmente solo funciona con sistemas de archivos ext4 y f2fs.
-
E/S asíncrona de alto rendimiento con io_uring
Esta función proporciona una interfaz de E/S asíncrona rápida y escalable para E/S en buffer y no en buffer. También soporta E/S de sondeo asíncrono. Una biblioteca de espacio de usuario,
liburing, proporciona una funcionalidad básica para las aplicaciones con ayudantes que permiten a las aplicaciones configurar fácilmente una instanciaio_uringy ejecutar/completar E/S. -
Actualizaciones de Cgroup
La funcionalidad completa de Cgroup v2 se incluye en UEK R6. La funcionalidad de UEK R5 incluía algunas funciones, como el controlador de CPU, que permitía configurar recursos de CPU para un grupo determinado de tareas. UEK R6 incluye estas funciones, junto con las siguientes mejoras notables:
-
Un cancelador de OOM compatible con cgroup que se puede utilizar para matar un cgroup como una sola unidad para mantener la integridad de una carga de trabajo. Esta funcionalidad se puede activar mediante la configuración de
memory.oom.groupen el controlador de memoria cgroup v2. Esta configuración determina que el cgroup es una carga de trabajo indivisible y las tareas, junto con sus descendientes, son asesinadas juntas por el asesino de OOM o no lo son en absoluto. -
Se agrega un controlador de congelador a cgroupsv2, lo que permite detener la carga de trabajo en un cgroup y liberar temporalmente algunos recursos.
-
Esta versión presenta blk-iocost, un controlador proporcional que conserva el trabajo del modelo basado en costos de E/S. Actualmente tiene un modelo de costo lineal simple incorporado, donde cada E/S se clasifica como secuencial o aleatorio y se le da un costo base, en consecuencia. A continuación, se agrega un costo proporcional al tamaño adicional.
-
-
NVDIMM
La memoria persistente ahora se puede utilizar como RAM tradicional. Además, las correcciones se implementaron en torno a los comandos relacionados con la seguridad dentro de libnvdimm para permitir el uso de claves donde los datos de carga útil se llenaron con valores cero, para permitir que las operaciones seguras continúen teniendo lugar donde se usa una clave cero. Se implementó una implementación común para garantizar que todos los comandos usen la misma semántica de clave cero y que el borrado seguro de los datos en un NVDIMM se pueda realizar donde se use una clave cero. Este cambio es importante porque algunas plataformas NVDIMM permiten la seguridad con una clave cero predeterminada, en lugar de dejar que el sistema operativo especifique la clave inicial, lo que podría evitar que las operaciones funcionen donde se activó la seguridad.
Arm (aarch64) Plataforma
Las siguientes funciones notables de ARM se implementan en UEK R6:
-
Mejoras de seguridad
Se han realizado varias mejoras para mejorar las mitigaciones contra ataques, entre ellas las siguientes: envoltorios syscall, autenticación de punteros, compatibilidad con KASLR (al azarización de direcciones virtuales de núcleo) y compatibilidad con bits PSTATE.SSBS (núcleos ARM v8.5).
-
Conexión en marcha de memoria
Soporte básico para la memoria de conexión en caliente.
-
Mejoras de KVM
Las mejoras para invitados KVM en sistemas ARM (aarch64) incluyen autenticación de punteros (ARM v8.3) y compatibilidad con Scalable Vector Extension (SVE).
criptografía
Las siguientes características criptográficas notables se implementan en UEK R6:
-
Gestión simplificada de descripciones de claves
Las claves y los keyrings son más conscientes del espacio de nombres.
-
Compresión Zstandard
La compresión Zstandard (zstd) se agrega a crypto y scompress. Sólo está activado el nivel por defecto.
DTrace v2.0
DTrace v2.0 es una reimplementación de DTrace que utiliza las funciones de rastreo del núcleo de Linux existentes, como eBPF, que no existían cuando DTrace se portó por primera vez a Linux. La nueva implementación elimina las dependencias de DTrace en parches especializados del núcleo.
DTrace v2.0 solo está disponible con UEK R6. Las versiones anteriores de UEK siguen incluyendo la implementación original de DTrace.
DTrace V2.0 en Oracle Linux 8 se ha vuelto a implementar como una aplicación de espacio de usuario. Ya no requiere que la biblioteca libdtrace-ctf se ejecute en Oracle Linux 8. La funcionalidad de esa biblioteca se integra en la cadena de herramientas GNU de Oracle Linux 8. Tenga en cuenta que libdtrace-ctf sigue siendo necesario en Oracle Linux 7.
La funcionalidad se ofrece a medida que está disponible, comenzando con un conjunto limitado de capacidades (principalmente funcionalidad de marco que no ofrece muchas funciones visibles para el usuario), pero finalmente alcanza, y luego supera, el soporte anterior.
-
Cambios y mejoras notables
Se incluyen los siguientes cambios y mejoras notables:
-
La mayor parte de la funcionalidad básica de DTrace se vuelve a implementar (compilador D, API de proveedor, gestión de sondeos) en el espacio de usuario. Gran parte de esta funcionalidad residía anteriormente en el núcleo.
-
El compilador D ahora está dirigido a generar código eBPF, y la mayor parte del lenguaje D ya está soportado por el compilador.
-
La salida de informes del verificador BPF está activada. Cuando los scripts D compilados se cargan en el núcleo como programas BPF, el verificador BPF realiza un análisis de código estático para garantizar la seguridad del programa. Cuando este análisis falla, se genera la salida y DTrace informa esta salida al usuario.
-
Los sondeos de seguimiento de límites de función (FBT) se activan con funciones agrupadas por módulo (independientemente de si el módulo se compila o se puede cargar) si el núcleo proporciona esta información en
/proc/kallsyms(o/proc/kallmodsyms). -
Los sondeos de entrada y devolución de Syscall (proveedor de Sysstrace) están activados, con soporte para argumentos de sondeo escritos. Actualmente solo está disponible en la salida
-lv. -
Los sondeos de rastreo definido estáticamente (SDT) basados en puntos de rastreo de Linux están activados, con soporte para argumentos de sondeo escritos. Actualmente solo está disponible en la salida
-lv.
-
-
Limitaciones notables
Las limitaciones de la nota incluyen:
-
La función
printf()aún no se ha implantado; utilicetrace(). -
La acción
trace()actualmente solo funciona en valores numéricos, no en cadenas. -
La mayoría de las acciones, como
exit(), aún no se han implementado. -
De los tres ámbitos de variables,
Global ("x")ythread-local ("self->x")aún no se han implantado -
Muchos proveedores (como dtrace o perfil), incluidos sondeos como
BEGIN,ENDyprofile-1n, aún no funcionan -
Las descripciones de sondeos (provider:module:function:name) que coinciden con varios sondeos mediante el uso de comodines aún no se admiten. Por ejemplo,
write:entryfunciona porque solo coincide consyscall:vmlinux:write:entry, perowrite:*no porque coincida consyscall:vmlinux:write:entryysyscall:vmlinux:write:return.
-
Ejemplo de uso
Los siguientes ejemplos ilustran la funcionalidad actual en DTrace v2.0 en UEK R6. En los ejemplos, se asume que los comandos se ejecutan como root y que /usr/sbin se encuentra en PATH.
-
Mostrar información de versión de DTrace:
# dtrace -V DTrace 2.0.0 [Pre-Release with limited functionality] dtrace: Oracle D 2.0
-
Mostrar sondeos:
# 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
En este sistema en particular:
-
Sondas de 3 dtrace
-
Sondas de 87890 fbt (basadas en kprobes)
-
Sondeos de 1262 sdt (basados en puntos de rastreo de Linux)
-
666 sondas syscall
-
-
Script de ejemplo que utiliza la opción
-S, para mostrar el código D compilado como un programa eBPF y que utiliza la opción-e, para salir después de la compilación:# 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 [...] -
Script de ejemplo:
# dtrace -n ' write:entry, write:return { this->x = 3; /* clause-local variables */ this->y = 8; trace(this->x * this->y); trace(&`max_pfn); }'En lo anterior:
-
Sondee la entrada y la salida de la llamada al sistema
write()(varios sondeos a la vez); -
Indague con el registro de la dirección de un identificador del núcleo (
max_pfn) y otros elementos de datos; -
Los sondeos se denominan (explícitamente, sin comodines) con la misma acción.
-
Se utilizan variables locales de cláusula.
-
La acción
trace()se utiliza para informar la salida.
-
Sistemas de archivos
Las siguientes son las funciones más destacadas que se han implementado para los sistemas de archivos en UEK R6:
Btrfs
Btrfs sigue siendo compatible con UEK. Se han aplicado varias mejoras y parches en esta actualización, incluida la compatibilidad con archivos de intercambio, la compresión ZStandard y varias mejoras de rendimiento. La compatibilidad con Btrfs para sistemas de archivos raíz se presenta en Oracle Linux 8.3.
ext4
Se han agregado registros de hora de 64 bits a los campos de superbloque.
OCFS2
OCFS2 sigue siendo compatible con UEK. Se han aplicado varias mejoras y parches en esta actualización, incluido el soporte para la función "nowait" AIO, el soporte en plataformas Arm y la lectura del superbloque de la revista para operaciones en línea y fuera de línea.
XFS
Una nueva infraestructura de informes de estado en línea y el espacio de usuario ioctl para obtener el estado de metadatos después de agregar fsck en línea. También se agrega en esta versión el soporte para asignar archivos de intercambio y archivos de intercambio en dispositivos en tiempo real, así como el soporte parcial de reflink. También se han realizado varias mejoras en el rendimiento.
NFS
Se han realizado mejoras y mejoras de rendimiento en RPC y los componentes de cliente y servidor NFS. Se realizaron mejoras significativas para NFS con RDMA. Las mejoras incluyen lo siguiente: varias conexiones de cliente TCP NFSv4.1+, por servidor, para mejorar el rendimiento del paralelismo de hardware, mejorar el comportamiento de montaje flexible y mejorar el diagnóstico.
Gestión de Memoria
Las siguientes funciones de gestión de memoria destacadas se implementan en UEK R6:
-
Vaciado de TLB
El código de descarga TLB se mejora para evitar vaciados innecesarios y reducir los derribos de TLB.
-
Borrado de páginas enormes
La gestión de la memoria se mejora para mejorar el rendimiento aprovechando el borrado de grandes páginas de forma más óptima.
-
Mejoras en la caché de páginas
La eficacia de la caché de página se mejora mediante el uso del tipo de dato Xarray más eficaz.
-
Evitación mejorada de la fragmentación
Los algoritmos de evitación de fragmentación se mejoran y los tiempos de compactación y desfragmentación son más rápidos.
-
Mejoras en el manejo de fallos de THP
Se han implementado mejoras en el manejo de fallas de páginas enormes transparentes (THP) y también para proporcionar mejores informes sobre el estado del THP.
Redes
Las siguientes funciones de red destacadas se implementan en Unbreakable Enterprise Kernel versión 6:
-
Hora adelantada de salida de TCP
La pila TCP ahora utiliza el modelo Early Output Time para enviar paquetes, en lugar del modelo tan rápido como sea posible. Esta mejora aporta varias mejoras de rendimiento, ya que resuelve una limitación en el marco TCP/IP original e introduce la versión programada de paquetes para superar las limitaciones de hardware y los cuellos de botella.
-
Descarga de recepción genérica
GRO está activado para el protocolo de datagramas de usuario (UDP).
-
Recepción de TLS
La versión anterior de UEK permitió que el núcleo enviara mensajes TLS. Esta versión permite que el núcleo también reciba mensajes TLS. La implementación del manejo del núcleo de las conexiones TLS ofrece importantes mejoras de rendimiento sobre las implementaciones que están limitadas al espacio de usuario.
-
Recepción TCP de copia cero
La versión anterior de UEK introdujo una función TCP de copia cero para enviar paquetes a la red. Esta versión habilita la funcionalidad de recepción para TCP de copia cero.
-
Filtros de paquetes
nftables es ahora el backend por defecto para las reglas de firewall. El filtrado de redes basado en BPF (bpfilter) también se agrega en esta versión.
-
Ruta de datos rápida (XDP) agregada
XDP es un transporte de paquetes flexible y mínimo basado en núcleo para redes de alta velocidad.
RDMA
Remote Direct Memory Access (RDMA) es una función que permite el acceso directo a la memoria entre dos sistemas conectados por una red. RDMA facilita la creación de redes de alto rendimiento y baja latencia en clusters.
Unbreakable Enterprise Kernel Release 6 incluye funciones de RDMA que se proporcionan en el núcleo ascendente, con la adición de la funcionalidad Ksplice y DTrace.
UEK R6 mantiene la paridad de funciones con UEK R5 e incluye las siguientes actualizaciones ascendentes notables:
-
Infraestructura de Estadísticas Dinámicas
Se ha implementado una infraestructura de estadísticas dinámicas para facilitar el seguimiento de varios objetos vinculándolos a contadores a los que se puede acceder a través de una interfaz netlink.
-
Verbos contadores de flujo
Los parches se han aplicado para proporcionar una API que permita a las aplicaciones de espacio de usuario supervisar la actividad y los eventos de tráfico en tiempo real de los objetos de verbos que gestiona.
-
Mejoras de RDMA ioctl()
Se han aplicado varias actualizaciones para mejorar RDMA
ioctl(). Significativamente, se utilizan nuevos encabezados y la nomenclatura se ha vuelto más consistente. La cabecerauverbs_ioctlse ha ampliado para incluirdriver_idy la representación compacta deuverbs_attr_specestá activada. -
Seguimiento de recursos de RDMA
Se ha implementado una infraestructura general para el seguimiento de recursos de RDMA. Esta infraestructura se utiliza para proporcionar información detallada sobre el par de colas (QP), así como información global sobre la utilización de recursos.
-
La moderación de CQ está expuesta al espacio de usuario
Los parches se aplican para exponer la cola de finalización (CQ) a las aplicaciones de espacio de usuario para controlar el número de CQE necesarios para crear un evento. Este cambio proporciona más controles a las aplicaciones de usuario para mejorar el ajuste del rendimiento.
-
Funcionalidad de espacio de nombres mejorada
Se han aplicado varios parches para mejorar la funcionalidad del espacio de nombres. Se aplicó un parche que le permite cambiar de forma segura el espacio de nombres de red de un dispositivo RDMA para agregar un comando. El uso compartido de dispositivos en varios espacios de nombres de red está desactivado y ahora es posible ejecutar comandos netlink en espacios de nombres de red que no sean init_net.
Seguridad
Las siguientes funciones de seguridad destacadas se implementan en Unbreakable Enterprise Kernel versión 6:
-
Modo de bloqueo para sistemas x86_64
Se ha mejorado el modo de bloqueo. Esta versión distingue entre los modos de integridad y confidencialidad. Cuando el inicio seguro está activado en UEK R6, el modo de integridad de bloqueo se aplica de manera predeterminada. El modo de confidencialidad se puede activar como opción en la línea de comandos del núcleo o mediante securityfs, cuando UEFI Secure Boot está activado. Los modos de bloqueo también se pueden activar cuando se utiliza una opción de línea de comandos del núcleo para desactivar el inicio seguro; sin embargo, no se aplica ningún bloqueo de manera predeterminada cuando el inicio seguro está desactivado.
Cuando el modo de integridad está activado, se aplican las siguientes restricciones:
-
Aplicar firmas de módulo de núcleo
-
Restringir el acceso de lectura y escritura a
/dev/{mem,kmem,port} -
Restringir efivar_ssdt_load
-
Desactivar llamada al sistema kexec_load
-
Desactivar hibernación
-
Prohibir el acceso a PCI BAR desde el espacio de usuario
-
Prohibir el acceso al puerto X86 IO desde el espacio de usuario
-
Restringir acceso a MSR
-
Limitar el acceso a ACPI custom_method
-
Ignorar parámetro de núcleo acpi_rspd
-
Desactivar sustitución de tabla de ACPI
-
Prohibir almacenamiento de PCMCIA CIS
-
Prohibir TIOCSSEARIAL
-
Prohibir parámetros de módulo de núcleo no seguros
-
Prohibir el módulo testmmiotrace
-
Prohibir el acceso de debugs
Cuando se habilita el modo de confidencialidad, se aplican las siguientes restricciones:
-
Prohibir el rastreo y perf kprobes
-
Restringir el uso de bpf a la memoria del núcleo de lectura
-
Prohibir el uso inseguro de perf
-
Prohibir tracefs
-
Prohibir el acceso a
/proc/kcore
Tenga en cuenta que la gestión de llaves del núcleo también ha cambiado para UEK R6, que ahora utiliza código del núcleo ascendente de la línea principal para implementar un llavero de plataforma. La base de datos de inicio seguro UEFI y las claves de propietario de máquina (MOK) ahora se almacenan en el panel de claves de la plataforma y no se tratan por igual en el panel de claves de confianza del núcleo. Aunque kexec confía en las claves del panel de claves de la plataforma, estas no se pueden utilizar para agregar una nueva CA al núcleo para IMA (Integrity Measurement Architecture) y no se pueden utilizar para verificar módulos del núcleo.
-
-
IBRS
Indirect Branch Restricted Speculation (IBRS) sigue siendo compatible con los procesadores afectados por Spectre V2 Speculative Execution Side Channel Vulnerability y para los que otras técnicas de software o hardware pueden no ser suficientes o no estar disponibles.
-
Protección mejorada en directorios de escritura mundial
Esta versión del núcleo desaconseja los ataques de suplantación al no permitir la apertura de FIFO o archivos regulares que no son propiedad del usuario en directorios adhesivos que se pueden escribir en todo el mundo, como
/tmp. -
Arm KASLR
La asignación aleatoria de direcciones virtuales de núcleo está activada por defecto para las plataformas Arm.
-
Autenticación de puntero aarch64
Esta función agrega primitivos que se pueden utilizar para mitigar ciertas clases de ataques de corrupción de pila de memoria en plataformas Arm.
Almacenamiento
Las siguientes funciones de almacenamiento destacadas se implementan en Unbreakable Enterprise Kernel versión 6:
-
Mejoras de NVMe
Se agregaron el host TCP de NVMe mediante Fabrics y los controladores de destino. Se ha agregado compatibilidad con rutas múltiples y compatibilidad con comandos de transferencia. El soporte de espacios de nombres NVMe se amplía para incluir la protección de escritura de espacio de nombres y el acceso asíncrono a espacios de nombres.
Virtualización
Las siguientes funciones de virtualización destacadas se implementan en Unbreakable Enterprise Kernel versión 6:
-
Mejoras de VirtIO
La función PMEM de VirtIO agrega un mecanismo de vaciado asíncrono basado en VirtIO y simula la memoria persistente a un invitado, lo que le permite omitir una caché de página de invitado. En esta versión también se agrega un controlador paravirtualizado VirtIO-IOMMU que permite solicitudes de IOMMU mediante el transporte VirtIO sin emular tablas de páginas.
-
Mejoras en la plataforma Arm
Los huéspedes de los sistemas de plataforma ARM (aarch64) incluyen autenticación de punteros (ARM v8.3) y compatibilidad con Scalable Vector Extension (SVE).
Actualizaciones de controlador
Unbreakable Enterprise Kernel versión 6 admite una gran cantidad de hardware y dispositivos. En estrecha cooperación con los proveedores de hardware y almacenamiento, Oracle ha actualizado varios controladores de dispositivos de las versiones de la línea principal Linux 5.4.
En el apéndice de Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64), se proporciona una lista completa de los módulos de controlador incluidos en la última actualización de UEK R6 junto con la información de la versión.
Características notables del controlador
Las siguientes nuevas funciones se mencionan en los controladores enviados con UEK R6:
-
Controlador de red Broadcom BCM573xx
La versión del controlador
bnxt_ense actualizó a 1.10.1, con parches adicionales respaldados desde la versión anterior del núcleo 5.5 y parches aportados por el proveedor que son específicos para ampliar y actualizar la funcionalidad de los controladores Ethernet Broadcom Thor.Un cambio ascendente de este controlador que se incorporó a una actualización de errores de UEK R6 en la versión de núcleo 5.4.17-2011.6.2 da como resultado un cambio de nombre de dispositivo para el segundo puerto de las interfaces de red de Broadcom que utilizan este controlador. Por ejemplo, un dispositivo que se identificó anteriormente como
eno3d1ahora se identifica comoeno3. Esta corrección se aplicó para mejorar la nomenclatura del dispositivo y también para abordar las suposiciones sobre la funcionalidad del puerto en un dispositivo, como en situaciones en las que el dispositivo de red puede pertenecer a diferentes funciones. Por lo tanto, este cambio puede generar problemas con las secuencias de comandos de red al actualizar de un sistema que utiliza RHCK o UEK R5 a UEK R6. Es posible que deba asegurarse de que las secuencias de comandos de red se renombren y actualicen según corresponda si actualiza de una versión anterior del núcleo a una versión actual de UEK R6 o posterior. -
Controlador SCSI de canal de fibra Broadcom Emulex LightPulse
El controlador
lpfcse actualizó a 12.6.0.3. Esta actualización incluye un gran número de parches aportados por el proveedor para abordar los cambios en el controlador desde que se puso a disposición el núcleo 5.4 ascendente y la corrección de errores importante para el firmware del adaptador. Los cambios de este controlador también dieron lugar a actualizaciones de otras dependencias del núcleo, como el código para NVMe sobre canal de fibra. -
Controlador QLogic BCM5706/5708/5709/5716
El controlador
bnx2se actualiza y, aunque el número de versión permanece en la versión 2.2.6, el controlador incluye los parches aportados por el proveedor y las actualizaciones de firmware. -
Controlador HBA QLogic Fibre Channel
El controlador
qla2xxxse actualiza a la versión 10.01.00.22.81.1-k. Esta actualización respalda muchos parches que desde entonces han entrado en el núcleo ascendente e incluye parches de contribución de proveedores particulares para mejorar el rendimiento y proporcionar correcciones para algunos errores en el controlador original. -
Controlador de familia inteligente Microsemi
El controlador
smartpqise actualiza a la versión 1.2.10-025 e incluye parches ascendentes que se han aplicado al controlador desde la versión de núcleo 5.4 bajo la guía del proveedor. Estas actualizaciones incluyen varias correcciones de bugs y mejoras de rendimiento. -
Controlador de dispositivo LSI MPT Fusion SAS 3.0
El controlador
mpt3sasse actualiza a la versión 33.100.00.00 e incluye los parches aportados por el proveedor.
Paquetes nuevos y actualizados
Para admitir la funcionalidad recién agregada que proporciona UEK R6, se han agregado o actualizado varios paquetes binarios de núcleo y espacio de usuario a partir de los paquetes que se incluyen en la distribución base. Para obtener más información sobre los canales ULN y los repositorios del servidor yum de Oracle Linux en los que están disponibles estos paquetes, consulte UEK R6 Installation and Availability.
Los paquetes de espacio de núcleo que se agregan y actualizan para UEK R6 están etiquetados con el prefijo kernel-uek. El paquete linux-firmware también se actualiza con los últimos firmwares disponibles.
Los paquetes que se muestran aquí son específicos de la funcionalidad de espacio de usuario y se actualizan para aprovechar las funciones disponibles en UEK R6. No hay dependencia en estos paquetes para usar UEK R6. Si utiliza cualquiera de estos paquetes y también usa UEK R6, debe actualizar el paquete a la última versión para compatibilidad completa con todas las funciones disponibles en UEK R6.
|
Paquetes |
Número de versión de Oracle Linux 8 |
Número de versión de 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) |
|
|
N/D |
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) |
N/D |