Disponibili Oracle Linux 9 e Unbreakable Enterprise Kernel 7

Oracle ha pubblicato versioni stabili della distribuzione Oracle Linux 9 e Unbreakable Enterprise Kernel 7 (UEK R7), posizionate per l'uso nella distribuzione Oracle Linux come alternativa al pacchetto kernel standard di Red Hat Enterprise Linux. La distribuzione Oracle Linux 9 si basa sul pacchetto base Red Hat Enterprise Linux 9 ed è completamente compatibile a livello binario con esso.

Le immagini ISO di installazione da 8.6 GB e 840 MB, predisposte per le architetture x86_64 e ARM64 (aarch64), possono essere scaricate senza restrizioni. Oracle Linux 9 ha accesso illimitato e gratuito al repository yum con aggiornamenti dei pacchetti binari che correggono errori (errata) e problemi di sicurezza. Sono stati preparati per il download anche repository supportati separatamente con set di pacchetti Application Stream e CodeReady Builder.

Oltre al pacchetto kernel di RHEL (basato sul kernel 5.14), Oracle Linux offre il proprio kernel, Unbreakable Enterprise Kernel 7, basato sul kernel Linux 5.15 e ottimizzato per lavorare con software industriale e hardware Oracle. I sorgenti del kernel, inclusa la suddivisione in singole patch, sono disponibili nel repository pubblico Oracle Git. L'Unbreakable Enterprise Kernel è installato per impostazione predefinita, posizionato come alternativa al pacchetto kernel RHEL standard e fornisce una serie di funzionalità avanzate come l'integrazione DTrace e il supporto Btrfs migliorato. A parte il kernel aggiuntivo, le versioni di Oracle Linux 9 e RHEL 9 sono completamente identiche in termini di funzionalità (l'elenco delle modifiche è disponibile nell'annuncio RHEL9).

Innovazioni chiave in Unbreakable Enterprise Kernel 7:

  • Supporto migliorato per l'architettura Aarch64. La dimensione predefinita delle pagine di memoria sui sistemi ARM a 64 bit è stata ridotta da 64 KB a 4 KB, per adattarsi meglio alle dimensioni della memoria e ai carichi di lavoro tipici dei sistemi ARM.
  • È proseguita la fornitura del sistema di debug dinamico DTrace 2.0, che è passato all'utilizzo del sottosistema kernel eBPF. DTrace 2.0 viene eseguito su eBPF, in modo simile a come funzionano gli strumenti di tracciamento Linux esistenti su eBPF.
  • Le funzionalità del file system Btrfs sono state ampliate. Un'implementazione asincrona dell'operazione DISCARD è stata aggiunta a Btrfs per contrassegnare i blocchi liberati che non necessitano più di essere archiviati fisicamente. L'implementazione asincrona consente di non attendere che l'unità completi DISCARD ed eseguire questa operazione in background. Aggiunte nuove opzioni di montaggio per semplificare il ripristino dei dati da un file system danneggiato: "rescue=ignorebadroots" per il montaggio nonostante il danneggiamento di alcuni alberi root (extent, uuid, data reloc, dispositivo, csum, spazio libero), "rescue=ignoredatacsums" per disabilitare controllando i checksum per i dati e "rescue=all" per abilitare contemporaneamente le modalità 'ignorebadroots', 'ignoredatacsums' e 'nologreplay'. Sono state apportate significative ottimizzazioni delle prestazioni relative alle operazioni fsync(). Aggiunto supporto per fs-verity (autenticazione dei file e verifica dell'integrità) e mappatura dell'ID utente.
  • XFS supporta le operazioni DAX per l'accesso diretto ai file, ignorando la cache della pagina per eliminare la doppia memorizzazione nella cache. Aggiunte modifiche per risolvere i problemi di overflow con il tipo di dati time_t a 32 bit nel 2038, incluse le nuove opzioni di montaggio bigtime e inobtcount.
  • Sono stati apportati miglioramenti al file system OCFS2 (Oracle Cluster File System).
  • Aggiunto il file system ZoneFS, che semplifica il lavoro di basso livello con i dispositivi di archiviazione a zone. Per unità a zone si intendono dispositivi su dischi rigidi magnetici o SSD NVMe, lo spazio di archiviazione in cui è suddiviso in zone che compongono gruppi di blocchi o settori, in cui è consentita solo l'aggiunta sequenziale di dati, aggiornando l'intero gruppo di blocchi. ZoneFS FS associa ciascuna zona dell'unità a un file separato, che può essere utilizzato per archiviare i dati in modalità raw senza manipolazione a livello di settore e blocco, ad es. Consente alle applicazioni di utilizzare l'API file invece di accedere direttamente al dispositivo a blocchi utilizzando un ioctl.
  • Il supporto per il protocollo VPN WireGuard è stato stabilizzato.
  • Le capacità del sottosistema eBPF sono state ampliate. È stato implementato il meccanismo CO-RE (Compile Once - Run Everywhere) che risolve il problema della portabilità dei programmi eBPF compilati e permette di compilare il codice dei programmi eBPF una sola volta e utilizzare uno speciale caricatore universale che adatta il programma caricato a il kernel corrente e il formato dei tipi BPF). Aggiunto il meccanismo "trampolino BPF", che consente di ridurre praticamente a zero l'overhead durante il trasferimento delle chiamate tra il kernel e i programmi BPF. Viene fornita la possibilità di accedere direttamente alle funzionalità del kernel dai programmi BPF e di sospendere il gestore.
  • È stato integrato un rilevatore di 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. Il kernel può identificare al volo tali blocchi che causano un significativo degrado delle prestazioni ed emettere avvisi o inviare un segnale SIGBUS all'applicazione che causa il blocco.
  • Fornisce supporto per Multipath TCP (MPTCP), un'estensione del protocollo TCP per organizzare il funzionamento di una connessione TCP con la consegna di pacchetti contemporaneamente lungo più percorsi attraverso diverse interfacce di rete associate a diversi indirizzi IP.
  • L'utilità di pianificazione implementa la modalità di pianificazione SCHED_CORE, che consente di controllare quali processi possono essere eseguiti insieme sullo stesso core della CPU. A ogni processo può essere assegnato un identificatore di cookie che definisce l'ambito di fiducia tra i processi (ad esempio, appartenenza allo stesso utente o contenitore). Quando si organizza l'esecuzione del codice, lo scheduler può garantire che un core della CPU sia condiviso solo tra processi associati allo stesso proprietario, il che può essere utilizzato per bloccare alcuni attacchi Spectre impedendo l'esecuzione di attività attendibili e non attendibili sullo stesso thread SMT (Hyper Threading). .
  • Per i cgroup, è stato implementato un controller di memoria lastra, che è degno di nota per trasferire la contabilità della lastra dal livello delle pagine di memoria al livello degli oggetti del kernel, il che rende possibile condividere le pagine lastra in diversi cgroup, invece di allocare cache lastra separate per ciascun cgruppo. L'approccio proposto consente di aumentare l'efficienza dell'utilizzo della lastra, ridurre la dimensione della memoria utilizzata per la lastra del 30-45%, ridurre significativamente il consumo complessivo di memoria del kernel e ridurre la frammentazione della memoria.
  • La consegna dei dati di debug viene fornita nel formato CTF (Compact Type Format), che fornisce l'archiviazione compatta di informazioni sui tipi C, connessioni tra funzioni e simboli di debug.
  • Il modulo DRBD (Distributed Replicated Block Device) e il dispositivo /dev/raw sono stati interrotti (utilizzare il flag O_DIRECT per l'accesso diretto ai file).

Fonte: opennet.ru

Aggiungi un commento