Xen Hypervisor Toolkit Rework Initiative in Rust

Dezvoltatorii platformei XCP-ng, dezvoltate sub aripa proiectului Xen, au publicat un plan pentru a crea un înlocuitor pentru diferite componente ale stivei de software Xen în limbajul Rust. Nu există planuri de reelaborare a hipervizorului Xen în sine.

Platforma folosește în prezent componente C, Python, OCaml și Go, dintre care unele sunt învechite și prezintă provocări de întreținere. Se observă că utilizarea Rust nu va duce la o creștere generală a numărului de limbi implicate, deoarece în Go este implementată o singură componentă, care este planificată să fie înlocuită mai întâi.

Rust a fost ales ca un limbaj care combină codul de înaltă performanță cu capabilități de siguranță pentru memorie, nu necesită un colector de gunoi, este potrivit pentru dezvoltarea atât de componente de nivel scăzut, cât și de nivel înalt și oferă caracteristici suplimentare pentru a reduce erorile potențiale, cum ar fi un verificator de împrumut). Rust este, de asemenea, mai răspândit decât limbajul OCaml utilizat în prezent în XAPI, ceea ce va facilita atragerea de noi dezvoltatori către proiect.

Prima fază va fi dezvoltarea de înlocuiri pentru mai multe componente pentru a testa procesele și a pregăti baza pentru înlocuirea altor părți ale stivei de software. În special, în primul rând, instrumentele pentru invitați Linux, pentru care se folosește în prezent limbajul Go, și procesul de fundal pentru colectarea valorilor, scris în OCaml, vor fi rescrise în Rust.

Necesitatea de a reelabora instrumentele pentru invitați Linux (xe-guest-utilities) este cauzată de probleme cu calitatea codului și dezvoltarea în afara Proiectului Xen sub controlul Cloud Software Group, ceea ce face dificilă împachetarea pachetelor și influența comunității asupra dezvoltării. Ei plănuiesc să creeze o nouă versiune a setului de instrumente (xen-guest-agent) complet de la zero, făcând-o cât mai simplu posibil și separând logica agentului de biblioteci. S-a hotărât reelaborarea procesului de fundal pentru colectarea valorilor (rrdd), deoarece este compact și separat, ceea ce simplifică experimentele privind utilizarea unui nou limbaj în timpul dezvoltării.

Anul viitor, ar putea începe lucrul la dezvoltarea componentei xenopsd-ng în Rust, care va optimiza arhitectura stivei de software. Ideea principală este de a concentra munca cu API-uri de nivel scăzut într-o singură componentă și de a organiza furnizarea tuturor API-urilor de nivel înalt către alte componente ale stivei prin intermediul acesteia.

Arhitectura actuală a stivei Xen:

Xen Hypervisor Toolkit Rework Initiative in Rust

Arhitectura stivă Xen propusă bazată pe xenopsd-ng:

Xen Hypervisor Toolkit Rework Initiative in Rust


Sursa: opennet.ru

Adauga un comentariu