Initiativ för att omarbeta Xen hypervisor-verktygslådan i Rust

Utvecklarna av XCP-ng-plattformen, utvecklad under Xen-projektets vingar, har publicerat en plan för att skapa en ersättning för olika komponenter i Xen-programstapeln på Rust-språket. Det finns inga planer på att omarbeta själva Xen-hypervisorn, arbetet är främst inriktat på att omarbeta enskilda komponenter i verktygslådan.

Plattformen använder för närvarande C-, Python-, OCaml- och Go-komponenter, av vilka några är föråldrade och utgör underhållsutmaningar. Det noteras att användningen av Rust inte kommer att leda till en total ökning av antalet inblandade språk, eftersom endast en komponent är implementerad i Go, som planeras att bytas ut först.

Rust valdes som ett språk som kombinerar högpresterande kod med minnessäkra möjligheter, inte kräver en sophämtare, är lämpligt för att utveckla både lågnivå- och högnivåkomponenter och ger ytterligare funktioner för att minska potentiella fel, t.ex. låna checker. ). Rust är också mer utbrett än OCaml-språket som för närvarande används i XAPI, vilket kommer att göra det lättare att locka nya utvecklare till projektet.

Den första fasen kommer att vara att utveckla ersättningar för flera komponenter för att testa processer och förbereda underlag för utbyte av andra delar av mjukvarustacken. I synnerhet kommer först och främst Linux-gästverktygen, för vilka Go-språket för närvarande används, och bakgrundsprocessen för insamling av mätvärden, skriven i OCaml, att skrivas om i Rust.

Behovet av att omarbeta Linux gästverktyg (xe-guest-utilities) orsakas av problem med kodkvalitet och utveckling utanför Xen-projektet under kontroll av Cloud Software Group, vilket gör det svårt att paketera paket och samhällets inflytande på utvecklingen. De planerar att skapa en ny version av verktygslådan (xen-guest-agent) helt från början, vilket gör det så enkelt som möjligt och separerar agentlogiken från biblioteken. Det beslutades att omarbeta bakgrundsprocessen för att samla in metriker (rrdd) eftersom den är kompakt och separat, vilket förenklar experiment med att använda ett nytt språk under utveckling.

Nästa år kan arbetet påbörjas med utvecklingen av xenopsd-ng-komponenten i Rust, som kommer att optimera arkitekturen i mjukvarustacken. Huvudidén är att koncentrera arbetet med lågnivå-API:er i en komponent och organisera tillhandahållandet av alla högnivå-API:er till andra komponenter i stacken genom den.

Aktuell Xen-stackarkitektur:

Initiativ för att omarbeta Xen hypervisor-verktygslådan i Rust

Föreslagen Xen-stackarkitektur baserad på xenopsd-ng:

Initiativ för att omarbeta Xen hypervisor-verktygslådan i Rust


Källa: opennet.ru

Lägg en kommentar