Iniziativa per la revisione degli strumenti per l'hypervisor Xen in Rust

Gli sviluppatori della piattaforma XCP-ng, che è sviluppata sotto l'egida del progetto Xen, hanno pubblicato un piano per la creazione in Rust di sostituti per vari componenti dello stack software di Xen. Attualmente non prevedono di riprogettare direttamente il hypervisor Xen; il lavoro è principalmente focalizzato sulla riscrittura di singoli componenti degli strumenti.

Attualmente, la piattaforma utilizza componenti scritti in C, Python, OCaml e Go, alcuni dei quali sono obsoleti e creano problemi di manutenzione. Si sottolinea che l'uso di Rust non comporterà un aumento complessivo nel numero di linguaggi utilizzati, dato che in Go è implementato solo un componente, che si prevede di sostituire per primo.

Il linguaggio Rust è stato scelto per la sua capacità di combinare alte prestazioni del codice risultante con possibilità di gestione della memoria sicura, senza l'uso di garbage collector, rendendolo adatto allo sviluppo di componenti sia a basso che ad alto livello, fornendo opportunità aggiuntive per ridurre potenziali errori, come il controllo del prestito delle variabili (borrow checker). Rust è anche più diffuso rispetto al linguaggio OCaml attualmente utilizzato in XAPI, il che faciliterà attrarre nuovi sviluppatori al progetto.

Nella prima fase, si prevede di sviluppare una sostituzione per diversi componenti, per testare i processi e preparare la base per la sostituzione di altre parti dello stack software. In particolare, per prima cosa gli strumenti per Linux guest tools, attualmente scritti in Go, saranno riscritti in Rust, e il processo in background per la raccolta delle metriche, attualmente scritto in OCaml.

La necessità di riprogettare i Linux guest tools (xe-guest-utilities) è emersa a causa di problemi con la qualità del codice e dello sviluppo al di fuori del progetto Xen Project sotto la supervisione di Cloud Software Group, il che complica la formazione dei pacchetti e l'influenza della comunità sullo sviluppo. Si prevede di creare una nuova versione degli strumenti (xen-guest-agent) completamente da zero, semplificandola il più possibile e separando la logica dell'agente dalle librerie. Il processo in background per la raccolta delle metriche (rrdd) verrà riprogettato poiché è compatto e isolato, facilitando esperimenti sull'uso del nuovo linguaggio nello sviluppo.

L'anno prossimo potrebbe iniziare il lavoro per lo sviluppo in Rust del componente xenopsd-ng, che consentirà di ottimizzare l'architettura dello stack software. L'idea principale è quella di centralizzare in un unico componente il lavoro con l'API a basso livello e organizzare la fornitura di tutte le API ad alto livello agli altri componenti dello stack.

L'attuale architettura dello stack Xen:

Iniziativa per la revisione degli strumenti per l'hypervisor Xen in Rust

L'architettura proposta dello stack Xen basata su xenopsd-ng:

Iniziativa per la revisione degli strumenti per l'hypervisor Xen in Rust


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster