مبادرة لإعادة صياغة مجموعة أدوات برنامج Hypervisor Xen في Rust

نشر مطورو منصة XCP-ng، التي تم تطويرها تحت جناح مشروع Xen، خطة لإنشاء بديل للمكونات المختلفة لمجموعة برامج Xen بلغة Rust. لا توجد خطط لإعادة صياغة برنامج Xen Hypervisor نفسه، بل يركز العمل بشكل أساسي على إعادة صياغة المكونات الفردية لمجموعة الأدوات.

تستخدم المنصة حاليًا مكونات C وPython وOCaml وGo، وبعضها قديم ويشكل تحديات في الصيانة. تجدر الإشارة إلى أن استخدام Rust لن يؤدي إلى زيادة إجمالية في عدد اللغات المعنية، حيث يتم تنفيذ مكون واحد فقط في Go، والذي من المخطط استبداله أولاً.

تم اختيار Rust كلغة تجمع بين التعليمات البرمجية عالية الأداء وقدرات الذاكرة الآمنة، ولا تتطلب أداة تجميع البيانات المهملة، وهي مناسبة لتطوير المكونات ذات المستوى المنخفض والعالي المستوى، وتوفر ميزات إضافية لتقليل الأخطاء المحتملة، مثل مدقق الاقتراض.). كما أن Rust أكثر انتشارًا من لغة OCaml المستخدمة حاليًا في XAPI، مما سيسهل جذب مطورين جدد إلى المشروع.

ستكون المرحلة الأولى هي تطوير بدائل للعديد من المكونات لاختبار العمليات وإعداد الأساس لاستبدال الأجزاء الأخرى من حزمة البرامج. على وجه الخصوص، أولاً وقبل كل شيء، سيتم إعادة كتابة أدوات ضيف Linux، التي تُستخدم فيها لغة Go حاليًا، والعملية الخلفية لجمع المقاييس المكتوبة بلغة OCaml، في Rust.

تعود الحاجة إلى إعادة صياغة أدوات ضيف Linux (xe-guest-utilities) إلى مشاكل تتعلق بجودة التعليمات البرمجية والتطوير خارج مشروع Xen تحت سيطرة مجموعة Cloud Software Group، مما يجعل من الصعب حزم الحزم وتأثير المجتمع على التطوير. إنهم يخططون لإنشاء إصدار جديد من مجموعة الأدوات (xen-guest-agent) بالكامل من الصفر، مما يجعلها بسيطة قدر الإمكان وفصل منطق الوكيل عن المكتبات. تقرر إعادة صياغة عملية الخلفية لجمع المقاييس (rrdd) نظرًا لأنها مدمجة ومنفصلة، ​​مما يبسط تجارب استخدام لغة جديدة أثناء التطوير.

في العام المقبل، قد يبدأ العمل على تطوير مكون xenopsd-ng في Rust، والذي سيعمل على تحسين بنية حزمة البرامج. الفكرة الرئيسية هي تركيز العمل مع واجهات برمجة التطبيقات منخفضة المستوى في مكون واحد وتنظيم توفير جميع واجهات برمجة التطبيقات عالية المستوى للمكونات الأخرى للمكدس من خلاله.

بنية مكدس Xen الحالية:

مبادرة لإعادة صياغة مجموعة أدوات برنامج Hypervisor Xen في Rust

بنية مكدس Xen المقترحة بناءً على xenopsd-ng:

مبادرة لإعادة صياغة مجموعة أدوات برنامج Hypervisor Xen في Rust


المصدر: opennet.ru

إضافة تعليق