Telah dilakukan perubahan pada basis kode pengelola sistem systemd, dengan menambahkan kemampuan untuk membuat komponen dalam Rust. Rust dimaksudkan hanya untuk digunakan dalam pengembangan komponen baru, dan tidak ada rencana untuk menulis ulang kode C yang ada dalam Rust. Pengelola paket cargo tidak lagi digunakan dalam proses build, dan hanya sistem build Meson yang tersisa. Kode Rust digunakan dalam mode "no_std" (tanpa pustaka standar), dan hanya pustaka core, alloc, dan libc yang diizinkan.
Komponen Rust systemd dihubungkan secara dinamis ke pustaka C libsystemd-shared. Binding Rust untuk libsystemd-shared secara otomatis dihasilkan pada saat kompilasi dari file header menggunakan utilitas bindgen dan tersedia untuk program Rust dalam bentuk paket systemd_shared. Ini membutuhkan setidaknya rustc 1.85 dan bindgen 0.71.1, yang sesuai dengan versi di Debian 13.
File eksekusi Rust untuk pengujian, ketika dibangun dengan optimasi LTO, membutuhkan ruang sebesar 32 KB, sedangkan versi C-nya membutuhkan ruang sebesar 20 KB. Secara default, dukungan Rust hanya diaktifkan jika toolchain Rust yang sesuai ada di sistem (-Drust=auto). Komponen pertama yang ditulis dalam Rust sedang dikembangkan, yaitu systemd-keyring-setup, yang belum diadopsi ke dalam basis kode systemd utama. Systemd-keyring-setup dirancang untuk mengkonfigurasi dan mengelola sertifikat X.509 untuk mekanisme kernel. Linux dm-verity, fs-verity dan bpf.
Sumber: opennet.ru
