Oracle ha pubblicato il kernel Unbreakable Enterprise Kernel 8

Oracle ha presentato la prima versione stabile di Unbreakable Enterprise Kernel 8 (UEK R8), una variante del kernel Linux sviluppata per l'uso nella distribuzione Oracle Linux come alternativa al pacchetto standard del kernel di Red Hat Enterprise Linux. Il kernel è disponibile solo per le architetture x86_64 e ARM64 (aarch64). Il codice sorgente del kernel, comprese le suddivisioni in patch separate, è stato pubblicato in un repository Git pubblico di Oracle.

Il pacchetto Unbreakable Enterprise Kernel 8 si basa sul kernel Linux 6.12 (il rilascio UEK R7 si basava sul kernel 5.4, mentre nella versione beta di RHEL 10 è stato proposto il kernel 6.11), arricchito con nuove funzionalità, ottimizzazioni e correzioni, ed è stato testato per la compatibilità con la maggior parte delle applicazioni che operano in RHEL, ed ottimizzato per lavorare con software e hardware industriali Oracle. I pacchetti di installazione e src del kernel UEK R8 sono stati preparati per Oracle Linux 9.5 (non ci sono ostacoli all'uso di questo kernel in versioni equivalenti di RHEL, CentOS, Alma Linux e Rocky Linux).

Novità principali di Unbreakable Enterprise Kernel 8:

  • La suddivisione dei componenti del kernel UEK in pacchetti separati è stata modificata. I moduli del kernel sono stati separati dall'immagine base del kernel e trasferiti in collezioni fornite in pacchetti separati: kernel-uek-modules-core (minimo di base), kernel-uek-modules (per server), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb e kernel-uek-modules-wireless. Gli strumenti ausiliari sono stati trasferiti dal pacchetto base kernel-uek-core a un pacchetto separato kernel-uek-tools. I file di configurazione con l'elenco dei moduli vietati al caricamento sono stati rinominati da ‘blacklist’ a ‘denylist’ nell'ambito di un'iniziativa per l'uso di una terminologia inclusiva.
  • Per i sistemi ARM Ampere, utilizzati in Oracle Cloud, è stata creata una build separata del kernel kernel-uek64k, il cui size di pagina di memoria di base è stato aumentato da 4 a 64 KB.
  • È stata aggiunta la supporto per la realizzazione hardware del meccanismo EDMM (Enclave Dynamic Memory Management) fornita in Intel SGX2 (Software Guard Extensions), che consente la gestione dell'accesso a singole pagine di memoria dell'enclave e l'aggiunta/rimozione dinamica di pagine di memoria per l'enclave.
  • Nel driver Intel QAT con supporto per i dispositivi Intel Quick Assist Technology (QAT) è stata aggiunta la supporto per la quarta generazione di processori Intel Xeon.
  • È stato aggiunto un sistema di rilevamento dei blocchi "split-lock", che si verifica quando si accede a dati non allineati in memoria, a causa del fatto che durante l'esecuzione di un'istruzione atomica i dati attraversano due linee di cache della CPU. Tali blocchi portano a un calo significativo delle prestazioni (fino a 1000 cicli più lenti rispetto a un'operazione atomica con dati che rientrano in una sola linea di cache).
  • È stato implementato un nuovo metodo di protezione dalla vulnerabilità Retbleed nelle CPU Intel e AMD, che utilizza il monitoraggio della profondità delle chiamate, il quale non rallenta il funzionamento tanto quanto la precedente protezione contro Retbleed.
  • Nei sistemi x86 è stata garantita l'attivazione simultanea dei core secondari della CPU, riducendo il tempo di avvio del kernel nei sistemi con un numero elevato di core.
  • È stato aggiunto un parametro della riga di comando del kernel "ia32_emulation", che consente di attivare e disattivare il supporto per l'emulazione a 32 bit nei kernel compilati per l'architettura x86-64 durante la fase di avvio.
  • Di default, al posto del CFS (Completely Fair Scheduler), è stato attivato il pianificatore di attività EEVDF (Earliest Eligible Virtual Deadline First). Nella scelta del prossimo processo da eseguire, il nuovo pianificatore considera i processi che non hanno ricevuto risorse CPU sufficienti o hanno ottenuto ingiustamente troppo tempo di CPU. Nel primo caso, il passaggio di controllo al processo è forzato, mentre nel secondo, viene posticipato. Il vecchio pianificatore CFS utilizzava euristiche e ottimizzazioni per identificare i processi che richiedevano attenzione separata, mentre il nuovo pianificatore li monitora in modo più esplicito e non richiede ottimizzazione. L'EEVDF ridurrà i ritardi nell'esecuzione di compiti su cui CFS aveva problemi di pianificazione.
  • È proseguita l'offerta del sistema di debug dinamico DTrace 2.0, che è stato adattato per utilizzare il sottosistema del kernel eBPF. DTrace 2.0 opera sopra eBPF, analogamente a come gli strumenti di tracciamento esistenti in Linux funzionano sopra eBPF.
  • Nell'ipervisore KVM è consentito l'uso di fino a 4096 CPU virtuali (VCPU).
  • È proseguito l'uso di KTLS, l'implementazione del protocollo TLS a livello di kernel.
  • È stata aggiornata l'implementazione del generatore di numeri pseudocasuali RDRAND, responsabile del funzionamento del dispositivo /dev/random, che è stato convertito per utilizzare la funzione di hash BLAKE2s invece di SHA1 per le operazioni di miscelazione dell'entropia. Questa modifica ha migliorato la sicurezza del generatore di numeri pseudocasuali. Per accelerare l'ottenimento di numeri casuali tramite la chiamata di sistema getrandom(), è stato coinvolto il meccanismo vDSO (virtual dynamic shared object), spostando la gestione della chiamata di sistema dallo spazio kernel a quello utente per evitare cambi di contesto.
  • È stata aggiunta la supporto per l'estensione BIG TCP, che consente di aumentare la dimensione massima del pacchetto TCP fino a 4 GB per ottimizzare il funzionamento di reti interne ad alta velocità nei data center. Tale aumento della dimensione del pacchetto con una dimensione del campo intestazione a 16 bit viene raggiunto attraverso l'implementazione dei pacchetti "jumbo", la cui dimensione nell'intestazione IP è impostata a 0, mentre la dimensione effettiva è riportata in un campo separato a 32 bit in un'intestazione allegata.
  • Per i socket di rete è stata implementata l'opzione SO_RESERVE_MEM, che consente di riservare per il socket una certa quantità di memoria che rimarrà sempre disponibile per il socket e non verrà prelevata. L'uso di questa opzione consente di aumentare le prestazioni riducendo nel stack di rete le operazioni di allocazione e restituzione della memoria, specialmente in caso di condizioni di esaurimento della memoria nel sistema.
  • È stata ottimizzata la performance dello scheduler dei pacchetti fq (Fair Queuing), consentendo di aumentare la capacità del 5% sotto carichi pesanti nel test tcp_rr (TCP Request/Response) e del 13% in un flusso UDP non limitato.
  • È stata riorganizzata la struttura rete del kernel per migliorare l'efficienza del caching dei dati da parte della CPU, consentendo di aumentare le prestazioni dello stack TCP in sistemi che gestiscono un numero elevato di richieste parallele.
  • È stato aggiunto il supporto per la libreria ASMLib 3 per la gestione automatica dello storage nel DBMS Oracle.
  • È stato lavorato per ottimizzare le prestazioni e aumentare la sicurezza del meccanismo di input/output asincrono io_uring. Sono state aggiunte ottimizzazioni basate su io_uring per i filesystem XFS ed Ext4, che consentono la scrittura diretta in un file in parallelo attraverso più thread.
  • Migliorato il supporto per il file system Btrfs. Per i dispositivi che supportano trim/discard, l'opzione di montaggio “discard=async” è abilitata per impostazione predefinita, consentendo di eseguire queste operazioni immediatamente per tutti i FS in modalità asincrona. Aggiunto il supporto per l'invio e la ricezione di dati compressi senza conversioni. Introdotto il supporto per la scrittura di blocchi più grandi di 64 KB. Semplificata la gestione delle quote. Implementato il supporto per il montaggio di dispositivi clonati. Migliorati i controlli di scrittura nella modalità NOCOW (la larghezza di banda è aumentata del 9%). Aggiunte le opzioni di montaggio “ignoremetacsums” e “ignoresuperflags” per ignorare i checksum errati dei metadati e i flag del superblocco. Garantito l'esecuzione di operazioni di rimozione dei dispositivi, bilanciamento e ridistribuzione dei blocchi in modalità parallela.
  • Nella FS XFS è consentito l'uso di una dimensione del blocco superiore alla dimensione della pagina di memoria. Aggiunti grandi contatori di extent per dischi virtuali molto grandi. Introdotta la modalità di commit atomico del contenuto dei file. Proposta un'implementazione sperimentale della verifica (fsck) e del recupero della FS in modalità online.
  • In NFS l'uso dell'operazione READ_PLUS, definita nella specifica NFS 4.2 e utilizzata per una lettura più efficiente dei dati da file contenenti spazi vuoti, è abilitato per impostazione predefinita.
  • Il sistema di gestione della memoria è stato convertito all'uso della struttura dati folios (folio di pagine di memoria). I folios sono simili alle pagine di memoria composte, ma presentano una semantica migliorata e un'organizzazione del lavoro più chiara.
  • Per le operazioni di mapping della memoria è stata utilizzata la struttura dati “maple tree”, che si propone come una sostituzione più efficace della struttura “red-black tree”. Maple tree è una variante dell'albero B, che supporta l'indicizzazione per intervalli di valori ed è progettato per un uso efficiente della cache dei processori moderni.
  • In mmap sono state implementate le lock a livello di singolo VMA (Area di Memoria Virtuale), che consentono di aumentare le prestazioni delle applicazioni multithread.
  • Aggiunta la struttura dati ptdesc, che ottimizza il lavoro con le tabelle delle pagine di memoria separando le strutture con i metadati e i dati per le pagine di memoria.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster