Программирование и разработка программного обеспечения

Как Ubuntu перестраивает основные системные инструменты с помощью Rust

Canonical придерживается избирательного подхода к внедрению Rust в основные инструменты Ubuntu, начиная с Ubuntu 26.04 LTS, уделяя особое внимание безопасности памяти, надёжности и удобству сопровождения. План включает uutils coreutils, sudo-rs, ntpd-rs и проект UPKI, при этом старые инструменты и варианты отката останутся доступными на переходном этапе.

2026-08-26
5 мин. чтения
322 просмотров
certi.news Editorial Team
Как Ubuntu перестраивает основные системные инструменты с помощью Rust

Canonical не переписывает Ubuntu целиком на Rust, но начала заменять основные системные компоненты в тех областях, где преимущества безопасности памяти и сопровождения оправдывают стоимость перехода. Согласно презентации Jon Seager, вице-президента по инженерным вопросам в Canonical, во время трансляции, организованной JetBrains, это решение является частью долгосрочного видения платформы, которая обслуживает около 15 миллионов развёртываний на серверах, настольных компьютерах, периферийных устройствах и внутри автомобилей.

Этот подход исходит из вопроса о том, что потребуется Ubuntu в течение следующих двух десятилетий, а не из кампании по повторной реализации каждого существующего инструмента. Canonical считает Rust убедительным набором инструментов для системной разработки, особенно когда устойчивость к ошибкам памяти и надёжность имеют значение для программного обеспечения, работающего внутри промышленных систем, автомобилей или критически важной инфраструктуры.

Избирательная замена вместо полной переработки

Первые из этих компонентов появились в Ubuntu 26.04 LTS. uutils coreutils — повторная реализация инструментов GNU coreutils на Rust — стала вариантом по умолчанию, причём заявленная цель заключается в полной совместимости с поведением инструментов GNU. Это означает, что небольшое различие в поведении не обязательно считается улучшением: оно может быть признано ошибкой, если нарушает работу скрипта или инструмента, зависящего от прежнего поведения.

sudo-rs движется по другому пути. Вместо стремления к полной идентичности с sudo проект переосмысливает вид инструмента предоставления привилегий, если бы его проектировали сегодня, после десятилетий накопленного опыта в области безопасности. Среди изменений, вызвавших сильную реакцию, — отображение звёздочек при вводе пароля в терминале по умолчанию. Canonical заявляет, что принимает эти намеренные изменения, даже когда они создают краткосрочные неудобства, поскольку считает их частью нового дизайна, а не просто точной альтернативной копией.

Время и сертификаты также входят в сферу изменений

Следующим проектом является ntpd-rs, финансирование которого Canonical объявила в июне 2026 года через Trifecta Tech Foundation, чтобы сделать его инструментом синхронизации времени по умолчанию в Ubuntu. План предусматривает его включение в архив Ubuntu 26.10, а затем полный переход на него в качестве варианта по умолчанию в Ubuntu 28.04, что позволит постепенно заменить chrony и linuxptp единым инструментом с поддержкой NTP, NTS и PTP.

Важность этого изменения обусловлена тем, что точная синхронизация времени нужна не только сетевым серверам. Она влияет на микроконтроллеры в самолётах, автомобилях и роботах, на криптографические системы, которые периодически меняют ключи, а также на системы, зависящие от местоположения. В материале поясняется, что совместное использование chrony и linuxptp может требовать настройки нескольких инструментов и источников времени, тогда как ntpd-rs стремится объединить эти функции в одном инструменте и одном конфигурационном файле, используя преимущества безопасности памяти.

Проект UPKI отличается от этих замен тем, что создаётся с нуля в сотрудничестве с проектом Rustls и нацелен на добавление проверки отзыва сертификатов в системные инструменты Linux. Canonical планирует его первое включение в Ubuntu 26.10. Идея связана с такими инструментами, как curl, wget и OpenSSL, в которых, как утверждается в материале, такой механизм работы с отзывом сертификатов не стал встроенным в той же форме, что и в браузерах.

Что практически изменится для пользователей?

Canonical выбрала границы выпусков LTS для внедрения этих изменений, поскольку организации обычно обновляют системы именно в такие моменты, а наличие пути отката особенно важно при изменении низкоуровневых инструментов. В материале говорится, что предыдущие выпуски получат управляемую поддержку в течение 15 лет, а старые инструменты останутся в архиве, поэтому новое поведение не будет навязано действующей производственной системе без возможности вернуться к прежнему варианту.

