ความคิดริเริ่มในการนำชุดเครื่องมือไฮเปอร์ไวเซอร์ Xen มาใช้ใหม่ใน Rust

นักพัฒนาแพลตฟอร์ม XCP-ng ซึ่งพัฒนาภายใต้โครงการ Xen ได้เผยแพร่แผนการสร้างการทดแทนส่วนประกอบต่างๆ ของซอฟต์แวร์ Xen Stack ในภาษา Rust ไม่มีแผนที่จะปรับปรุง Xen Hypervisor เอง งานมุ่งเน้นไปที่การปรับปรุงส่วนประกอบแต่ละส่วนของชุดเครื่องมือเป็นหลัก

ปัจจุบันแพลตฟอร์มนี้ใช้ส่วนประกอบ C, Python, OCaml และ Go ซึ่งบางส่วนล้าสมัยและก่อให้เกิดความท้าทายในการบำรุงรักษา สังเกตว่าการใช้ Rust จะไม่ทำให้จำนวนภาษาที่เกี่ยวข้องเพิ่มขึ้นโดยรวม เนื่องจากมีการใช้งานองค์ประกอบเดียวใน Go ซึ่งมีแผนจะเปลี่ยนก่อน

Rust ได้รับเลือกให้เป็นภาษาที่รวมโค้ดประสิทธิภาพสูงเข้ากับความสามารถที่ปลอดภัยของหน่วยความจำ ไม่จำเป็นต้องใช้ตัวรวบรวมขยะ เหมาะสำหรับการพัฒนาส่วนประกอบทั้งระดับต่ำและระดับสูง และให้คุณสมบัติเพิ่มเติมเพื่อลดข้อผิดพลาดที่อาจเกิดขึ้น เช่น ยืมเช็คเกอร์. ) นอกจากนี้ Rust ยังแพร่หลายมากกว่าภาษา OCaml ที่ใช้ใน XAPI ในปัจจุบัน ซึ่งจะทำให้ดึงดูดนักพัฒนารายใหม่เข้าสู่โปรเจ็กต์ได้ง่ายขึ้น

ระยะแรกคือการพัฒนาการเปลี่ยนส่วนประกอบต่างๆ เพื่อทดสอบกระบวนการและเตรียมพื้นฐานสำหรับการเปลี่ยนส่วนอื่นๆ ของชุดซอฟต์แวร์ โดยเฉพาะอย่างยิ่ง ก่อนอื่นเลย เครื่องมือสำหรับแขกของ Linux ซึ่งใช้ภาษา Go อยู่ในปัจจุบัน และกระบวนการเบื้องหลังสำหรับการรวบรวมตัวชี้วัดที่เขียนด้วย OCaml จะถูกเขียนใหม่ด้วยภาษา Rust

ความจำเป็นในการปรับปรุงเครื่องมือเกสต์ Linux (xe-guest-utilities) เกิดจากปัญหาเกี่ยวกับคุณภาพของโค้ดและการพัฒนานอกโครงการ Xen ภายใต้การควบคุมของกลุ่มซอฟต์แวร์คลาวด์ ซึ่งทำให้ยากต่อการจัดแพ็คเกจแพ็คเกจและอิทธิพลของชุมชนต่อการพัฒนา พวกเขาวางแผนที่จะสร้างชุดเครื่องมือเวอร์ชันใหม่ (xen-guest-agent) ทั้งหมดตั้งแต่ต้น ทำให้ง่ายที่สุดเท่าที่จะเป็นไปได้ และแยกตรรกะของตัวแทนออกจากไลบรารี มีการตัดสินใจที่จะปรับปรุงกระบวนการเบื้องหลังสำหรับการรวบรวมเมตริก (rrdd) เนื่องจากมีขนาดกะทัดรัดและแยกจากกัน ซึ่งทำให้การทดลองใช้ภาษาใหม่ในระหว่างการพัฒนาง่ายขึ้น

ปีหน้างานอาจเริ่มพัฒนาส่วนประกอบ xenopsd-ng ใน Rust ซึ่งจะปรับสถาปัตยกรรมของสแต็กซอฟต์แวร์ให้เหมาะสม แนวคิดหลักคือการเน้นการทำงานกับ API ระดับต่ำในองค์ประกอบเดียว และจัดระเบียบการจัดหา API ระดับสูงทั้งหมดไปยังส่วนประกอบอื่นๆ ของสแต็กผ่านทางองค์ประกอบนั้น

สถาปัตยกรรม Xen stack ปัจจุบัน:

ความคิดริเริ่มในการนำชุดเครื่องมือไฮเปอร์ไวเซอร์ Xen มาใช้ใหม่ใน Rust

สถาปัตยกรรมสแต็ก Xen ที่เสนอตาม xenopsd-ng:

ความคิดริเริ่มในการนำชุดเครื่องมือไฮเปอร์ไวเซอร์ Xen มาใช้ใหม่ใน Rust


ที่มา: opennet.ru

เพิ่มความคิดเห็น