systemdシステムマネージャのコードベースに変更が加えられ、Rustでコンポーネントを作成できるようになりました。Rustは新しいコンポーネントの開発のみに使用されることを想定しており、既存のCコードをRustで書き換える予定はありません。cargoパッケージマネージャはビルドプロセスで使用されなくなり、Mesonビルドシステムのみが残ります。Rustコードは「no_std」モード(標準ライブラリなし)で使用され、core、alloc、libcライブラリのみが許可されます。
systemd の Rust コンポーネントは、libsystemd-shared C ライブラリに動的にリンクされます。libsystemd-shared の Rust バインディングは、bindgen ユーティリティを使用してヘッダーファイルからビルド時に自動的に生成され、systemd_shared パッケージの形式で Rust プログラムから利用できるようになります。これには、rustc 1.85 および bindgen 0.71.1 以上のバージョンが必要です。 Debian 13.
LTO最適化を使用してビルドされたテスト用Rust実行ファイルは32KB、C言語版は20KBです。デフォルトでは、対応するRustツールチェーンがシステムに存在する場合(-Drust=auto)にのみRustサポートが有効になります。Rustで書かれた最初のコンポーネントであるsystemd-keyring-setupが開発中ですが、まだメインのsystemdコードベースには採用されていません。systemd-keyring-setupは、カーネルメカニズム用のX.509証明書を構成および管理するように設計されています。 Linux dm-verity、fs-verity、およびbpf。
出所: オープンネット.ru
