Inicijativa za preradu alata Xen hipervizor u Rustu

Programeri platforme XCP-ng, razvijene pod okriljem projekta Xen, objavili su plan za stvaranje zamjene za različite komponente softverskog paketa Xen na jeziku Rust. Nema planova za preradu samog Xen hipervizora; rad je uglavnom usmjeren na preradu pojedinačnih komponenti alata.

Platforma trenutno koristi komponente C, Python, OCaml i Go, od kojih su neke zastarjele i predstavljaju izazove u održavanju. Napominje se da korištenje Rusta neće dovesti do ukupnog povećanja broja uključenih jezika, jer je samo jedna komponenta implementirana u Go, koja se planira prvo zamijeniti.

Rust je odabran kao jezik koji kombinira visokoučinkoviti kod s mogućnostima sigurnosti memorije, ne zahtijeva skupljač smeća, prikladan je za razvoj komponenti niske i visoke razine te pruža dodatne značajke za smanjenje potencijalnih pogrešaka, kao što je posuditi čeker. ). Rust je također rašireniji od jezika OCaml koji se trenutno koristi u XAPI-ju, što će olakšati privlačenje novih programera u projekt.

Prva faza bit će razvoj zamjena za nekoliko komponenti za testiranje procesa i pripremanje osnove za zamjenu ostalih dijelova softverskog paketa. Konkretno, prije svega, Linux gostujući alati, za koje se trenutno koristi jezik Go, i pozadinski proces za prikupljanje metrike, napisan u OCaml-u, bit će ponovno napisani u Rustu.

Potreba za preradom gostujućih alata Linuxa (xe-guest-utilities) uzrokovana je problemima s kvalitetom koda i razvojem izvan Xen projekta pod kontrolom Cloud Software Group, što otežava pakiranje paketa i utjecaj zajednice na razvoj. Planiraju stvoriti novu verziju alata (xen-guest-agent) potpuno od nule, čineći ga što jednostavnijim i odvajajući logiku agenta od knjižnica. Odlučeno je preraditi pozadinski proces za prikupljanje metrike (rrdd) budući da je kompaktan i odvojen, što pojednostavljuje eksperimente s korištenjem novog jezika tijekom razvoja.

Sljedeće godine mogao bi započeti rad na razvoju komponente xenopsd-ng u Rustu, koja će optimizirati arhitekturu softverskog skupa. Glavna ideja je koncentrirati rad s API-jima niske razine u jednoj komponenti i organizirati pružanje svih API-ja visoke razine drugim komponentama stoga kroz nju.

Trenutna Xen stack arhitektura:

Inicijativa za preradu alata Xen hipervizor u Rustu

Predložena Xen stack arhitektura temeljena na xenopsd-ng:

Inicijativa za preradu alata Xen hipervizor u Rustu


Izvor: opennet.ru

Dodajte komentar