В systemd добавлена возможность разработки компонентов на языке Rust
В systemd добавлена возможность разработки компонентов на языке Rust В кодовую базу системного менеджера systemd принято изменение, добавляющее возможность создания компонентов на языке Rust. Rust намерены использовать только для разработки новых компонентов, а существующий код на языке Си переписывать на Rust не планируют. Пакетный менеджер cargo в процессе сборки не применяется, остаётся задействована только сборочная система Meson. Rust-код используется в режиме "no_std" (без стандартной библиотеки), разрешено использовать только библиотеки core, alloc и libc. Компоненты systemd на Rust динамически связываются с Си-библиотекой libsystemd-shared. Rust-обвязки над libsystemd-shared генерируются автоматически на этапе сборки из заголовочных файлов при помощи утилиты bindgen, и становятся доступны для rust-программ в форме пакета systemd_shared. Для работы требуется как минимум версии rustc 1.85 и bindgen 0.71.1, соответствующие версиям из Debian 13. Тестовый исполняемый файл на Rust при сборке с LTO-оптимизациями занимает 32 КБ, при том что аналог на Си занимает 20 КБ. По умолчанию поддержка Rust включается только при наличии в системе соответствующего Rust-инструментария (-Drust=auto). В качестве первого компонента, написанного на Rust, развивается systemd-keyring-setup, который пока не принят в основную кодовую базу systemd. Systemd-keyring-setup предназначен для настройки и управления X.509-сертификатами для механизмов ядра Linux dm-verity, fs-verity и bpf. @linux0ids
Канал в каталоге Максиметера
2 510 подписчиков · IT и технологии