В 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
Views: 708
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go