มีการเปลี่ยนแปลงในโค้ดเบสของระบบจัดการระบบ systemd โดยเพิ่มความสามารถในการสร้างคอมโพเนนต์ด้วยภาษา Rust Rust มีจุดประสงค์เพื่อใช้ในการพัฒนาคอมโพเนนต์ใหม่เท่านั้น และไม่มีแผนที่จะเขียนโค้ด C ที่มีอยู่เดิมใหม่ด้วย Rust ระบบจัดการแพ็กเกจ cargo จะไม่ถูกใช้ในกระบวนการสร้างอีกต่อไป และจะเหลือเพียงระบบสร้าง Meson เท่านั้น โค้ด Rust จะถูกใช้ในโหมด "no_std" (โดยไม่มีไลบรารีมาตรฐาน) และอนุญาตให้ใช้เฉพาะไลบรารี core, alloc และ libc เท่านั้น
ส่วนประกอบ Rust ของ systemd นั้นเชื่อมโยงแบบไดนามิกกับไลบรารี C libsystemd-shared การเชื่อมต่อ Rust สำหรับ libsystemd-shared จะถูกสร้างขึ้นโดยอัตโนมัติในระหว่างการสร้างจากไฟล์ส่วนหัวโดยใช้ยูทิลิตี้ bindgen และจะพร้อมใช้งานสำหรับโปรแกรม Rust ในรูปแบบของแพ็คเกจ systemd_shared ซึ่งต้องใช้ rustc เวอร์ชันอย่างน้อย 1.85 และ bindgen เวอร์ชัน 0.71.1 ขึ้นไป ซึ่งตรงกับเวอร์ชันในเอกสารนี้ Debian 13.
ไฟล์ปฏิบัติการ Rust สำหรับการทดสอบ เมื่อสร้างด้วยการเพิ่มประสิทธิภาพ LTO จะใช้พื้นที่ 32 KB ในขณะที่ไฟล์ปฏิบัติการ C ที่เทียบเท่ากันจะใช้พื้นที่ 20 KB โดยค่าเริ่มต้น การสนับสนุน Rust จะเปิดใช้งานก็ต่อเมื่อมีชุดเครื่องมือ Rust ที่เกี่ยวข้องอยู่ในระบบ (-Drust=auto) ส่วนประกอบแรกที่เขียนด้วย Rust กำลังอยู่ระหว่างการพัฒนา คือ systemd-keyring-setup ซึ่งยังไม่ได้ถูกนำไปใช้ในโค้ดเบสหลักของ systemd systemd-keyring-setup ถูกออกแบบมาเพื่อกำหนดค่าและจัดการใบรับรอง X.509 สำหรับกลไกของเคอร์เนล Linux dm-verity, fs-verity และ bpf
ที่มา: opennet.ru
