Linux 5.0: io_uring e le nuove interfacce del kernel

Il kernel Linux 5.0 introduce io_uring per I/O asincrono ad alte prestazioni, la cifratura Adiantum per hardware limitato e l'energy-aware scheduling per ottimizzare il consumo energetico.

Open Source Open SourceLinuxKernelio_uringPerformance

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

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi