Xen Hypervisor Toolkit Rework Initiative i Rust

Utviklerne av XCP-ng-plattformen, utviklet under vingen til Xen-prosjektet, har publisert en plan for å lage en Rust-erstatning for ulike komponenter i Xen-programvarestabelen. Selve Xen-hypervisoren skal ennå ikke behandles, arbeidet er hovedsakelig fokusert på å omarbeide individuelle komponenter i verktøysettet.

Plattformen bruker for tiden komponenter i C, Python, OCaml og Go, hvorav noen er utdaterte og forårsaker vedlikeholdsproblemer. Det bemerkes at bruken av Rust ikke vil føre til en generell økning i antall involverte språk, siden bare én komponent er implementert i Go, som er planlagt erstattet i første omgang.

Rust ble valgt for å kombinere høy utgangskodeytelse med minnesikre funksjoner, være søppelsamlerfri, egnet for å utvikle både lavnivå- og høynivåkomponenter, og gi tilleggsfunksjoner for å redusere potensielle feil, for eksempel variabel lånekontroll (lån kontrollør). ). Rust er også mer utbredt enn det nåværende XAPI-språket OCaml, noe som vil gjøre det lettere å tiltrekke seg nye utviklere til prosjektet.

I første omgang planlegges det å utvikle erstatninger for flere komponenter for å utarbeide prosessene og forberede grunnlaget for å erstatte andre deler av programvarestabelen. Spesielt vil først og fremst Linux-gjesteverktøyene skrives om i Rust, som Go-språket brukes for for tiden, og bakgrunnsprosessen for innsamling av beregninger, skrevet i OCaml.

Linux-gjesteverktøyene (xe-guest-utilities) må redesignes på grunn av kodekvalitetsproblemer og utvikling utenfor Xen-prosjektet under kontroll av Cloud Software Group, noe som gjør det vanskelig for pakking og fellesskapsinnflytelse på utvikling. En ny versjon av verktøysettet (xen-guest-agent) er planlagt opprettet helt fra bunnen av, noe som gjør det så enkelt som mulig og skiller agentlogikken fra bibliotekene. Det ble besluttet å omarbeide bakgrunnsprosessen for innsamling av metrikk (rrdd) da den er kompakt og separat, noe som gjør det lettere å eksperimentere med bruk av et nytt språk under utvikling.

Neste år starter trolig arbeidet med utviklingen av xenopsd-ng-komponenten i Rust, som vil tillate oss å optimere arkitekturen til programvarestabelen. Hovedideen er å konsentrere arbeidet med en lavnivå API i én komponent og organisere leveringen av alle høynivå APIer til resten av stabelen gjennom den.

Gjeldende Xen stack-arkitektur:

Xen Hypervisor Toolkit Rework Initiative i Rust

Foreslått Xen stack-arkitektur basert på xenopsd-ng:

Xen Hypervisor Toolkit Rework Initiative i Rust


Kilde: opennet.ru

Legg til en kommentar