Un nuovo numero di versione, nuove interfacce
Il kernel Linux 5.0, rilasciato nel marzo 2019, segna un cambio di numerazione che Linus Torvalds ha definito puramente cosmetico — il contatore 4.x aveva semplicemente raggiunto numeri troppo alti. Ma dietro il numero tondo si nascondono innovazioni sostanziali nelle interfacce tra spazio utente e kernel, innovazioni che affrontano colli di bottiglia accumulati in quasi ventotto anni di sviluppo.
La progressione del kernel resta costante: dopo le basi poste con la serie 2.6 e l’adozione del modello di rilascio time-based, ogni ciclo di sviluppo continua a raffinare le aree critiche — CPU, memoria, I/O, rete — rispondendo alle esigenze di hardware e carichi di lavoro in continua evoluzione.
io_uring: I/O asincrono senza overhead di sistema
La novità più significativa è io_uring, un’interfaccia di I/O asincrono progettata da Jens Axboe per superare i limiti delle API esistenti. Le interfacce tradizionali — read/write sincroni o aio (async I/O del kernel) — richiedono una system call per ogni operazione, e il costo del passaggio tra spazio utente e kernel diventa il collo di bottiglia dominante nei carichi ad alto throughput.
io_uring introduce due ring buffer in memoria condivisa tra applicazione e kernel: un submission queue dove l’applicazione inserisce le richieste e un completion queue dove il kernel deposita i risultati. Dopo la configurazione iniziale, le operazioni di I/O avvengono senza ulteriori syscall. Il risultato è una riduzione drastica dell’overhead: nei benchmark su NVMe, io_uring raggiunge throughput prossimi al limite hardware, superando aio di un fattore significativo.
Adiantum è la cifratura per tutti
Adiantum è un algoritmo di cifratura sviluppato da Google per i dispositivi che non dispongono di istruzioni hardware AES — tipicamente smartphone e dispositivi embedded con processori ARM a basso costo. Adiantum utilizza ChaCha12 e NHPOLY1305 per offrire cifratura del disco con prestazioni accettabili anche su hardware limitato, rendendo la full-disk encryption accessibile a miliardi di dispositivi che altrimenti non potrebbero permettersela.
Energy-aware scheduling
L’energy-aware scheduling (EAS) integra nel kernel la conoscenza della topologia energetica del processore. Sui sistemi ARM big.LITTLE e architetture eterogenee simili, lo scheduler può assegnare i processi leggeri ai core a basso consumo e riservare i core ad alte prestazioni solo quando necessario. Il risultato è un risparmio energetico misurabile senza sacrifici evidenti in reattività, un obiettivo cruciale per i dispositivi alimentati a batteria.
Ottimizzazione come processo continuo
Con quasi tre decenni di sviluppo alle spalle, il kernel Linux dimostra che l’ottimizzazione non è un traguardo ma un processo. Ogni generazione di hardware porta nuovi vincoli e nuove opportunità: io_uring ripensa l’I/O per gli storage moderni, Adiantum estende la sicurezza ai dispositivi economici, EAS adatta lo scheduling alla realtà dei processori eterogenei.
Link: kernel.org
