Initiatief gelanceerd om Xen Hypervisor in Rust te herwerken

Xen

Xen is een hypervisor die zorgt voor veilige isolatie, resourcebeheer, quality of service-garanties en migratie van virtuele machines.

De XCP-ng-platformontwikkelaars, dat is ontwikkeld onder de vleugels van het Xen-project, hebben een plan uitgebracht om een ​​Rust-vervanging voor te maken verschillende componenten van de softwarestack Xen.

De Xen-hypervisor zelf moet nog worden verwerkt en het werk is voornamelijk gericht op het herwerken van individuele componenten van de toolset.

Het platform gebruikt momenteel componenten in C, Python, OCaml en Go, waarvan sommige verouderd zijn en onderhoudsproblemen veroorzaken. Men constateert dat het gebruik van Rust zal niet leiden tot een algehele toename in het aantal betrokken talen, aangezien er slechts één component is geïmplementeerd in Go, dat in de eerste plaats zal worden vervangen.

Verwacht natuurlijk niet van ons dat we de Xen-hypervisor en alles in Rust herschrijven als onze eerste poging. In feite is ons doel hier om te beginnen met het vervangen van enkele van de kleinere componenten eromheen, waardoor we de taal zelf kunnen "groeien" en kunnen nadenken over hoe we dingen blok voor blok kunnen vervangen, voor het hele platform.

Rust is gekozen als een taal die hoge codeprestaties combineert Dit resulteert in veilige geheugenmogelijkheden, vereist geen gebruik van een vuilnisman, is geschikt voor het ontwikkelen van low-level en high-level componenten, biedt extra functies om potentiële fouten te verminderen, zoals de variabele lener (leningcontrole). Rust is ook meer verspreid dan de huidige XAPI-taal OCaml, waardoor het gemakkelijker wordt om nieuwe ontwikkelaars voor het project aan te trekken.

In de eerste fase het is de bedoeling vervangingen te ontwikkelen voor verschillende componenten com de processen op te lossen en de basis voor te bereiden om andere delen van de softwarestack te vervangen. In het bijzonder zullen ten eerste de Linux-gasttools worden herschreven in Rust, waarvoor momenteel de Go-taal wordt gebruikt, en het achtergrondproces voor het verzamelen van statistieken zal worden geschreven in OCaml.

Aangezien Rust veilig en snel is, wat hebben we nog meer nodig? We hebben ook een programmeertaal nodig die op verschillende niveaus kan werken (bottom en top of the stack). Ik zou Go of Python niet vertrouwen om dingen van een laag niveau af te handelen die we in XCP-ng kunnen hebben, en evenmin C om dingen van een hoger niveau te doen. Het gebruik van Rust biedt de potentie om te zijn en todas partes in de XCP-ng-stack'.

Rust is ook niet langer een "niche"-taal. Zelfs als het bijvoorbeeld geweldig is, is OCaml (gebruikt in XAPI) niet erg bekend, wat onze kansen verkleint om gemakkelijk mensen met ervaring in deze taal aan te nemen. Dit vermindert ook het vermogen van een open source-community om bijdragers te werven. We denken dat Rust daar geen belemmering voor zal zijn (zowel werving als bijdragen), waarschijnlijk zelfs het tegenovergestelde: een drijfveer om meer mensen aan te trekken, aangezien het een "gewilde" technologie is.

De noodzaak om opnieuw te ontwerpen de tools van linux gasttools (xe-guest-hulpprogramma's) is te wijten aan ontwikkelings- en codekwaliteitsproblemen buiten het Xen-project onder de controle van Cloud Software Group, wat verpakking en gemeenschapsinvloed op ontwikkeling moeilijk maakt. Het is de bedoeling om een ​​nieuwe variant van de toolset ( xen-guest-agent ) helemaal vanaf nul te maken, deze zo eenvoudig mogelijk te houden en de agentlogica te scheiden van de bibliotheken. We hebben besloten om het back-endproces voor het verzamelen van statistieken ( rrdd ) te herwerken, omdat het compact en gescheiden is, waardoor het gemakkelijk is om te experimenteren met het gebruik van een nieuwe taal tijdens de ontwikkeling.

Volgend jaar wordt waarschijnlijk gestart met de ontwikkeling van de xenopsd-ng-component in Rust, waarmee we de architectuur van de softwarestack kunnen optimaliseren. Het belangrijkste idee is om het werk met een low-level API in één component te concentreren en de levering van alle high-level API's aan de rest van de stack er doorheen te organiseren.

Ten slotte, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.