Однако совместимость между проектами неодинакова. uutils coreutils столкнулся с практическим примером: инструмент head возвращал ошибку при запросе чтения заданного числа байтов из пустого файла, тогда как GNU coreutils возвращал ноль. Это различие нарушило работу скрытого скрипта внутри snap-пакета Obsidian, после чего поведение изменили для соответствия GNU. Этот пример показывает, что безопасность памяти не отменяет важность совместимости с предположениями, которые накапливались вокруг старых инструментов в течение 30 лет.

Задача не заканчивается написанием кода

Внедрение Rust в крупный дистрибутив требует также работы с цепочкой зависимостей, сборкой и распространением. Canonical собирает crates каждой конкретной пакетом в один архив, а не упаковывает каждый crate в отдельный deb-пакет. Согласно материалу, это помогает сохранить поверхность зависимостей управляемой и сделать процессы сборки детерминированными, хотя формально они не являются воспроизводимыми.

Ранее в 2026 году cargo auditable был внедрён во все пакеты Rust в архиве Ubuntu. Каждый бинарный файл Rust содержит встроенный SBOM, в котором фиксируются названия и версии crates, использованных при сборке; эти данные автоматически обновляются при повторной сборке пакета. Они не предотвращают уязвимости, но упрощают определение затронутых версий при обнаружении проблемы в одной из зависимостей.

Комментарий certi.news: Реальное изменение здесь заключается не просто в замене инструментов, написанных на C, инструментами, написанными на Rust, а во внедрении уровня безопасности, сопровождения и отслеживания зависимостей в компоненты, которые трудно менять после их широкого распространения. В то же время примеры с совместимостью и поведением sudo-rs показывают, что переход может повлечь проектные решения, заметные пользователям, и что его успех будет зависеть от управления этими различиями не меньше, чем от языка реализации. Объявленные сроки для ntpd-rs и UPKI остаются будущими целями, тогда как источник подтверждает: масштаб изменений избирателен, а старые инструменты и варианты отката по-прежнему являются частью стратегии Canonical.

Источник новости
c
Автор

certi.news Editorial Team

Что важно знать

Canonical внедряет Rust в основные инструменты Ubuntu выборочно, начиная с Ubuntu 26.04 LTS, чтобы повысить безопасность памяти, надёжность и удобство сопровождения без полной переработки системы. Старые инструменты и варианты отката останутся доступными, а такие проекты, как ntpd-rs и UPKI, нацелены на будущие выпуски Ubuntu.

  • В Ubuntu 26.04 LTS проект uutils coreutils — реализация инструментов GNU coreutils на Rust — станет вариантом по умолчанию при стремлении к полной поведенческой совместимости.
  • sudo-rs перерабатывает инструмент предоставления привилегий, а не полностью копирует sudo. Например, по умолчанию при вводе пароля отображаются звёздочки.
  • Canonical планирует сделать ntpd-rs стандартным инструментом синхронизации времени в Ubuntu 28.04 после его архивирования в Ubuntu 26.10. Проект поддерживает NTP, NTS и PTP.
  • Проект UPKI, разрабатываемый совместно с Rustls, призван добавить проверку отзыва сертификатов в системные инструменты. Canonical планирует сначала внедрить его в Ubuntu 26.10.
  • Старые инструменты останутся доступными в архиве вместе с путями отката, а предыдущие выпуски, согласно материалу, будут получать управляемую поддержку в течение 15 лет.
  • Canonical использует cargo auditable для добавления встроенной SBOM в двоичные файлы Rust, что упрощает определение затронутых версий crates при обнаружении уязвимостей.

Частые вопросы

Переписывает ли Canonical всю Ubuntu на Rust?

Нет. Canonical придерживается выборочного подхода и заменяет отдельные компоненты и инструменты, когда считает, что преимущества безопасности памяти и сопровождения оправдывают затраты на переход.

Какие инструменты будут затронуты переходом на Rust?

В план входят uutils coreutils, sudo-rs, ntpd-rs и проект UPKI. Старые инструменты и варианты отката сохранятся на переходный период.

Когда ntpd-rs станет вариантом по умолчанию в Ubuntu?

План предусматривает его архивирование в Ubuntu 26.10, а затем полный переход на него как на вариант по умолчанию в Ubuntu 28.04.

Почему важна совместимость со старыми инструментами?

Поведенческие различия могут нарушить работу скриптов и инструментов, которые опираются на накопившиеся предположения о старых инструментах. Например, различие в поведении head привело к поломке скрипта в пакете Obsidian snap.

Изучить сюжет

Связанные темы и сущности

В той же категории

Вам также может понравиться

Все новости