Ubuntu 25.10 decides to replace GNU Coreutils with uutils written in Rust

Jon Seager, Canonical's vice president of engineering and the technical leader of the Ubuntu project, presented an initiative to replace Ubuntu's system utilities with their Rust counterparts. The initiative's first goal is to move Ubuntu 25.10 to using the uutils toolkit by default instead of the GNU Coreutils set of utilities. If the experiment is deemed successful, uutils will also be used by default in the Ubuntu 26.04 LTS branch.

The replacement will affect more than a hundred utilities included in Coreutils, including sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln and ls. Currently, uutils utilities are already used by default in the Debian-based Apertis distribution, as well as in the independent AerynOS (SerpentOS) distribution. Last week's release of the uutils coreutils package successfully passes 0.0.30 tests (in the previous release - 507, in the previous - 506) from the GNU Coreutils benchmark test suite. 476 tests failed, and 69 tests were skipped. In the coming weeks, work is also planned to begin on replacing the su and sudo utilities in Ubuntu with the sudo-rs package. Of the projects under consideration, zlib-rs and ntpd-rs are also mentioned.

 Ubuntu 25.10 decides to replace GNU Coreutils with uutils written in Rust

The reason for the migration is said to be the desire to improve the reliability and security of the utilities that underlie the distribution. Using Rust will reduce the risk of errors when working with memory, such as accessing a memory area after it has been freed and going beyond the buffer boundaries. According to John Seeger, protection against such errors will increase security guarantees, and with increased security, the overall reliability of the system will increase.

It is noted that Canonical is considering various methods of improving quality, and one of them is the delivery of programs that are initially developed with an eye on security, reliability, and correctness. This is especially important for the basic components of the distribution, since if problems arise in low-level software, these problems affect the work of all higher layers, for example, if there are problems with performance in the basic packages, they affect the performance of other subsystems.

To test the replacement of system components in Ubuntu, the oxidizr project has been prepared, offering a command-line toolkit for managing system experiments related to replacing traditional utilities with alternatives written in Rust. Currently, oxidizr offers experiments for switching to the default use of the uutils coreutils, uutils findutils, uutils diffutils and sudo-rs packages. For example, to replace coreutils and findutils in your system, it is enough to run the command "sudo oxidizr enable --experiments coreutils findutils", and to return to the original state, you can use the command "oxidizr disable".

Source: opennet.ru

Add a comment