Iniciativa per reelaborar el conjunt d'eines de l'hipervisor Xen a Rust

Els desenvolupadors de la plataforma XCP-ng, desenvolupada sota l'ala del projecte Xen, han publicat un pla per crear un reemplaçament per a diversos components de la pila de programari Xen en el llenguatge Rust. No hi ha plans per reelaborar l'hipervisor Xen en si; el treball es centra principalment a reelaborar components individuals del conjunt d'eines.

Actualment, la plataforma utilitza components C, Python, OCaml i Go, alguns dels quals estan obsolets i plantegen reptes de manteniment. Cal assenyalar que l'ús de Rust no comportarà un augment global del nombre d'idiomes implicats, ja que només s'implementa un component a Go, que es preveu substituir primer.

Rust es va triar com un llenguatge que combina codi d'alt rendiment amb capacitats segures per a la memòria, no requereix un col·lector d'escombraries, és adequat per desenvolupar components tant de baix nivell com d'alt nivell i proporciona funcions addicionals per reduir possibles errors, com ara un verificador de préstec). Rust també està més estès que el llenguatge OCaml que s'utilitza actualment a XAPI, cosa que farà que sigui més fàcil atraure nous desenvolupadors al projecte.

La primera fase serà desenvolupar substitucions de diversos components per provar processos i preparar les bases per a la substitució d'altres parts de la pila de programari. En particular, en primer lloc, les eines de convidat de Linux, per a les quals s'utilitza actualment el llenguatge Go, i el procés de fons per a la recollida de mètriques, escrits en OCaml, es reescriuran a Rust.

La necessitat de reelaborar les eines convidades de Linux (xe-guest-utilities) és causada per problemes amb la qualitat del codi i el desenvolupament fora del projecte Xen sota el control del Cloud Software Group, cosa que dificulta empaquetar paquets i la influència de la comunitat en el desenvolupament. Tenen previst crear una nova versió del conjunt d'eines (xen-guest-agent) completament des de zero, fent-ho el més senzill possible i separant la lògica de l'agent de les biblioteques. Es va decidir reelaborar el procés de fons per a la recollida de mètriques (rrdd) ja que és compacte i separat, la qual cosa simplifica els experiments sobre l'ús d'un nou llenguatge durant el desenvolupament.

L'any vinent es pot començar a treballar en el desenvolupament del component xenopsd-ng a Rust, que optimitzarà l'arquitectura de la pila de programari. La idea principal és concentrar el treball amb API de baix nivell en un component i organitzar-hi el subministrament de totes les API d'alt nivell a altres components de la pila.

Arquitectura actual de pila Xen:

Iniciativa per reelaborar el conjunt d'eines de l'hipervisor Xen a Rust

Arquitectura de pila Xen proposta basada en xenopsd-ng:

Iniciativa per reelaborar el conjunt d'eines de l'hipervisor Xen a Rust


Font: opennet.ru

Afegeix comentari