Nuove funzionalità e modifiche in UEK R6

Riepilogo delle modifiche rilevanti in UEK R6

Le sezioni seguenti descrivono le principali nuove funzioni di Unbreakable Enterprise Kernel Release 6 (UEK R6), rispetto a UEK R5. Di seguito è riportato un elenco di riepilogo delle funzioni chiave di questa release.

  • Base kernel stabile Linux 5.4

    La release del kernel mainline 5.4 utilizzata come kernel di base per UEK R6 include molte funzionalità del kernel upstream e miglioramenti rispetto alle versioni precedenti e su RHCK. Per un elenco delle principali funzioni e miglioramenti disponibili in questo kernel, anziché nella release principale precedente di UEK, vedere Core Kernel Functionality.

  • Supporto braccio

    Molte funzionalità e miglioramenti in questa release sono volti a migliorare il supporto per la piattaforma Arm (aarch64). Le modifiche importanti includono miglioramenti alla sicurezza e un supporto di virtualizzazione migliorato su Arm. Per ulteriori informazioni, consulta la piattaforma Arm (aarch64).

  • Miglioramenti per Cgroup v2

    La funzionalità Cgroup v2 è stata introdotta per la prima volta in UEK R5 per abilitare la funzionalità del controller CPU. UEK R6 include tutte le funzioni di Cgroup v2 e diversi miglioramenti descritti nella sezione Funzionalità kernel core.

  • miglioramenti ktask

    ktask è un framework per parallelizzare il lavoro ad alta intensità di CPU nel kernel. Può essere utilizzato per accelerare attività di grandi dimensioni su sistemi con molta potenza CPU disponibile, in cui un'attività è a thread singolo nello spazio utente. ktask fornisce un'API generica che può aggiungere concorrenza a molti tipi diversi di attività, riducendo al contempo la complessità relativa alla gestione di più thread e viene utilizzata durante l'inizializzazione della pagina di struttura e l'inizializzazione guest KVM abilitata per VFIO per ridurre i tempi di avvio.

    La documentazione per il task è disponibile in /usr/share/doc/kernel-uek-doc-5.4/core-api/ktask.html, anche se l'interfaccia non è ancora stabile.

  • kswapd parallelizzato

    La sostituzione della pagina viene gestita nel kernel in modo asincrono da kswapd e in modo sincrono dal recupero diretto. Quando le pagine libere all'interno della lista libera della zona sono basse, kswapd esegue la scansione delle pagine per le pagine inutilizzate che possono essere rimosse per liberare spazio per le nuove allocazioni di pagina. Questa ottimizzazione può migliorare le prestazioni evitando il recupero diretto, che può richiedere molte risorse e richiedere molto tempo.

  • Firma del firmware Kexec

    L'opzione per controllare e convalidare una firma immagine kernel è abilitata in UEK R6. Quando si utilizza kexec per caricare un kernel da UEK R6, è possibile implementare il controllo e la convalida della firma dell'immagine del kernel per garantire che un sistema carichi solo un'immagine del kernel firmata e convalidata.

  • Miglioramenti alla gestione della memoria

    Nel codice di gestione della memoria del kernel sono stati implementati diversi miglioramenti delle prestazioni per migliorare l'efficienza relativa alla cancellazione di pagine e cache e ai miglioramenti alla gestione e alla generazione di report degli errori. Per ulteriori informazioni, vedere Gestione della memoria.

  • Aggiornamenti NVDIMM

    Gli aggiornamenti delle funzionalità NVDIMM sono stati implementati in modo che la memoria persistente possa ora essere utilizzata come RAM tradizionale ed è stato incluso anche un aggiornamento che aiuta a standardizzare la funzionalità di cancellazione a chiave zero. Per ulteriori informazioni, vedere Funzionalità kernel core.

  • DTrace versione 2.0

    Il supporto DTrace è abilitato in UEK R6 ed è stato reimplementato per utilizzare il Berkeley Packet Filter (BPF) integrato nel kernel Linux. La versione attuale è la prima release di Dtrace basata sulla nuova implementazione, non raggiunge ancora la parità di funzionalità con DTrace su UEK R5, ma lo farà in futuro. Sono stati apportati altri miglioramenti per semplificare l'insieme di RPM disponibili per DTrace a causa dei miglioramenti nella toolchain a monte. Per ulteriori informazioni, vedere DTrace v2.0.

  • OCFS2

    Il supporto per il file system OCFS2 è abilitato in UEK R6. Per ulteriori informazioni, vedere OCFS2.

  • Supporto del file system Btrfs

    Se UEK R6 è installato sul sistema, il supporto per il file system Btrfs è abilitato sui sistemi Oracle Linux 8. In questa release sono stati apportati ulteriori miglioramenti a Btrfs. Per ulteriori informazioni, vedere Btrfs.

