Ubuntu постепенно "ржавеет", делая стратегическую ставку на внедрение системных утилит, написанных на Rust.
Основой Ubuntu, как и многих Linux-систем, десятилетиями служили утилиты вроде GNU Coreutils (ls, cp, mv) и sudo, написанные на C. Несмотря на долгий путь разработки и поддержки, эти инструменты всё ещё подвержены ошибкам, которые достаточно сложно обнаружить. Rust, с его системой владения данными, строгой проверкой типов и borrow checker, предлагает альтернативу: код, где такие ошибки исключены на уровне языка. Это достигается за счёт предотвращения утечек памяти, гонок данных и других уязвимостей, характерных для C.
Проекты вроде uutils (Rust-версия Coreutils) и sudo-rs уже доказали свою жизнеспособность. Например, uutils не только повторяет функционал GNU-аналогов, но и добавляет поддержку Unicode по умолчанию, а sudo-rs внедряет изоляцию критических процессов.
Переход начнётся с Ubuntu 25.10, где uutils coreutils станут реализацией по умолчанию. Для минимизации рисков команда Canonical подготовила Oxidizr - инструмент, который позволяет безопасно тестировать новые Rust-утилиты. Oxidizr автоматически создаёт резервные копии оригинальных программ, заменяя их симлинками на Rust-версии, и даёт возможность мгновенно вернуть систему в исходное состояние.
К 2026 году планируется интеграция Rust-версий findutils и diffutils, а также постепенная замена sudo на sudo-rs в рабочих средах. Параллельно разрабатываются стандарты для сторонних разработчиков, желающих портировать свои утилиты на Rust.
Автор инициативы - Джон Сигер, инженер Canonical, известный работой над LTS-релизами Ubuntu. Его подход балансирует между инновациями и надёжностью. «Мы не можем игнорировать риски, присущие C, - отмечает он. - Но и не станем ломать то, что работает. Rust - это эволюция, а не революция». Сигер продвигает идею «мягкого» перехода через инструменты вроде Oxidizr, которые позволяют внедрять новое, сохраняя совместимость со старыми скриптами и конфигурациями.
https://jnsgr.uk/2025/03/carefully-but-purposefully-oxidising-ubuntu@g33ks