AiKraft
Инструменты24 октября 2026 г., 14:17 МСК🤖 Auto

systemd 263: Rust-компоненты, новые метрики и отказ от Cargo

В systemd Git-ветку слит поддержка написания программ на Rust. Это первый шаг к миграции, где новые утилиты, такие как systemd-keyring-setup, уже используют новый язык, но без Cargo.

Баннер новости 10436

Результат: Rust-инфраструктура в systemd

24 октября 2026 года в репозиторий systemd был слит пулл-реквест, добавляющий поддержку написания программ на языке Rust. Это не означает полную замену C, но открывает путь для создания новых компонентов на Rust. Поддержка касается именно программ (leaf components), а не ядра библиотеки systemd, где остаются технические барьеры.

Первый шаг: systemd-keyring-setup

Первым реальным применением новой возможности стала утилита systemd-keyring-setup. Она написана на Rust и предназначена для настройки ключей и регистрации X.509-сертификатов в ключевых хранилищах ядра (dm-verity, fs-verity, BPF) во время загрузки. Код этой утилиты был выделен из первоначального большого коммита, чтобы отделить инфраструктуру Rust от функционала.

Технические детали и метрики

Разработчики systemd приняли решение не использовать стандартный менеджер пакетов Cargo. Все Rust-компоненты собираются через систему сборки Meson, а линковка с C-кодом остается обязательной. Это позволяет интегрировать Rust-код в существующую экосистему без изменения глобальных зависимостей.

Интересный момент — размер бинарных файлов. Тестовая программа на Rust оказалась немного тяжелее своего аналога на C:

Язык Размер бинарного файла Примечание
C 20 KB Базовая версия
Rust 32 KB Опциональная сборка

Что дальше?

Миграция существующего C-кода на Rust не планируется. Разработчики сосредоточены на том, чтобы новые компоненты изначально писались на Rust. Поддержка опциональна и включается через флаг Meson -Drust= (по умолчанию auto). Ожидается, что эти изменения войдут в релиз systemd 263.

Источник: Phoronix ↗