ابتکار عمل برای بازسازی جعبه ابزار Xen Hypervisor در Rust

توسعه دهندگان پلتفرم XCP-ng که تحت بال پروژه Xen توسعه یافته است، طرحی را برای ایجاد جایگزینی برای اجزای مختلف پشته نرم افزار Xen به زبان Rust منتشر کرده اند. هیچ برنامه‌ای برای بازسازی خود Hypervisor Xen وجود ندارد؛ کار عمدتاً بر روی دوباره‌کاری اجزای مجزای جعبه ابزار متمرکز است.

این پلتفرم در حال حاضر از کامپوننت های C، Python، OCaml و Go استفاده می کند که برخی از آنها قدیمی هستند و مشکلات نگهداری را به همراه دارند. اشاره شده است که استفاده از Rust منجر به افزایش کلی تعداد زبان‌های درگیر نمی‌شود، زیرا تنها یک جزء در Go پیاده‌سازی شده است، که قرار است ابتدا جایگزین شود.

Rust به‌عنوان زبانی انتخاب شد که کدهای با کارایی بالا را با قابلیت‌های ایمن حافظه ترکیب می‌کند، نیازی به جمع‌آوری زباله ندارد، برای توسعه اجزای سطح پایین و سطح بالا مناسب است و ویژگی‌های اضافی را برای کاهش خطاهای احتمالی فراهم می‌کند، مانند چک کننده قرض گرفتن.). Rust همچنین گسترده تر از زبان OCaml است که در حال حاضر در XAPI استفاده می شود، که جذب توسعه دهندگان جدید را برای پروژه آسان تر می کند.

مرحله اول توسعه جایگزینی برای چندین مؤلفه برای آزمایش فرآیندها و آماده سازی پایه برای جایگزینی سایر بخش های پشته نرم افزار خواهد بود. به طور خاص، اول از همه، ابزارهای مهمان لینوکس، که در حال حاضر از زبان Go برای آنها استفاده می‌شود، و فرآیند پس‌زمینه جمع‌آوری معیارها، که در OCaml نوشته شده است، در Rust بازنویسی می‌شوند.

نیاز به کار مجدد ابزارهای مهمان لینوکس (xe-guest-utilities) به دلیل مشکلات کیفیت کد و توسعه خارج از پروژه Xen تحت کنترل گروه نرم‌افزار Cloud ایجاد می‌شود که بسته‌بندی بسته‌ها و تأثیر جامعه بر توسعه را دشوار می‌کند. آنها قصد دارند نسخه جدیدی از جعبه ابزار (xen-guest-agent) را به طور کامل از ابتدا ایجاد کنند و آن را تا حد امکان ساده کنند و منطق عامل را از کتابخانه ها جدا کنند. تصمیم گرفته شد که فرآیند پس‌زمینه برای جمع‌آوری معیارها (rrdd) دوباره کار شود، زیرا فشرده و مجزا است، که آزمایش‌های استفاده از یک زبان جدید را در طول توسعه ساده می‌کند.

سال آینده، ممکن است کار بر روی توسعه مولفه xenopsd-ng در Rust آغاز شود که معماری پشته نرم افزار را بهینه می کند. ایده اصلی تمرکز کار با APIهای سطح پایین در یک جزء و سازماندهی ارائه همه APIهای سطح بالا به سایر اجزای پشته از طریق آن است.

معماری پشته Xen فعلی:

ابتکار عمل برای بازسازی جعبه ابزار Xen Hypervisor در Rust

معماری پشته Xen پیشنهادی بر اساس xenopsd-ng:

ابتکار عمل برای بازسازی جعبه ابزار Xen Hypervisor در Rust


منبع: opennet.ru

اضافه کردن نظر