Xen Hypervisor Toolkit Rework Initiative in Rust

Xen-projektin siiven alla kehitetyn XCP-ng-alustan kehittäjät ovat julkaisseet suunnitelman luoda korvaavan Xen-ohjelmistopinon eri komponentit Rust-kielellä. Itse Xen-hypervisoria ei ole tarkoitus muokata, vaan työ keskittyy pääasiassa työkalupakin yksittäisten komponenttien uusimiseen.

Alusta käyttää tällä hetkellä C-, Python-, OCaml- ja Go-komponentteja, joista jotkut ovat vanhentuneita ja aiheuttavat ylläpitohaasteita. On huomattava, että Rustin käyttö ei johda siihen liittyvien kielten yleiseen kasvuun, koska Goissa on toteutettu vain yksi komponentti, joka on tarkoitus vaihtaa ensin.

Rust valittiin kieleksi, joka yhdistää korkean suorituskyvyn koodin ja muistin turvalliset ominaisuudet, ei vaadi roskienkerääjää, soveltuu sekä matalan että korkean tason komponenttien kehittämiseen ja tarjoaa lisäominaisuuksia mahdollisten virheiden vähentämiseksi, kuten lainatarkistus. ). Ruoste on myös yleisempi kuin XAPI:ssa tällä hetkellä käytetty OCaml-kieli, mikä helpottaa uusien kehittäjien houkuttelemista projektiin.

Ensimmäinen vaihe on kehittää useille komponenteille korvaavia prosesseja testatakseen ja valmistaa pohjaa ohjelmistopinon muiden osien vaihtamiselle. Etenkin ensinnäkin Linuxin vierastyökalut, joissa Go-kieltä käytetään tällä hetkellä, sekä OCaml-kielellä kirjoitettu taustaprosessi mittareiden keräämiseen kirjoitetaan uudelleen Rustilla.

Linuxin vierastyökalujen (xe-guest-utilities) uudelleenkäsittelytarve johtuu Cloud Software Groupin hallinnassa olevan Xen-projektin ulkopuolisista koodinlaadusta ja kehittämisestä, mikä vaikeuttaa pakettien pakkaamista ja yhteisön vaikuttamista kehitykseen. He suunnittelevat luovansa työkalupaketista uuden version (xen-guest-agent) kokonaan tyhjästä, tehden siitä mahdollisimman yksinkertaisen ja erottaen agenttilogiikan kirjastoista. Mittareiden keräämisen taustaprosessi (rrdd) päätettiin muokata uudelleen, koska se on kompakti ja erillinen, mikä yksinkertaistaa uuden kielen käyttöä kehitysvaiheessa.

Ensi vuonna voidaan aloittaa Rustin xenopsd-ng-komponentin kehittäminen, joka optimoi ohjelmistopinon arkkitehtuuria. Pääideana on keskittää työ matalan tason API:iden kanssa yhteen komponenttiin ja organisoida sen kautta kaikkien korkean tason API:iden toimittaminen muille pinon komponenteille.

Nykyinen Xen-pinoarkkitehtuuri:

Xen Hypervisor Toolkit Rework Initiative in Rust

Ehdotettu Xen-pinoarkkitehtuuri, joka perustuu xenopsd-ng:hen:

Xen Hypervisor Toolkit Rework Initiative in Rust


Lähde: opennet.ru

Lisää kommentti