Pobuda za predelavo kompleta orodij hipervizorja Xen v Rustu

Razvijalci platforme XCP-ng, razvite pod okriljem projekta Xen, so objavili načrt za ustvarjanje zamenjave za različne komponente sklada programske opreme Xen v jeziku Rust. Ni načrtov za predelavo samega hipervizorja Xen, delo je osredotočeno predvsem na predelavo posameznih komponent kompleta orodij.

Platforma trenutno uporablja komponente C, Python, OCaml in Go, od katerih so nekatere zastarele in povzročajo težave pri vzdrževanju. Opozoriti je treba, da uporaba Rust ne bo povzročila splošnega povečanja števila vključenih jezikov, saj je v Go implementirana le ena komponenta, ki naj bi jo najprej zamenjali.

Rust je bil izbran kot jezik, ki združuje visoko zmogljivo kodo z zmožnostmi, varnimi za pomnilnik, ne potrebuje zbiralnika smeti, je primeren za razvoj tako nizkonivojskih kot tudi visokonivojskih komponent ter ponuja dodatne funkcije za zmanjšanje morebitnih napak, kot je izposoja čekov. ). Rust je tudi bolj razširjen kot jezik OCaml, ki se trenutno uporablja v XAPI, kar bo olajšalo privabljanje novih razvijalcev k projektu.

Prva faza bo razvoj zamenjav za več komponent za testiranje procesov in priprava podlage za zamenjavo drugih delov programskega sklada. Predvsem najprej orodja za gostovanje Linuxa, za katera se trenutno uporablja jezik Go, in postopek v ozadju za zbiranje meritev, napisan v OCaml, bodo na novo napisani v Rust.

Potrebo po predelavi orodij za goste Linuxa (xe-guest-utilities) povzročajo težave s kakovostjo kode in razvojem zunaj projekta Xen pod nadzorom skupine Cloud Software Group, kar otežuje pakiranje paketov in vpliv skupnosti na razvoj. Novo različico kompleta orodij (xen-guest-agent) nameravajo ustvariti popolnoma iz nič, kar najbolj poenostaviti in ločiti agentsko logiko od knjižnic. Odločili smo se, da predelamo proces ozadja za zbiranje metrik (rrdd), saj je kompakten in ločen, kar poenostavlja poskuse uporabe novega jezika med razvojem.

Naslednje leto se lahko začne delo na razvoju komponente xenopsd-ng v Rustu, ki bo optimizirala arhitekturo sklada programske opreme. Glavna ideja je koncentrirati delo z nizkonivojskimi API-ji v eni komponenti in prek nje organizirati zagotavljanje vseh visokonivojskih API-jev drugim komponentam sklada.

Trenutna arhitektura sklada Xen:

Pobuda za predelavo kompleta orodij hipervizorja Xen v Rustu

Predlagana arhitektura sklada Xen, ki temelji na xenopsd-ng:

Pobuda za predelavo kompleta orodij hipervizorja Xen v Rustu


Vir: opennet.ru

Dodaj komentar