Funzionalità kernel core

Nel kernel upstream sono state implementate diverse importanti funzionalità del kernel, tra la release 4.14 utilizzata come versione base del kernel per UEK R5 e la release 5.4 utilizzata come versione base del kernel per UEK R6. Sebbene alcune funzionalità siano state retro-portate nel kernel UEK R5 nelle release di aggiornamento, le seguenti nuove funzionalità significative sono disponibili in UEK R6:

  • Modalità di blocco (solo x86_64)

    La modalità di blocco è notevolmente migliorata e ci sono diverse modifiche all'implementazione che vale la pena notare. Questa release distingue tra le modalità integrità e riservatezza. Per ulteriori informazioni su questa funzione, vedere Sicurezza.

  • fs-verità

    fs-verity è una funzione del kernel a cui i file system possono collegarsi per garantire la protezione dell'integrità e dell'autenticità dei file di sola lettura. Questa funzione può essere utilizzata per rilevare la corruzione dei file non dannosi e la modifica dannosa dei file che non dovrebbero essere modificati in un sistema. Attualmente questa funzione funziona solo con i file system ext4 e f2fs.

  • I/O asincrono ad alte prestazioni con io_uring

    Questa funzione fornisce un'interfaccia I/O asincrona veloce e scalabile per gli I/O con buffer e senza buffer. Supporta anche I/O polled asincrono. Una libreria di spazio utente, liburing, fornisce funzionalità di base per le applicazioni con helpers per consentire alle applicazioni di impostare facilmente un'istanza io_uring e inviare/completare I/O.

  • Aggiornamenti Cgroup

    La funzionalità completa di Cgroup v2 è inclusa in UEK R6. La funzionalità di UEK R5 includeva alcune funzionalità, come il controller della CPU, che consentiva di impostare le risorse della CPU per un determinato gruppo di attività. UEK R6 include queste funzioni, insieme ai seguenti miglioramenti notevoli:

    • Un killer OOM cgroup-aware che può essere utilizzato per uccidere un cgroup come una singola unità per mantenere l'integrità di un carico di lavoro. Questa funzionalità può essere abilitata impostando memory.oom.group nel controller di memoria cgroup v2. Questa impostazione determina che il cgroup è un carico di lavoro indivisibile e le attività, insieme ai loro discendenti, vengono uccise insieme dal killer OOM o non affatto.

    • Un controller del congelatore viene aggiunto a cgroupsv2, fornendo la possibilità di arrestare il carico di lavoro in un cgroup e liberare temporaneamente alcune risorse.

    • Questa release introduce il blk-iocost, un controller proporzionale basato sui costi di I/O. Attualmente ha un semplice modello di costo lineare incorporato, in cui ogni I/O è classificato come sequenziale o casuale e dato un costo di base, di conseguenza. Il costo proporzionale è aggiunto in cima.

  • NVDIMM

    La memoria persistente può ora essere utilizzata come RAM tradizionale. Inoltre, sono state implementate correzioni attorno ai comandi relativi alla sicurezza all'interno di libnvdimm per consentire l'uso di chiavi in cui i dati del payload sono stati riempiti con valori zero, per consentire alle operazioni sicure di continuare ad avere luogo dove è in uso una chiave zero. Un'implementazione comune è stata messa in atto per garantire che tutti i comandi utilizzino la stessa semantica a chiave zero e che la cancellazione sicura dei dati su un NVDIMM possa essere eseguita dove è in uso una chiave zero. Questa modifica è importante perché alcune piattaforme NVDIMM abilitano la sicurezza con una chiave zero predefinita, piuttosto che lasciare che il sistema operativo specifichi la chiave iniziale, il che potrebbe impedire alle operazioni di funzionare dove la sicurezza è stata abilitata.

