Результат: 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 ↗
