A Xen hypervisor toolset rewrite initiative in Rust

The developers of the XCP-ng platform, developed under the Xen project, have published a plan to create replacements for various components of the Xen software stack in Rust. The Xen hypervisor itself is not currently set to be rewritten, with the focus mainly on reworking individual toolset components.

Currently, the platform uses components written in C, Python, OCaml, and Go, some of which are outdated and create maintenance issues. It is noted that using Rust will not lead to an overall increase in the number of languages involved, as only one component implemented in Go is planned to be replaced first.

Rust is chosen for its combination of high performance of the resulting code with memory safety capabilities, eliminating the need for a garbage collector, and suitability for developing both low-level and high-level components, providing additional opportunities to reduce potential errors, such as variable borrowing checks. Rust is also more widely used than the currently used XAPI language OCaml, simplifying the recruitment of new developers for the project.

In the first stage, there are plans to develop replacements for several components to refine the processes and prepare the groundwork for replacing other parts of the software stack. Specifically, the Linux guest tools toolkit, currently written in Go, will be rewritten in Rust first, along with the background process for collecting metrics, which is written in OCaml.

The need to rewrite the Linux guest tools (xe-guest-utilities) arises from code quality issues and development outside the Xen Project under Cloud Software Group's control, complicating package formation and community influence on development. The new version of the toolkit (xen-guest-agent) is planned to be built from scratch, aiming to keep it as simple as possible and separating agent logic from libraries. The background process for collecting metrics (rrdd) is also to be reworked as it is compact and self-contained, making it easier to experiment with using a new language in development.

A következő évben elkezdődhet a xenopsd-ng komponens Rust nyelven történő fejlesztése, amely lehetővé teszi a programstakk architektúrájának optimalizálását. A fő elképzelés az, hogy egyetlen komponensbe összpontosítsuk az alacsony szintű API-val végzett munkát, és ezen keresztül biztosítsuk a többi komponens számára az összes magas szintű API-t a stackben.

A jelenlegi Xen stack architektúrája:

A Xen hypervisor toolset rewrite initiative in Rust

A xenopsd-ng alapú Xen stack javasolt architektúrája:

A Xen hypervisor toolset rewrite initiative in Rust


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster