Oracle lanzou a primeira versión estable de Unbreakable Enterprise Kernel 8 (UEK R8), unha variante do kernel. Linux, desenvolvido para o seu uso na distribución Oracle Linux como alternativa ao paquete estándar do kernel de Red Hat Enterprise LinuxO kernel só está dispoñible para as arquitecturas x86_64 e ARM64 (aarch64). O código fonte do kernel, incluíndo unha análise dos parches individuais, está publicado no repositorio público de Git de Oracle.
Unbreakable Enterprise Kernel 8 está baseado no núcleo Linux 6.12 (a versión UEK R7 baseábase no kernel 5.4 e a versión beta de RHEL 10 ofrecía o kernel 6.11), que se complementa con novas funcionalidades, optimizacións e correccións, e tamén se proba a compatibilidade coa maioría das aplicacións que se executan en RHEL e se optimiza para traballar con software industrial e hardware de Oracle. Os paquetes de instalación e src co kernel UEK R8 están preparados para Oracle Linux 9.5 (non hai obstáculos para usar este núcleo en versións semellantes de RHEL, CentOS, Alma Linux и Rocky Linux).
Novas características clave de Unbreakable Enterprise Kernel 8:
- Modificouse a división dos compoñentes do núcleo UEK en paquetes separados. Os módulos do núcleo separáronse da imaxe base do núcleo e colocáronse en coleccións subministradas en paquetes separados: kernel-uek-modules-core (o mínimo básico), kernel-uek-modules (por exemplo) servidores), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb e kernel-uek-modules-wireless. As utilidades asociadas foron trasladadas do paquete principal kernel-uek-core a un paquete separado kernel-uek-tools. Os ficheiros de configuración cunha lista de módulos cuxa carga está prohibida foron renomeados de «blacklist» a «denylist» como parte dunha iniciativa para usar terminoloxía inclusiva.
- Para os sistemas ARM Ampere empregados en Oracle Cloud, creouse unha compilación do kernel separada, kernel-uek64k, na que o tamaño da páxina de memoria base aumentou de 4 a 64 KB.
- Engadido soporte para a implementación de hardware do mecanismo EDMM (Enclave Dynamic Memory Management) proporcionado por Intel SGX2 (Software Guard Extensions), que permite controlar o acceso a páxinas de memoria de enclave individuais e engadir/eliminar dinámicamente páxinas de memoria para o enclave.
- Actualizouse o controlador Intel QAT compatible con dispositivos Intel Quick Assist Technology (QAT) para admitir procesadores Intel Xeon de cuarta xeración.
- Engadiuse un sistema para detectar bloqueos divididos que se producen ao acceder a datos non aliñados na memoria debido ao feito de que ao executar unha instrución atómica, os datos cruzan dúas liñas da caché da CPU. Tales bloqueos dan lugar a unha penalización de rendemento significativa (1000 ciclos máis lento que unha operación atómica en datos que caen nunha única liña de caché).
- Implementouse un novo método para mitigar a vulnerabilidade de Retbleed nas CPU de Intel e AMD que utiliza o seguimento da profundidade de chamadas, que non ralentiza o rendemento tanto como a mitigación de Retbleed anteriormente presente.
- Nos sistemas x86, os núcleos de CPU secundarios están habilitados para activarse simultaneamente, reducindo o tempo de arranque do núcleo en sistemas con moitos núcleos.
- Engadiuse o parámetro de liña de comandos do núcleo "ia32_emulation" para activar ou desactivar o soporte de emulación de 32 bits nos núcleos construídos para a arquitectura x86-64 no momento do arranque.
- Por defecto, utilízase o programador de tarefas EEVDF (Earliest Eligible Virtual Deadline First) en lugar do CFS (Completely Fair Scheduler). Ao escoller o seguinte proceso ao que transferir a execución, o novo planificador ten en conta os procesos que recibiron recursos de CPU insuficientes ou recibiron unha cantidade inxusta de tempo de CPU. No primeiro caso obrígase a transferencia do control ao proceso, mentres que no segundo, pola contra, aprázase. O antigo programador CFS utilizaba heurísticas e axustes finos para determinar cales procesos necesitaban unha atención especial, mentres que o novo programador facía un seguimento deles de forma máis explícita e non require un axuste fino. EEVDF reducirá a latencia nas tarefas que CFS tivo problemas para programar.
- O sistema de depuración dinámica DTrace 2.0 foi lanzado e migrou para usar o subsistema central eBPF. DTrace 2.0 execútase sobre eBPF, de xeito similar a como se executan os sistemas existentes sobre eBPF. Linux ferramentas de trazado.
- O hipervisor KVM permite ata 4096 CPU virtuais (VCPU).
- Uso continuado de KTLS, unha implementación a nivel de kernel do protocolo TLS.
- A implementación do xerador de números pseudoaleatorios RDRAND responsable do dispositivo /dev/random foi actualizada para usar a función hash BLAKE2s en lugar de SHA1 para operacións de mestura de entropía. A modificación mellorou a seguranza do xerador de números pseudoaleatorios. Para acelerar a xeración de números aleatorios mediante a chamada do sistema getrandom(), utilízase o mecanismo vDSO (obxecto dinámico compartido virtual), que move o xestor de chamadas do sistema do kernel ao espazo de usuario para evitar cambios de contexto.
- Engadiuse soporte para a extensión BIG TCP, que permite aumentar o tamaño máximo do paquete TCP a 4 GB para optimizar o funcionamento das redes internas de centros de datos de alta velocidade. Este aumento do tamaño do paquete cun tamaño de campo de cabeceira de 16 bits conséguese mediante a implementación de paquetes "jumbo", cuxo tamaño na cabeceira IP está configurado en 0, e o tamaño real transmítese nun campo separado de 32 bits nunha cabeceira anexa separada.
- Para os enchufes de rede, está implementada a opción SO_RESERVE_MEM, coa que se pode reservar unha determinada cantidade de memoria para un socket, que permanecerá sempre dispoñible para o socket e non se quitará. Usar esta opción permítelle conseguir un maior rendemento reducindo o número de operacións de asignación de memoria e de retorno na pila de rede, especialmente cando se producen condicións de memoria baixa no sistema.
- Optimizouse o rendemento do programador de paquetes fq (Fair Queuing), que aumentou o rendemento nun 5 % con cargas pesadas na proba tcp_rr (Solicitude/resposta TCP) e nun 13 % cun fluxo ilimitado de paquetes UDP.
- As estruturas de rede do núcleo reorganizáronse para mellorar a eficiencia do almacenamento en caché de datos do procesador, o que aumentou o rendemento da pila TCP nos sistemas que atenden un gran número de solicitudes paralelas.
- Engadido soporte para a biblioteca ASMLib 3 para a xestión automática de almacenamento en Oracle DBMS.
- Traballouse para optimizar o rendemento e mellorar a seguridade do mecanismo de entrada/saída asíncrona io_uring. Engadíronse optimizacións baseadas en io_uring para XFS e Ext4 FS, que permiten a escritura directa paralela nun ficheiro en varios fíos.
- Mellorouse a compatibilidade co sistema de ficheiros Btrfs. Para os dispositivos con compatibilidade con recortar/descartar, a opción de montaxe "discard=async" está activada por defecto, o que permite que estas operacións se realicen para todos os FS á vez en modo asíncrono. Engadiuse compatibilidade para enviar e recibir datos comprimidos sen transformacións. Engadiuse compatibilidade coa escritura en bloques maiores de 64 KB. Simplificouse a contabilidade de cotas. Implementouse soporte para montar dispositivos clonados. Melloras nas comprobacións de escritura no modo NOCOW (o rendemento aumentou un 9 %). Engadíronse as opcións de montaxe "ignoremetacsums" e "ignoresuperflags" para ignorar as sumas de comprobación de metadatos e os indicadores de superbloque non válidos. As tarefas de eliminar dispositivos, equilibrar e redistribuír bloques realízanse en modo paralelo.
- XFS permite o uso dun tamaño de bloque maior que o tamaño da páxina de memoria. Engadíronse contadores de gran extensión para discos virtuais moi grandes. Engadiuse o modo de confirmación atómica para o contido do ficheiro. Proponse unha implementación experimental de comprobación (fsck) e restauración de FS en modo en liña.
- NFS activa por defecto o uso da operación READ_PLUS, definida na especificación NFS 4.2, que se emprega para ler datos de ficheiros que conteñen espazos baleiros de forma máis eficiente.
- O sistema de xestión de memoria pasou a utilizar a estrutura de datos de folios (folios de páxinas de memoria). Os folios son similares ás páxinas compostas, pero teñen unha semántica mellorada e unha organización do traballo máis limpa.
- As operacións de mapeo de memoria utilizan a estrutura de datos Maple Tree, que se posiciona como un substituto máis eficiente da estrutura de árbore vermella-negra. Maple Tree é unha variante da árbore B que admite a indexación de rangos e está deseñada para unha utilización eficiente da caché. procesadores modernos.
- mmap implementa bloqueos a nivel de VMA (Área de memoria virtual) individual, o que permite aumentar o rendemento das aplicacións multiproceso.
- Engadida a estrutura de datos ptdesc, que optimiza o traballo coas táboas de páxinas de memoria separando estruturas con metadatos e datos para páxinas de memoria.
Fonte: opennet.ru
