تم إدخال تعديل على قاعدة بيانات مدير النظام systemd، بإضافة إمكانية إنشاء مكونات بلغة Rust. يُخصص استخدام Rust حصراً لتطوير المكونات الجديدة، ولا توجد أي خطط لإعادة كتابة أكواد C الحالية بلغة Rust. لم يعد مدير الحزم cargo مستخدماً في عملية البناء، وبقي نظام البناء Meson هو النظام الوحيد المستخدم. يُستخدم كود Rust في وضع "no_std" (بدون المكتبة القياسية)، ولا يُسمح إلا باستخدام مكتبات core وalloc وlibc.
ترتبط مكونات Rust الخاصة بنظام systemd ديناميكيًا بمكتبة libsystemd-shared المكتوبة بلغة C. يتم إنشاء روابط Rust الخاصة بـ libsystemd-shared تلقائيًا أثناء عملية البناء من ملفات الرأس باستخدام أداة bindgen، وتُتاح لبرامج Rust في شكل حزمة systemd_shared. يتطلب ذلك على الأقل rustc 1.85 و bindgen 0.71.1، وهما الإصداران المذكوران في Debian 13.
يبلغ حجم ملف Rust التنفيذي التجريبي، عند بنائه مع تحسينات LTO، 32 كيلوبايت، بينما يبلغ حجم نظيره المكتوب بلغة C 20 كيلوبايت. يتم تفعيل دعم Rust افتراضيًا فقط في حال وجود مجموعة أدوات Rust المناسبة على النظام (-Drust=auto). يجري حاليًا تطوير أول مكون مكتوب بلغة Rust، وهو systemd-keyring-setup، والذي لم يُدمج بعد في قاعدة بيانات systemd الرئيسية. صُمم systemd-keyring-setup لتهيئة وإدارة شهادات X.509 لآليات النواة. Linux dm-verity و fs-verity و bpf.
المصدر: opennet.ru
