Initiativ lanserat för att omarbeta Xen Hypervisor i Rust

Xen

Xen är en hypervisor som tillhandahåller säker isolering, resurskontroll, kvalitetsgarantier och migrering av virtuella maskiner.

mycket XCP-ng plattformsutvecklare, som utvecklas under Xen-projektets vingar, har släppt en plan för att skapa en Rust-ersättning för olika komponenter i mjukvarustacken Xen.

Själva Xen-hypervisorn har ännu inte bearbetats och arbetet är främst inriktat på att omarbeta enskilda komponenter i verktygsuppsättningen.

Plattformen använder för närvarande komponenter i C, Python, OCaml och Go, varav några är föråldrade och orsakar underhållsproblem. Det observeras att Användning av Rust leder inte till en total ökning i antalet inblandade språk, eftersom endast en komponent är implementerad i Go, som planeras att ersättas i första hand.

Förvänta dig självklart inte att vi ska skriva om Xen-hypervisorn och allt i Rust som vårt första försök. Faktum är att vårt mål här är att börja ersätta några av de mindre komponenterna runt det, så att vi kan "odla" själva språket och fundera på hur man byter ut saker block för block, för hela plattformen.

Rust är valt som ett språk som kombinerar hög kodprestanda Resulterar med säkra minnesmöjligheter, kräver inte användning av en sophämtare, är lämplig för utveckling av lågnivå- och högnivåkomponenter, ger ytterligare funktioner för att minska potentiella fel, såsom den variabla låntagaren (lånekontroll). Rust är också mer utbrett än det nuvarande XAPI-språket OCaml, vilket kommer att göra det lättare att locka nya utvecklare till projektet.

I det första steget, det planeras att utveckla ersättningar för olika komponenter cför att lösa processerna och förbereda basen för att ersätta andra delar av mjukvarustacken. För det första kommer Linux-gästverktygen att skrivas om i Rust, för vilket Go-språket för närvarande används, och bakgrundsprocessen för att samla in mätvärden kommer att skrivas i OCaml.

Eftersom rost är säkert och snabbt, vad mer behöver vi? Vi behöver också ett programmeringsspråk som kan fungera på olika nivåer (botten och toppen av stacken). Jag skulle inte lita på att Go eller Python skulle ta itu med saker på låg nivå som vi kan ha i XCP-ng, och på samma sätt inte C för att göra saker på högre nivå. Användningen av Rust ger potentialen att vara överallt i XCP-ng-stacken'.

Dessutom är Rust inte längre ett "nischspråk". Till exempel, även om det är bra, är OCaml (används i XAPI) inte välkänt, vilket minskar våra chanser att enkelt anställa personer med erfarenhet av detta språk. Detta minskar också möjligheten för en öppen källkodsgemenskap att få bidragsgivare. Vi tror att Rust inte kommer att vara ett hinder för det (både anställning och bidrag), förmodligen till och med tvärtom: en drivkraft för att locka fler människor, eftersom det är en "önskad" teknik.

Behovet av att göra om verktygen för linux gästverktyg (xe-guest-utilities) beror på utvecklings- och kodkvalitetsproblem utanför Xen-projektet under kontroll av Cloud Software Group, vilket försvårar förpackningar och community-inflytande på utveckling. Det är planerat att skapa en ny variant av verktygsuppsättningen ( xen-guest-agent ) helt från början, hålla den så enkel som möjligt och separera agentlogiken från biblioteken. Vi bestämde oss för att omarbeta back-end-processen för att samla in mätvärden ( rrdd ), eftersom den är kompakt och separat, vilket gör det enkelt att experimentera med att använda ett nytt språk under utveckling.

Nästa år startar troligen arbetet med utvecklingen av xenopsd-ng-komponenten i Rust, vilket gör det möjligt för oss att optimera arkitekturen för mjukvarustacken. Huvudidén är att koncentrera arbetet med ett lågnivå-API i en komponent och organisera tillhandahållandet av alla högnivå-API:er till resten av stacken genom den.

Slutligen, om du är intresserad av att veta mer om det kan du läsa detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.