Ubuntu 25.10: Prosegue la Transizione verso Rust Coreutils
Scopri come Ubuntu 25.10 sta rivoluzionando il suo ecosistema adottando Rust Coreutils (uutils) al posto dei tradizionali GNU Coreutils, con l’obiettivo di migliorare sicurezza e prestazioni. Esplora i dettagli tecnici, le implicazioni per gli utenti e il futuro di questa transizione verso il rilascio LTS 26.04.
Ubuntu 25.10: un passo verso Rust Coreutils
Canonical, l’azienda dietro Ubuntu, ha confermato che Ubuntu 25.10 (nome in codice “Oracular Oriole”) proseguirà la transizione dai classici GNU Coreutils, scritti in C, al progetto Rust Coreutils (uutils), scritto nel linguaggio di programmazione Rust. Questa mossa, annunciata da Canonical il 4 settembre 2025, rappresenta una delle più significative evoluzioni nella storia recente di Ubuntu, con impatti su sicurezza, prestazioni e compatibilità.
Perché Rust Coreutils?
Il passaggio a Rust è guidato dalla necessità di migliorare la sicurezza della memoria, eliminando vulnerabilità comuni nei programmi scritti in C, come buffer overflow e use-after-free. Rust offre:
- Sicurezza intrinseca: il compilatore Rust previene intere categorie di bug grazie al suo sistema di controllo della proprietà e al “borrow checker”.
- Prestazioni competitive: i test dimostrano che uutils raggiunge una parità funzionale con GNU Coreutils, passando circa 500 dei 600 test della suite GNU, con miglioramenti attesi grazie all’attenzione crescente al progetto.
- Manutenzione moderna: il codice Rust è più facile da mantenere e aggiornare rispetto al codice legacy di GNU Coreutils.
Questa transizione segue l’adozione di sudo-rs, una versione Rust del comando sudo, già impostata come predefinita in Ubuntu 25.10.
Dettagli tecnici della transizione
La migrazione a Rust Coreutils è un processo complesso, poiché i coreutils sono un pacchetto essenziale di Ubuntu, con requisiti rigidi per garantire che i file non scompaiano durante l’installazione e che non ci siano conflitti con altri pacchetti. Il piano di Canonical, descritto dall’ingegnere Julian Andres Klode sul forum Ubuntu Discourse, include:
- Rinominazione del pacchetto: il pacchetto coreutils attuale sarà rinominato gnu-coreutils, con binari come gnucp per evitare conflitti.
- Nuovo pacchetto coreutils-from: un pacchetto transitorio (coreutils-from-uutils) introdurrà i binari Rust, con /usr/lib/cargo/bin/coreutils/FOO che sostituirà /usr/bin/coreutils.
- Hardlink farm: i binari Rust saranno gestiti come un insieme di hardlink, ottimizzando l’installazione rispetto ai symlink.
- Possibilità di rollback: gli utenti potranno tornare a GNU Coreutils con il comando
sudo apt install gnu-coreutilsse necessario.
La transizione è già in corso nel release pocket di Ubuntu 25.10, con impatti su:
- Autopkgtest: le immagini di test utilizzeranno Rust Coreutils una volta ricostruite.
- Immagini di sistema: le nuove immagini di Ubuntu saranno costruite con Rust Coreutils.
- Tester: il feedback degli utenti sarà cruciale per identificare eventuali problemi di compatibilità.
Impatti e sfide
Nonostante i vantaggi, la transizione presenta alcune sfide:
- Dimensione dei pacchetti: Rust Coreutils è più grande di GNU Coreutils (25 MB contro 7 MB), aumentando la dimensione delle immagini Docker di Ubuntu di circa il 24%. Questo potrebbe spingere a mantenere GNU Coreutils come predefinito per le immagini Docker.
- Compatibilità con AppArmor: sono necessari aggiustamenti per garantire che Rust Coreutils funzioni correttamente con i profili di sicurezza AppArmor.
- Licenza: il passaggio da GNU Coreutils (licenza GPL) a uutils (licenza MIT) comporta un cambiamento nella licenza del software, che potrebbe generare discussioni nella community.
Il ruolo di Oxidizer
Canonical ha introdotto Oxidizer, un framework per testare in modo sicuro i nuovi componenti Rust, come uutils e sudo-rs, senza compromettere la stabilità del sistema. Oxidizer sarà fondamentale per valutare il successo della transizione in Ubuntu 25.10, con l’obiettivo di rendere Rust Coreutils il default anche nella prossima release a lungo termine, Ubuntu 26.04 LTS, prevista per aprile 2026.
Cosa significa per gli utenti?
Per gli utenti finali, la transizione dovrebbe essere trasparente, con comandi come ls, cp, mv, rm e cat che continueranno a funzionare come previsto, grazie alla compatibilità di uutils con GNU Coreutils. Tuttavia:
- Amministratori di sistema potrebbero notare differenze in script complessi che sfruttano funzionalità specifiche di GNU Coreutils.
- Sviluppatori e tester sono invitati a provare Rust Coreutils nella release pocket di Ubuntu 25.10 e a segnalare eventuali bug.
- Gli utenti di container (es. Docker) potrebbero preferire GNU Coreutils per ridurre la dimensione delle immagini.
Il futuro di Rust in Ubuntu
La transizione a Rust Coreutils è parte di un’iniziativa più ampia di Canonical per “ossidare Ubuntu”, termine usato per indicare l’adozione di componenti scritti in Rust. Questo include non solo coreutils e sudo, ma anche altri strumenti di sistema, con l’obiettivo di migliorare la sicurezza e preparare il terreno per la prossima release LTS.