Piattaforma Arm (aarch64)

In UEK R6 sono implementate le seguenti importanti funzioni ARM:

  • Miglioramenti alla sicurezza

    Sono stati apportati diversi miglioramenti per migliorare le mitigazioni dagli attacchi, tra cui: wrapper delle chiamate di sistema, autenticazione del puntatore, supporto KASLR (kernel virtual address randomization) e supporto bit PSTATE.SSBS (core ARM v8.5).

  • Hotplug della memoria

    Supporto di base per la memoria hot plug.

  • Miglioramenti KVM

    I miglioramenti per i guest KVM nei sistemi ARM (aarch64) includono l'autenticazione del puntatore (ARM v8.3) e il supporto di Scalable Vector Extension (SVE).

Crittografia

In UEK R6 sono implementate le seguenti importanti funzioni crittografiche:

  • Gestione semplificata della descrizione delle chiavi

    Chiavi e portachiavi sono più namespace-aware .

  • Compressione Zstandard

    La compressione Zstandard (zstd) viene aggiunta a crypto e scompress. Solo il livello predefinito è abilitato.

DTrace versione 2.0

DTrace v2.0 è una reimplementazione di DTrace che utilizza le funzionalità di trace del kernel Linux esistenti, come eBPF, che non esisteva quando DTrace è stato trasferito per la prima volta su Linux. La nuova implementazione rimuove le dipendenze DTrace dalle patch kernel specializzate.

DTrace v2.0 è disponibile solo con UEK R6. Le versioni precedenti di UEK continuano a includere l'implementazione DTrace originale.

DTrace V2.0 su Oracle Linux 8 è stata reimplementata come applicazione dello spazio utente. Non richiede più l'esecuzione della libreria libdtrace-ctf su Oracle Linux 8. La funzionalità di tale libreria è integrata nella catena di strumenti Oracle Linux 8 GNU. Tenere presente che libdtrace-ctf è ancora necessario su Oracle Linux 7.

La funzionalità viene fornita man mano che diventa disponibile, a partire da un set limitato di funzionalità (principalmente funzionalità framework che non offre molte funzionalità visibili agli utenti), ma alla fine raggiunge e quindi supera il supporto precedente.

  • Cambiamenti e miglioramenti notevoli

    Sono incluse le modifiche e i miglioramenti più importanti riportati di seguito.

    • La maggior parte delle funzionalità DTrace di base viene reimplementata (compilatore D, API provider, gestione delle sonde) nello spazio utente. Gran parte di questa funzionalità risiedeva in precedenza nel kernel.

    • Il compilatore D è ora destinato a generare codice eBPF, e la maggior parte del linguaggio D è già supportato dal compilatore.

    • L'output del reporting del verificatore BPF è abilitato. Quando gli script D compilati vengono caricati nel kernel come programmi BPF, il verificatore BPF esegue un'analisi statica del codice per garantire la sicurezza del programma. Quando l'analisi non riesce, viene generato l'output e DTrace segnala questo output all'utente.

    • Le sonde Function Boundary Tracing (FBT) sono abilitate con funzioni raggruppate per modulo (indipendentemente dal fatto che il modulo sia compilato o caricabile) se il kernel fornisce queste informazioni in /proc/kallsyms (o /proc/kallmodsyms).

    • Le sonde entry e return (provider di systrace) sono abilitate, con il supporto degli argomenti probe digitati. Attualmente disponibile solo nell'output -lv.

    • Le sonde SDT (Statically Defined Tracing) basate sui tracepoint Linux sono abilitate, con il supporto degli argomenti sonda digitati. Attualmente disponibile solo nell'output -lv.

  • Limitazioni notevoli

    Le limitazioni di nota includono:

    • La funzione printf() non è ancora stata implementata; utilizzare trace().

    • L'azione trace() funziona attualmente solo su valori numerici e non su stringhe.

    • La maggior parte delle azioni, come exit(), non sono ancora state implementate.

    • Dei tre ambiti variabili, Global ("x") e thread-local ("self->x") non sono ancora implementati

    • Molti provider (come dtrace o profilo) - tra cui probe come BEGIN, END e profile-1n - non sono ancora funzionanti

    • Non sono ancora supportate descrizioni approfondite (provider:module:function:name) che corrispondono a più sonde tramite l'uso di caratteri jolly. Ad esempio, write:entry funziona perché corrisponde solo a syscall:vmlinux:write:entry, ma write:* non perché corrisponde sia a syscall:vmlinux:write:entry che a syscall:vmlinux:write:return.

