Utvecklarna av plattformen XCP-ng, som utvecklas under Xen-projektets vingar, har publicerat en plan för att skapa en ersÀttning för olika komponenter i programstacken Xen pÄ Rust. För nÀrvarande har man inte för avsikt att omarbeta hypervisorn Xen, och arbetet fokuserar huvudsakligen pÄ att omarbeta enskilda komponenter i verktygsuppsÀttningen.
För nÀrvarande anvÀnds komponenter i plattformen som Àr skrivna pÄ C, Python, OCaml och Go, varav nÄgra har blivit förÄldrade och skapar problem med underhÄllet. Det pÄpekas att anvÀndningen av Rust inte kommer att leda till en ökning av antalet sprÄk som anvÀnds, eftersom det endast finns en komponent implementerad pÄ Go, som planeras att ersÀttas först.
SprÄket Rust har valts ut för att kombinera hög prestanda hos den resulterande koden med sÀker minneshantering, utan att anvÀnda en skrÀpsamlare, och Àr lÀmpligt för utveckling av bÄde lÄg- och högnivÄkomponenter. Det ger ocksÄ ytterligare möjligheter att minska potentiella fel, som kontroll av variablernas lÄning (borrow checker). Rust Àr ocksÄ mer utbrett Àn det nuvarande sprÄket OCaml som anvÀnds i XAPI, vilket kommer att underlÀtta rekryteringen av nya utvecklare till projektet.
I det första steget planeras det att utveckla en ersÀttning för flera komponenter för att testa processerna och förbereda grunden för att byta ut andra delar av programstacken. Bland annat kommer verktygen för Linux-gÀster att skrivas om pÄ Rust, dÀr man för nÀrvarande anvÀnder sprÄket Go, samt bakgrundsprocessen för insamling av mÀtvÀrden, som Àr skriven pÄ OCaml.
Behovet av att omarbeta Linux-gÀsterverktygen (xe-guest-utilities) beror pÄ kvalitetsproblem med koden och utvecklingen utanför Xen-projektet under överinseende av Cloud Software Group, vilket gör det svÄrt att skapa paket och pÄverka utvecklingen frÄn gemenskapen. Den nya versionen av verktyget (xen-guest-agent) planeras att skapas helt frÄn grunden, med mÄlet att göra det sÄ enkelt som möjligt och separera agentens logik frÄn biblioteken. Bakgrundsprocessen för insamling av mÀtvÀrden (rrdd) har beslutats att omarbetas eftersom den Àr kompakt och avskild, vilket underlÀttar experiment med anvÀndningen av det nya sprÄket vid utveckling.
NÀsta Är kan arbetet pÄbörjas för att utveckla en komponent av xenopsd-ng i Rust, vilket kommer att optimera arkitekturen av programvarustacken. Huvudidén Àr att koncentrera arbetet med lÄgnivÄ-API:er i en komponent och organisera tillhandahÄllandet av alla hög nivÄ-API:er till övriga komponenter i stacken genom den.
Den nuvarande arkitekturen av Xen-stacken:

Den föreslagna arkitekturen av Xen-stacken baserad pÄ xenopsd-ng:

KĂ€lla: opennet.ru
