Linux 6.12 arriva con il supporto RT, il meccanismo sched_ext, miglioramenti al supporto e altro ancora

Tux, la mascotte del kernel Linux

Dopo due mesi di sviluppo, Linus Torvalds ha annunciato il rilascio del kernel Linux 6.12, versione in cui Spicca la possibilità di attivare la modalità real-time, l'aggiunta di sched_ext per consentire la creazione di scheduler della CPU utilizzando eBPF e a meccanismo che genera codici QR in situazioni critiche.

Linux 6.12 comprende un totale di 14,607 correzioni apportate, Sono stati aggiunti più di 507,913 righe di codice ed eliminando 234,083. Sebbene la patch sia più piccola rispetto alle versioni precedenti, rappresenta un'ottimizzazione senza precedenti.

Principali novità in Linux 6.12

Il kernel Linux ora può essere creato con l'opzione PREEMPT_RT iintegrato, eliminando la necessità di patch esterne per il funzionamento in tempo reale. Ciò è stato ottenuto includendo il supporto nella funzione printk. PREEMPT_RT ed è disponibile su architetture come x86, x86_64, ARM64 e RISC-V.

Nella compilazione, il Il supporto per il compilatore Clang è stato esteso alla libreria standard nolibc, consentendo ottimizzazioni come l'ottimizzazione del tempo di collegamento (LTO). Lo è anche aggiunto un sistema di tracciamento degli squilli, che conserva le informazioni di debug in memoria dopo i riavvii, facilitando l'analisi post-errore.

Dalla parte di Rust per Linux continua ad avanzare con nuovi moduli come list e rbtree per elenchi collegati e albero rosso-nero. Inoltre, il supporto è stato ampliato in aree chiave come l'inizializzazione, la sincronizzazione e la gestione degli errori. È possibile compilare il kernel con Rust mantenendo protezioni avanzate come Spectre ed eseguire il debug con KASAN o kCFI. Inoltre, è stato integrato un driver Ethernet PHY scritto in Rust.

Un'altra novità Ciò che risalta in questa nuova versione del kernel Linux 6.12 è l'introduzione del meccanismo sched_ext (SCX), che consente di utilizzare eBPF per creare scheduler CPU personalizzati. Con SCX, gli sviluppatori possono progettare pianificatori dinamici che ottimizzano l'esecuzione delle attività in base allo stato del sistema e alle esigenze specifiche dell'applicazione, semplificando la sperimentazione e l'implementazione delle strategie negli ambienti di produzione.

anche L'integrazione del server SCHED_DEADLINE è stata completata, una soluzione più efficiente per evitare la monopolizzazione della CPU da parte di compiti ad alta priorità, migliorando l'assegnazione delle risorse ai compiti a bassa priorità. Inoltre, lo scheduler CFS è stato sostituito con il nuovo EEVDF (Earliest Eliligi Virtual Deadline First), che alloca in modo più equo le risorse del processore ed elimina la necessità di regolazioni manuali, riducendo i ritardi nelle attività critiche.

Il controller Panico DRM, responsabile della gestione delle emergenze nel kernel, ora puoi visualizzare un report visivo con loghi e codici QR compresi i dati diagnostici compressi. Questi codici QR facilitano l'analisi degli errori, consentendo agli utenti di essere reindirizzati alle pagine configurate dalle distribuzioni per segnalare problemi.

Per quanto riguarda ARM, aggiunto il supporto per l'estensione POE (Permission Overlay Extension), che abilita meccanismi come le chiavi di protezione della memoria per limitare l'accesso ad aree specifiche della memoria senza dover modificare le tabelle delle pagine. Inoltre, l'ottimizzazione della chiamata di sistema getrandom() utilizzando vDSO ha aumentato la velocità di generazione dei numeri casuali fino a 15 volte sulle architetture Loongarch, ARM64, PowerPC e s390.

Un il nuovo driver USB consente di utilizzare il protocollo 9pfs per trasferire dati tra dispositivi USB montando file system 9p. Ciò è particolarmente utile sui dispositivi embedded, fornendo un'alternativa efficiente a NFS per l'avvio delle partizioni root.

Il sottosistema io_uring ha aggiunto il supporto per i timeout assoluti, attivato ad orari specifici in base all'orologio di sistema. Ciò migliora il controllo sulle operazioni asincrone, fornendo maggiore precisione nella loro esecuzione.

per la biblioteca libcpupower, includeva file per la generazione di collegamenti utilizzando SWIG, che consente di utilizzare linguaggi come Python per estenderne le funzionalità. Inoltre, è stata migliorata l'utilità CPUidle, che ora può misurare il tempo di inattività minimo necessario per giustificare i costi energetici di transizione.

Nel campo delle reti, uno I miglioramenti più notevoli riguardano il meccanismo TCP per la memoria del dispositivo, che consente il trasferimento diretto dei dati tra la memoria delle periferiche e la rete senza passare per la CPU, ottenendo una notevole efficienza. Inoltre, le funzionalità di numerosi controller Ethernet e WiFi, come iwlwifi di Intel e rtw89 di RealTek, sono state ampliate con supporto aggiuntivo per chip WiFi 6 e standard IEEE avanzati. Per IPv6, sono state introdotte nuove funzionalità per ottimizzare l'allocazione degli indirizzi utilizzando DHCPv6-PD, mentre MPTCP ha ricevuto miglioramenti nel routing e nel rilevamento della perdita di traffico.

Nel supporto hardware, Aggiunto supporto continuo per AMD RDNA4 nel driver AMDGPU e miglioramenti al driver Xe DRM per le GPU Intel Xe. È stato aggiunto anche il Supporto per processori Xeon Granite Rapids e nuove piattaforme ARM, incluso il SoC Snapdragon X Elite.

Infine, se sei interessato a saperne di più, puoi consultare i dettagli nel seguente link