Uso di esempio

Gli esempi riportati di seguito illustrano la funzionalità corrente in DTrace v2.0 su UEK R6. Ad esempio, si supponga che i comandi siano eseguiti come root e che /usr/sbin sia incluso nel PATH.

  • Mostra informazioni sulla versione DTrace:

    # dtrace -V
    DTrace 2.0.0 [Pre-Release with limited functionality]
    dtrace: Oracle D 2.0
  • Elenca approfondimenti:

    # 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          

    Su questo particolare sistema c'erano:

    • 3 sonde dtrace

    • Sonde da 87890 fbt (con sonde k)

    • Sonde sdt 1262 (basate su tracepoints Linux)

    • 666 sonde da syscall

  • Script di esempio che utilizza l'opzione -S per l'output del codice D compilato come programma eBPF e che utilizza l'opzione -e per uscire dopo la compilazione:

    # 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 di esempio:

    # dtrace -n '
    write:entry,
    write:return
    {
    this->x = 3;                /* clause-local variables */
    this->y = 8;
    trace(this->x * this->y);
    trace(&`max_pfn);
    }'

    In alto:

    • indagare l'ingresso e l'uscita delle chiamate di sistema write() (approfondimenti multipli in una sola volta);

    • Indagare con la registrazione dell'indirizzo di un identificativo del kernel (max_pfn) e di altri elementi di dati;

    • Le sonde sono denominate (esplicitamente, senza caratteri jolly) con la stessa azione.

    • Vengono utilizzate variabili Clause-local.

    • L'azione trace() viene utilizzata per generare report sull'output.

File system

Di seguito sono riportate le funzionalità più importanti che sono state implementate per i file system in UEK R6:

Btrfs

Btrfs continua ad essere supportato in UEK. In questo aggiornamento sono stati applicati diversi miglioramenti e patch, tra cui il supporto per i file di swap, la compressione ZStandard e vari miglioramenti delle prestazioni. In Oracle Linux 8.3 è stato introdotto il supporto Btrfs per i file system root.

ext4

Gli indicatori orari a 64 bit sono stati aggiunti ai campi dei superblocchi.

OCFS2

OCFS2 continua a essere supportato in UEK. Diversi miglioramenti e patch sono stati applicati in questo aggiornamento, tra cui il supporto per la funzione AIO "nowait", il supporto sulle piattaforme Arm e la lettura del superblocco della rivista per le operazioni online e offline.

XFS

Una nuova infrastruttura di reporting dello stato online e lo spazio utente ioctl per ottenere lo stato di integrità dei metadati dopo l'aggiunta di fsck online. In questa release è stato inoltre aggiunto il supporto per allocare i file di swap e i file di swap su dispositivi in tempo reale, nonché il supporto di riflink parziale. Sono stati inoltre apportati vari miglioramenti alle prestazioni.

NFS

Sono stati apportati miglioramenti alle prestazioni e miglioramenti a RPC e ai componenti client e server NFS. Sono stati apportati miglioramenti significativi per NFS con RDMA. I miglioramenti includono: più connessioni client NFSv4.1+ TCP, per server, per un throughput migliorato dal parallelismo hardware, un comportamento di installazione flessibile migliorato e una diagnostica migliorata.

Gestione memoria

In UEK R6 sono implementate le seguenti importanti funzioni di gestione della memoria:

  • Scaricamento TLB

    Il codice di flushing TLB è migliorato per evitare vampate non necessarie e per ridurre gli abbattimenti del TLB.

  • Cancellazione pagina enorme

    La gestione della memoria è migliorata per migliorare il throughput sfruttando la cancellazione di pagine enormi in modo più ottimale.

  • Miglioramenti alla cache delle pagine

    L'efficienza della cache delle pagine è migliorata utilizzando il tipo di dati Xarray più efficiente.

  • Migliore prevenzione della frammentazione

    Gli algoritmi di prevenzione della frammentazione sono migliorati e i tempi di compattazione e deframmentazione sono più veloci.

  • Miglioramenti alla gestione degli errori THP

    Sono stati implementati miglioramenti per la gestione dei guasti di Transparent Huge Page (THP) e anche per fornire una migliore segnalazione sullo stato di THP.

Networking

In Unbreakable Enterprise Kernel Release 6 sono implementate le funzioni di rete seguenti:

  • Ora di partenza in anticipo TCP

    Lo stack TCP utilizza ora il modello Ora di partenza anticipata per l'invio dei pacchetti, invece del modello Il più veloce possibile. Questo miglioramento porta diversi miglioramenti delle prestazioni, in quanto risolve una limitazione nel framework TCP/IP originale e introduce la release pianificata dei pacchetti per superare le limitazioni hardware e i colli di bottiglia.

  • Offload ricezione generica

    GRO è abilitato per UDP (User Datagram Protocol).

  • Ricezione TLS

    La release UEK precedente ha consentito al kernel di inviare messaggi TLS. Questa release consente al kernel di ricevere anche messaggi TLS. L'implementazione della gestione kernel delle connessioni TLS offre notevoli vantaggi in termini di prestazioni rispetto alle implementazioni limitate allo spazio utente.

  • Ricezione TCP a copia zero

    La precedente release UEK ha introdotto una funzione TCP a copia zero per l'invio di pacchetti alla rete. Questa release abilita la funzionalità di ricezione per il protocollo TCP con copia zero.

  • Filtro del pacchetto

    nftables è ora il backend predefinito per le regole del firewall. In questa release è stato aggiunto anche il filtro di rete basato su BPF (bpfilter).

  • Percorso dati Express (XDP) Aggiunto

    XDP è un trasporto di pacchetti flessibile e minimo basato su kernel per reti ad alta velocità.

RDMA

Remote Direct Memory Access (RDMA) è una funzionalità che consente l'accesso diretto alla memoria tra due sistemi collegati da una rete. RDMA facilita la rete ad alto throughput e bassa latenza nei cluster.

Unbreakable Enterprise Kernel Release 6 include funzioni RDMA fornite nel kernel a monte, con l'aggiunta delle funzionalità Ksplice e DTrace.

UEK R6 mantiene la parità di funzionalità con UEK R5 e include i seguenti aggiornamenti a monte notevoli:

  • Infrastruttura statistiche dinamiche

    È stata implementata un'infrastruttura statistica dinamica per facilitare il monitoraggio di vari oggetti legandoli a contatori accessibili tramite un'interfaccia netlink.

  • Contatori flusso verbi

    Le patch sono state applicate per fornire un'API che consente alle applicazioni dello spazio utente di monitorare l'attività del traffico in tempo reale e gli eventi degli oggetti dei verbi che gestisce.

  • Miglioramenti per RDMA ioctl()

    Vari aggiornamenti sono stati applicati per migliorare RDMA ioctl(). Significativamente, vengono utilizzate nuove intestazioni e la denominazione è stata resa più coerente. L'intestazione uverbs_ioctl è stata estesa per includere driver_id e la rappresentazione compatta di uverbs_attr_spec è abilitata.

  • Tracciamento risorse RDMA

    È stata implementata un'infrastruttura generale per il monitoraggio delle risorse RDMA. Questa infrastruttura viene utilizzata per fornire informazioni dettagliate sulla coda (QP, Queue Pair) e sull'utilizzo delle risorse globali.

  • La moderazione CQ è esposta allo spazio utente

    Le patch vengono applicate per esporre la coda di completamento (CQ) alle applicazioni dello spazio utente per controllare il numero di CQE necessari per creare un evento. Questa modifica fornisce più controlli alle applicazioni utente per migliorare l'ottimizzazione delle prestazioni.

  • Funzionalità migliorata dello spazio di nomi

    Sono state applicate varie patch per migliorare la funzionalità dello spazio di nomi. Per aggiungere un comando è stata applicata una patch che consente di modificare in modo sicuro lo spazio di nomi di rete di un dispositivo RDMA. La condivisione dei dispositivi in più spazi di nomi di rete è disabilitata perché ora è possibile eseguire comandi netlink in spazi di nomi di rete non init_net.

Sicurezza

In Unbreakable Enterprise Kernel Release 6 sono implementate le funzioni di sicurezza seguenti:

  • Modalità di blocco per sistemi x86_64

    La modalità di blocco è migliorata. Questa release distingue tra le modalità di integrità e riservatezza. Quando Avvio sicuro è abilitato in UEK R6, la modalità di integrità del blocco viene applicata per impostazione predefinita. La modalità di riservatezza può essere abilitata come opzione nella riga di comando del kernel o utilizzando securityfs, quando l'avvio sicuro UEFI è abilitato. Le modalità di lockdown possono essere abilitate anche quando viene utilizzata un'opzione della riga di comando del kernel per disabilitare Secure Boot; tuttavia, non viene eseguito alcun lockdown quando Secure Boot è disabilitato per impostazione predefinita.

    Quando la modalità di integrità è abilitata, vengono applicate le seguenti limitazioni:

    • Applica firme modulo kernel

    • Limita l'accesso in lettura e scrittura a /dev/{mem,kmem,port}

    • Limita efivar_ssdt_load

    • Disabilita chiamata di sistema kexec_load

    • Disabilita ibernazione

    • Vietare l'accesso PCI BAR dallo spazio utente

    • Vieta l'accesso alla porta I/O X86 dallo spazio utente

    • Limita accesso MSR

    • Limita accesso a ACPI custom_method

    • Ignora parametro kernel acpi_rspd

    • Disabilita sostituzione tabella ACPI

    • Vietare lo stoccaggio di PCMCIA CIS

    • Vieta TIOCSSEARIALE

    • Proibire parametri non sicuri del modulo kernel

    • Proibire il modulo testmmiotrace

    • Proibisci accesso ai debug

    Quando la modalità di riservatezza è abilitata, vengono applicate le seguenti limitazioni:

    • Proibire il tracing e perfe kprobes

    • Limita l'uso di bpf per leggere la memoria del kernel

    • Vietare l'uso non sicuro di perf

    • Proibire le tracce

    • Vietare l'accesso a /proc/kcore

    Si noti che anche la gestione del portachiavi del kernel è cambiata per UEK R6, che ora utilizza il codice del kernel upstream mainline per implementare un portachiavi della piattaforma. Le chiavi MOK (Secure Boot DB and Machine Owner Keys) UEFI sono ora memorizzate nel portachiavi della piattaforma e non vengono trattate allo stesso modo del portachiavi trust del kernel. Sebbene kexec ritenga sicure le chiavi nel portachiavi della piattaforma, queste non possono essere utilizzate per aggiungere una nuova CA nel kernel per IMA (Integrity Measurement Architecture) e non possono essere utilizzate per verificare i moduli kernel.

  • IBRS

    Indirect Branch Restricted Speculation (IBRS) continua a essere supportato per i processori interessati da Spectre V2 Speculative Execution Side Channel Vulnerability e per i quali altre tecniche software o hardware potrebbero non essere sufficienti o non sono disponibili.

  • Migliore protezione nelle directory scrivibili da tutti

    Questa release del kernel scoraggia gli attacchi di spoofing impedendo l'apertura di FIFO o file regolari non di proprietà dell'utente in directory sticky scrivibili da tutti, ad esempio /tmp.

  • Arm KASLR

    La randomizzazione dell'indirizzo virtuale del kernel è abilitata per impostazione predefinita per le piattaforme Arm.

  • autenticazione puntatore aarch64

    Questa funzione aggiunge primitive che possono essere utilizzate per mitigare determinate classi di attacchi di corruzione dello stack di memoria sulle piattaforme Arm.

Storage

In Unbreakable Enterprise Kernel Release 6 sono implementate le funzioni di memorizzazione seguenti:

  • Miglioramenti NVMe

    Host TCP NVMe over Fabrics e driver di destinazione aggiunti. Il supporto del supporto multipath e del comando passthrough è stato aggiunto. Il supporto dello spazio di nomi NVMe è esteso per includere Namespace Write Protect e Asynchronous Namespace Access.

Virtualizzazione

In Unbreakable Enterprise Kernel Release 6 sono implementate le seguenti importanti funzioni di virtualizzazione:

  • Miglioramenti VirtIO

    La funzione VirtIO PMEM aggiunge un meccanismo di svuotamento asincrono basato su VirtIO e simula la memoria persistente a un guest, consentendo di ignorare una cache di pagine guest. In questa release viene inoltre aggiunto un driver VirtIO-IOMMU para-virtualizzato che consente le richieste IOMMU per il trasporto VirtIO senza emulare le tabelle di pagina.

  • Miglioramenti alla piattaforma Arm

    I sistemi della piattaforma ARM (aarch64) includono l'autenticazione del puntatore (ARM v8.3) e il supporto di Scalable Vector Extension (SVE).

Aggiornamenti driver

Unbreakable Enterprise Kernel Release 6 supporta un gran numero di hardware e dispositivi. In stretta collaborazione con i fornitori di hardware e storage, Oracle ha aggiornato diversi driver dispositivo dalle versioni di mainline Linux 5.4.

Un elenco completo dei moduli driver inclusi nell'ultimo aggiornamento di UEK R6 insieme alle informazioni sulla versione è fornito nell'appendice in Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64).

Funzioni driver notevoli

Le seguenti nuove funzionalità sono note nei driver spediti con UEK R6:

  • Driver di rete Broadcom BCM573xx

    La versione del driver bnxt_en è stata aggiornata alla 1.10.1, con patch aggiuntive back-portate dalla release kernel 5.5 a monte e patch fornite dal fornitore specifiche per l'espansione e l'aggiornamento delle funzionalità per i controller Broadcom Thor Ethernet.

    Una modifica a monte di questo driver che è stata incorporata in un aggiornamento UEK R6 errata nella versione kernel 5.4.17-2011.6.2 comporta una modifica del nome del dispositivo per la seconda porta delle interfacce di rete Broadcom che utilizzano questo driver. Ad esempio, un dispositivo identificato in precedenza come eno3d1 è ora identificato come eno3. Questa correzione è stata applicata per migliorare la denominazione del dispositivo e anche per affrontare le ipotesi sulla funzionalità della porta su un dispositivo, ad esempio in situazioni in cui il dispositivo di rete può appartenere a funzioni diverse. Di conseguenza, questa modifica può causare problemi con gli script di rete quando si esegue l'aggiornamento da un sistema che utilizza RHCK o UEK R5 a UEK R6. Potrebbe essere necessario assicurarsi che gli script di rete vengano rinominati e aggiornati di conseguenza se si esegue l'aggiornamento da una versione precedente del kernel a una versione corrente di UEK R6 o successiva.

  • Driver SCSI Broadcom Emulex LightPulse Fibre Channel

    Il driver lpfc è stato aggiornato a 12.6.0.3. Questo aggiornamento include un gran numero di patch fornite dal fornitore per gestire le modifiche al driver dal momento che il kernel upstream 5.4 è stato reso disponibile e importante correzione di bug per il firmware della scheda. Le modifiche apportate a questo driver hanno comportato anche aggiornamenti ad altre dipendenze del kernel, come il codice per NVMe su Fibre Channel.

  • Driver QLogic BCM5706/5708/5709/5716

    Il driver bnx2 viene aggiornato e, sebbene il numero di versione rimanga alla 2.2.6, il driver include patch e aggiornamenti del firmware forniti dal fornitore.

  • Driver HBA Fibre Channel QLogic

    Il driver qla2xxx viene aggiornato alla versione 10.01.00.22.81.1-k. Questo aggiornamento esegue il backporting di molte patch che da allora sono entrate nel kernel a monte e include patch fornite da particolari fornitori per migliorare le prestazioni e fornire correzioni per alcuni bug nel driver originale.

  • Driver per controller Microsemi Smart Family

    Il driver smartpqi viene aggiornato alla versione 1.2.10-025 e include patch a monte applicate al driver dalla release kernel 5.4, sotto la guida del fornitore. Questi aggiornamenti includono diverse correzioni di bug e miglioramenti delle prestazioni.

  • Driver per dispositivi LSI MPT Fusion SAS 3.0

    Il driver mpt3sas viene aggiornato alla versione 33.100.00.00 e include le patch fornite dal fornitore.

Pacchetti nuovi e aggiornati

Per supportare la funzionalità appena aggiunta fornita dall'UEK R6, diversi pacchetti binari kernel e user-space sono stati aggiunti o aggiornati dai pacchetti inclusi nella distribuzione di base. Per ulteriori informazioni sui canali ULN e sui repository di server Oracle Linux yum in cui sono disponibili questi pacchetti, vedere UEK R6 Installation and Availability.

I package di spazio kernel aggiunti e aggiornati per UEK R6 sono etichettati con il prefisso kernel-uek. Il pacchetto linux-firmware viene aggiornato anche con i firmware più recenti disponibili.

I pacchetti elencati qui sono specifici per la funzionalità dello spazio utente e vengono aggiornati per sfruttare le funzionalità disponibili in UEK R6. Non vi è alcuna dipendenza da questi pacchetti per utilizzare UEK R6. Se si utilizza uno di questi pacchetti e si utilizza anche UEK R6, è necessario aggiornare il pacchetto alla versione più recente per la piena compatibilità con tutte le funzionalità disponibili in UEK R6.

Pacchetti

Numero di versione di Oracle Linux 8

Numero di versione di Oracle Linux 7

ndctl,ndctl-libs, ndctl-devel, daxctl, daxctl-libs, daxctl-devel

67 (x86_64)

67 (x86_64)

ipmctl, ipmctl-monitor, libipmctl, libipmctl-devel

01.00.00.3467 (x86_64)

01.00.00.3467 (x86_64)

libsafec, libsafec-check, libsafec-devel

3,3 (x86_64)

3,3 (x86_64)

btrfs-progs, btrfs-progs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

xfsprogs, xfsprogs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

ocfs2-tools

1.8.6 (x86_64, aarch64)

1.8.6 (x86_64, aarch64)

e2fs-progs, libss, libss-devel, libcom_err, libcom_err-devel

1.45.4 (x86_64, aarch64)

1.45.4 (x86_64, aarch64)

dtrace, dtrace-devel, dtrace-testsuite

2.0.0 (x86_64, aarch64)

2.0.0 (x86_64, aarch64)

libdtrace-ctf,libdtrace-ctf-devel

N/D

1.1.0 (x86_64, aarch64)

bcache-tools

1.0.8 (x86_64, aarch64)

1.0.8 (x86_64, aarch64)

cloud-init

18,5 (x86_64, aarch64)

18,5 (x86_64, aarch64)

crash, crash-devel

7.2.7 (x86_64, aarch64)

7.2.7 (x86_64, aarch64)

iproute, iproute-devel, iproute-doc, iproute-tc

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

kexec-tools

2.0.19 (x86_64, aarch64)

2.0.15 (x86_64, aarch64)

libzstd, libzstd-devel

1.3.8 (x86_64, aarch64)

1.3.4 (x86_64, aarch64)

linux-firmware

20200124-999,4 (x86_64, aarch64)

20200124-999,4 (x86_64, aarch64)

nvme-cli

1,9 (x86_64, aarch64)

1,9 (x86_64, aarch64)

nvmetcli

0,7 (x86_64, aarch64)

0,7 (x86_64, aarch64)

nbd

3,20 (x86_64, aarch64)

3,20 (x86_64, aarch64)

drbd-utils

9.0.0 (x86_64, aarch64)

9.0.0 (x86_64, aarch64)

libdnf, python3-libdnf, python3-hawkey

0,35 (x86_64, aarch64)

N/D