Un numero, non una rivoluzione
Linus Torvalds ha annunciato il passaggio alla versione 7.0 del kernel Linux con la consueta praticità: quando il minor version diventa scomodo da gestire, il major si incrementa. È successo con il passaggio da 5.x a 6.0 nel 2022, e si ripete ora. Non c’è una singola feature che giustifichi il cambio di cifra — c’è la somma di quattro anni di sviluppo continuo dalla serie 6.x.
Rust: dalla sperimentazione ai driver in produzione
Il supporto Rust, introdotto come infrastruttura sperimentale nel kernel 6.1, ha raggiunto una maturità operativa. I binding verso le API C del kernel sono stati estesi per coprire i sottosistemi di rete, di I/O a blocchi e di gestione dei dispositivi. Diversi driver — inclusi driver NVMe e driver per dispositivi USB — sono stati scritti o riscritti in Rust e accettati nell’albero principale.
Il modello resta quello dichiarato fin dall’inizio: il codice C esistente non viene riscritto, ma i nuovi driver possono essere sviluppati in Rust con garanzie di memory safety a tempo di compilazione. Il numero di contributori Rust nel kernel è cresciuto in modo costante, e il toolchain rustc è stato integrato nel sistema di build Kbuild senza richiedere patch esterne.
io_uring: maturazione e hardening
io_uring, il sottosistema di I/O asincrono introdotto nel kernel 5.1, ha attraversato un ciclo di maturazione significativo. Le prime release erano ottimizzate per le prestazioni a scapito della superficie di attacco — io_uring è stato responsabile di diverse vulnerabilità critiche nelle versioni 5.x e 6.x.
Nel ciclo 7.0 il sottosistema è stato sottoposto a un intervento di hardening sistematico: sandboxing dei buffer condivisi, restrizioni sulle operazioni consentite in contesto non privilegiato, e audit formale dei percorsi di allocazione. Il risultato è un’interfaccia che mantiene i vantaggi prestazionali — throughput prossimo al limite hardware su NVMe — con una superficie di attacco ridotta.
Architetture: RISC-V e ARM64
Il supporto RISC-V è passato dallo status di architettura emergente a piattaforma di prima classe. Il kernel 7.0 include il supporto per le estensioni vettoriali RISC-V (RVV 1.0), il boot su hardware multi-core RISC-V e l’integrazione con i principali SoC disponibili sul mercato.
ARM64 continua a ricevere ottimizzazioni per i carichi di lavoro server e cloud. Il supporto per Confidential Computing su ARM (CCA — Arm Confidential Compute Architecture) è stato esteso, e i percorsi critici dello scheduler sono stati ottimizzati per le topologie big.LITTLE e DynamIQ.
Scheduler e risparmio energetico
L’EEVDF (Earliest Eligible Virtual Deadline First), lo scheduler introdotto nel kernel 6.6 in sostituzione del CFS, ha ricevuto ulteriori affinamenti. La gestione delle priorità in ambienti virtualizzati è stata migliorata, e l’integrazione con i governor di frequenza della CPU permette decisioni di scheduling più informate dal punto di vista energetico.
Per i dispositivi mobili e i server con vincoli energetici, il kernel 7.0 introduce miglioramenti nel sottosistema cpuidle che riducono le transizioni di stato inutili, con benefici misurabili sul consumo in idle.
Cosa significa in pratica
Linux 7.0 non introduce un paradigma nuovo. Consolida le direzioni già tracciate: Rust per la sicurezza del nuovo codice, io_uring per l’I/O ad alte prestazioni, RISC-V come architettura di prima classe, e una gestione energetica più fine. Per chi gestisce infrastrutture Linux in produzione, il passaggio dalla serie 6.x alla 7.0 è un aggiornamento incrementale — non una migrazione.
