Xen Hypervisor Toolkit Rework Initiative sa Rust

Ang mga nag-develop ng XCP-ng platform, na binuo sa ilalim ng pakpak ng Xen project, ay naglathala ng isang plano upang lumikha ng isang kapalit para sa iba't ibang bahagi ng Xen software stack sa Rust na wika. Walang mga plano na i-rework ang Xen hypervisor mismo; ang trabaho ay pangunahing nakatuon sa muling paggawa ng mga indibidwal na bahagi ng toolkit.

Ang platform ay kasalukuyang gumagamit ng mga bahagi ng C, Python, OCaml, at Go, ang ilan sa mga ito ay luma na at nagdudulot ng mga hamon sa pagpapanatili. Napansin na ang paggamit ng Rust ay hindi hahantong sa isang pangkalahatang pagtaas sa bilang ng mga wikang kasangkot, dahil isang bahagi lamang ang ipinatupad sa Go, na binalak na palitan muna.

Ang Rust ay pinili bilang isang wika na pinagsasama ang mataas na pagganap ng code sa memory-safe na mga kakayahan, hindi nangangailangan ng isang basurero, ay angkop para sa pagbuo ng parehong mababang antas at mataas na antas ng mga bahagi, at nagbibigay ng mga karagdagang tampok upang mabawasan ang mga potensyal na error, tulad ng isang humiram ng checker.). Mas laganap din ang kalawang kaysa sa wikang OCaml na kasalukuyang ginagamit sa XAPI, na magpapadali sa pag-akit ng mga bagong developer sa proyekto.

Ang unang yugto ay upang bumuo ng mga kapalit para sa ilang mga bahagi upang subukan ang mga proseso at ihanda ang batayan para sa pagpapalit ng iba pang mga bahagi ng software stack. Sa partikular, una sa lahat, ang Linux guest tool, kung saan kasalukuyang ginagamit ang Go language, at ang proseso sa background para sa pagkolekta ng mga sukatan, na nakasulat sa OCaml, ay muling isusulat sa Rust.

Ang pangangailangang i-rework ang Linux guest tools (xe-guest-utilities) ay sanhi ng mga problema sa kalidad ng code at development sa labas ng Xen Project sa ilalim ng kontrol ng Cloud Software Group, na nagpapahirap sa pag-package ng mga package at impluwensya ng komunidad sa development. Plano nilang gumawa ng bagong bersyon ng toolkit (xen-guest-agent) nang buo mula sa simula, na ginagawa itong kasing simple hangga't maaari at pinaghihiwalay ang lohika ng ahente mula sa mga aklatan. Napagpasyahan na muling gawin ang proseso sa background para sa pagkolekta ng mga sukatan (rrdd) dahil ito ay compact at hiwalay, na nagpapasimple sa mga eksperimento sa paggamit ng bagong wika sa panahon ng pagbuo.

Sa susunod na taon, maaaring magsimula ang trabaho sa pagbuo ng xenopsd-ng component sa Rust, na mag-o-optimize sa arkitektura ng software stack. Ang pangunahing ideya ay pag-concentrate ang trabaho sa mga mababang antas na API sa isang bahagi at ayusin ang probisyon ng lahat ng mataas na antas na API sa iba pang bahagi ng stack sa pamamagitan nito.

Kasalukuyang Xen stack architecture:

Xen Hypervisor Toolkit Rework Initiative sa Rust

Iminungkahing Xen stack architecture batay sa xenopsd-ng:

Xen Hypervisor Toolkit Rework Initiative sa Rust


Pinagmulan: opennet.ru

Magdagdag ng komento