systemd เริ่มรองรับภาษา Rust แต่ส่วน Core ยังคงต้องรอต่อไป
systemd ซึ่งเป็น init system และตัวจัดการบริการที่ Linux distribution กระแสหลักส่วนใหญ่ใช้งาน ได้ควบรวมการสนับสนุนสำหรับการเขียนโปรแกรมด้วย Rust เข้ามาแล้ว โดยได้เข้าสู่กิ่งหลัก (main branch) ผ่าน a pull request จำนวน 19 commit ซึ่งเป็นไปตามข้อตกลงจากการประชุม hackfest ล่าสุดที่กรุงเบอร์ลิน
โปรแกรมแรกที่นำมาใช้งานคือ systemd-keyring-setup ทำหน้าที่เพิ่มใบรับรอง X.509 เข้าไปยัง kernel keyrings เช่น dm-verity และ fs-verity ในช่วงบูตก่อนที่จะทำการล็อกข้อมูลเหล่านั้น
หากคุณยังจำได้ เราเพิ่งพูดถึง Amutable ที่ launching a preview สำหรับผลิตภัณฑ์ใหม่ของพวกเขา อย่างไรก็ตาม ลองมาดู what they are up to now ว่าพวกเขากำลังทำอะไรอยู่
Rust แต่ภายใต้เงื่อนไขของ systemd
ด้วยแนวทางที่เลือกใช้ Rust จะยังคงเป็นเพียงตัวเลือกเสริม (optional) ซึ่ง systemd ยังคงสามารถ build ได้โดยไม่ต้องมีมัน โดยขอบเขตของโค้ด Rust จะจำกัดเฉพาะโปรแกรมเดี่ยว (standalone) ใหม่ๆ ที่ไม่มีส่วนประกอบอื่นมาพึ่งพาเท่านั้น
การ build ทั้งหมดจะทำผ่าน meson โดยตัด cargo ออกจากกระบวนการ และอนุญาตให้ใช้ได้เพียง crate core และ libc เท่านั้น ซึ่งหมายความว่า standard library และ alloc จะถูกตัดสิทธิ์การใช้งานไปโดยปริยาย
นอกจากนี้ โปรแกรมต่างๆ จะต้องใช้ประเภทข้อมูล Box และ Vec ของ systemd เอง หากการจัดสรรหน่วยความจำ (allocation) ล้มเหลว จะต้องคืนค่า error แทนที่จะเกิดการ panic และโปรแกรม Rust ต้องทำงานได้เหมือนกับโปรแกรมคู่ขนานที่เป็น C ทุกประการ โดยการ build จะต้องใช้ rustc 1.85, bindgen 0.71.1 และ meson 1.4.0 ขึ้นไป
ปัญหาเรื่อง Shared Library
ในส่วนของ library ที่ใช้ร่วมกันอย่าง libsystemd-shared จะยังคงเป็นภาษา C ต่อไป เนื่องจาก Rust ยังไม่มี stable ABI ที่เหมาะสมสำหรับการสนับสนุน shared library หากฝืนนำ Rust เข้าไปใส่ในตอนนี้จะทำให้เกิดโค้ดที่ซ้ำซ้อนกันทั้งใน library และ binary หลายตัวของระบบ
การเข้าถึงระบบไฟล์ (Filesystem access) เป็นอีกหนึ่งอุปสรรคสำคัญ เนื่องจาก systemd ค้นหา path ผ่าน file descriptors เพื่อความปลอดภัยระดับสูง ซึ่งขัดกับวิธีการจัดการ path มาตรฐานของ Rust ในส่วนประกอบที่มีความละเอียดอ่อน อย่างไรก็ตาม systemd ยังคงตั้งเป้าที่จะนำ Rust เข้าสู่ส่วน core และพร้อมทำงานร่วมกับชุมชน Rust เพื่อแก้ไขข้อจำกัดเหล่านี้
คลื่นแห่ง Rust ในโลก Linux
systemd ไม่ใช่ส่วนเดียวของ Linux stack ที่กำลังเปิดพื้นที่ให้ Rust เพราะภาษาที่เน้นความปลอดภัยของหน่วยความจำ (memory-safe) นี้ได้เข้าสู่ Linux kernel ตั้งแต่เวอร์ชัน 6.1 และผู้ดูแล kernel เพิ่งประกาศเมื่อช่วงปลายปีที่แล้วว่า the experiment was over หรือการทดลองสิ้นสุดลงและเข้าสู่การใช้งานจริง
ด้าน Ubuntu เองก็ได้เดินตามเส้นทางนี้กับเครื่องมือหลัก (core tools) มาสักพักแล้ว เช่น sudo-rs และ uutils coreutils ที่กลายเป็นมาตรฐานหลัก ทั้งหมดนี้ชี้ให้เห็นว่าการยอมรับ Rust จะเร่งตัวขึ้นอย่างต่อเนื่องเมื่อเราก้าวเข้าสู่ปี 2027
ชอบการอัปเดตนี้ไหม? สนับสนุนการรายงานข่าว Linux ที่เป็นอิสระ
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
