تغییری در کدبیس مدیریت سیستم systemd اعمال شده است که امکان ایجاد کامپوننتها در Rust را اضافه میکند. Rust قرار است فقط برای توسعه کامپوننتهای جدید استفاده شود و هیچ برنامهای برای بازنویسی کد C موجود در Rust وجود ندارد. مدیر بسته cargo دیگر در فرآیند ساخت استفاده نمیشود و فقط سیستم ساخت Meson باقی میماند. کد Rust در حالت "no_std" (بدون کتابخانه استاندارد) استفاده میشود و فقط کتابخانههای core، alloc و libc مجاز هستند.
اجزای Rust سیستمی به صورت پویا به کتابخانه C libsystemd-shared متصل هستند. اتصالات Rust برای libsystemd-shared به طور خودکار در زمان ساخت از فایلهای هدر با استفاده از ابزار bindgen تولید میشوند و در قالب بسته systemd_shared در دسترس برنامههای Rust قرار میگیرند. این امر مستلزم حداقل rustc 1.85 و bindgen 0.71.1 است که مربوط به نسخههای موجود در Debian 13.
فایل اجرایی آزمایشی Rust، هنگامی که با بهینهسازیهای LTO ساخته میشود، ۳۲ کیلوبایت فضا اشغال میکند، در حالی که معادل C آن ۲۰ کیلوبایت فضا اشغال میکند. به طور پیشفرض، پشتیبانی Rust فقط در صورتی فعال میشود که زنجیره ابزار Rust مربوطه در سیستم وجود داشته باشد (-Drust=auto). اولین مؤلفه نوشته شده با Rust در حال توسعه است، systemd-keyring-setup، که هنوز در پایگاه کد اصلی systemd پذیرفته نشده است. Systemd-keyring-setup برای پیکربندی و مدیریت گواهیهای X.509 برای سازوکارهای هسته طراحی شده است. Linux dm-verity، fs-verity و bpf.
منبع: opennet.ru
