Initiative zur Neugestaltung des Tools für den Hypervisor Xen in Rust

Die Entwickler der XCP-ng-Plattform, die im Rahmen des Xen-Projekts entwickelt wird, haben einen Plan veröffentlicht, verschiedene Komponenten des Xen-Software-Stacks in Rust abzulösen. Der Hypervisor Xen selbst soll jedoch vorerst nicht überarbeitet werden; der Fokus liegt hauptsächlich auf der Neugestaltung einzelner Komponenten des Tools.

Derzeit verwendet die Plattform Komponenten in den Programmiersprachen C, Python, OCaml und Go, von denen einige veraltet sind und Wartungsprobleme verursachen. Es wird angemerkt, dass die Verwendung von Rust nicht zu einer allgemeinen Erhöhung der eingesetzten Programmiersprachen führen wird, da nur eine Komponente in Go realisiert ist, die als erste ersetzt werden soll.

Die Programmiersprache Rust vereint hohe Leistungsfähigkeit mit sicheren Speicherzugriffsmöglichkeiten, da sie ohne Garbage Collection auskommt. Sie eignet sich sowohl für die Entwicklung von Low-Level- als auch von High-Level-Komponenten und bietet zusätzliche Funktionen, um potenzielle Fehler zu reduzieren, wie etwa den Borrow Checker zur Überprüfung von Variablen. Rust ist zudem verbreiteter als die derzeit in XAPI verwendete Sprache OCaml, was die Integration neuer Entwickler in das Projekt erleichtert.

Im ersten Schritt ist geplant, einige Komponenten zu ersetzen, um die Prozesse zu erproben und eine Basis für den Austausch anderer Teile des Software-Stacks zu schaffen. In diesem Zusammenhang wird zunächst die Linux-Gasttools-Schnittstelle, die derzeit in Go geschrieben ist, sowie der Hintergrundprozess zur Sammlung von Metriken, der in OCaml geschrieben wurde, auf Rust umgeschrieben.

Die Notwendigkeit, die Linux-Guest-Tools (xe-guest-utilities) zu überarbeiten, ergibt sich aus der Problematik der Codequalität und der Entwicklung außerhalb des Xen-Projekts unter der Kontrolle der Cloud Software Group, was die Paketbildung und den Einfluss der Community auf die Entwicklung erschwert. Eine neue Version des Tools (xen-guest-agent) soll komplett neu entwickelt werden, um die Einfachheit zu maximieren und die Logik des Agenten von den Bibliotheken zu trennen. Der Hintergrundprozess zur Sammlung von Metriken (rrdd) wird überarbeitet, da er kompakt und isoliert ist, was Experimente mit einer neuen Sprache in der Entwicklung erleichtert.

Im nächsten Jahr könnte mit der Entwicklung eines Komponenten xenopsd-ng in Rust begonnen werden, der die Architektur des Software-Stacks optimieren wird. Die Hauptidee besteht darin, die Arbeit mit dem Low-Level-API in einer Komponente zu bündeln und die Bereitstellung aller hochgradigen APIs an die anderen Komponenten des Stacks über diese zu organisieren.

Aktuelle Architektur des Xen-Stapels:

Initiative zur Neugestaltung des Tools für den Hypervisor Xen in Rust

Vorgeschlagene Architektur des Xen-Stapels basierend auf xenopsd-ng:

Initiative zur Neugestaltung des Tools für den Hypervisor Xen in Rust


Quelle: opennet.ru
Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster