Inicijativa da se preradi Xen hipervizorski alat u Rustu

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

Platforma trenutno koristi C, Python, OCaml i Go komponente, od kojih su neke zastarjele i predstavljaju izazove za održavanje. Napominje se da upotreba Rusta neće dovesti do ukupnog povećanja broja uključenih jezika, budući da je u Go implementirana samo jedna komponenta, koju je planirano prvo zamijeniti.

Rust je izabran kao jezik koji kombinuje kod visokih performansi sa memorijskim mogućnostima, ne zahteva sakupljač smeća, pogodan je za razvoj komponenti niskog i visokog nivoa i pruža dodatne karakteristike za smanjenje potencijalnih grešaka, kao što je pozajmi ček. ). Rust je takođe rasprostranjeniji od OCaml jezika koji se trenutno koristi u XAPI, što će olakšati privlačenje novih programera u projekat.

Prva faza će biti razvoj zamjene za nekoliko komponenti kako bi se testirali procesi i pripremila osnova za zamjenu ostalih dijelova softverskog steka. Konkretno, prije svega, Linux gostujući alati, za koje se trenutno koristi Go jezik, i pozadinski proces za prikupljanje metrike, napisan u OCaml-u, bit će prepisani u Rustu.

Potreba za preradom Linux alata za goste (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 da kreiraju novu verziju kompleta alata (xen-guest-agent) potpuno od nule, čineći ga što jednostavnijim i odvajajući logiku agenta od biblioteka. Odlučeno je da se preradi pozadinski proces za prikupljanje metrike (rrdd) budući da je kompaktan i odvojen, što pojednostavljuje eksperimente korišćenja novog jezika tokom razvoja.

Sljedeće godine može početi rad na razvoju xenopsd-ng komponente u Rustu, koja će optimizirati arhitekturu softverskog steka. Glavna ideja je koncentrirati rad sa API-jima niskog nivoa u jednoj komponenti i kroz nju organizirati pružanje svih API-ja visokog nivoa ostalim komponentama steka.

Trenutna arhitektura Xen steka:

Inicijativa da se preradi Xen hipervizorski alat u Rustu

Predložena arhitektura Xen steka zasnovana na xenopsd-ng:

Inicijativa da se preradi Xen hipervizorski alat u Rustu


izvor: opennet.ru

Dodajte komentar