Xen Hypervisor Toolkit Rework Initiative-ը Rust-ում

Xen նախագծի թևի ներքո մշակված XCP-ng պլատֆորմի մշակողները պլան են հրապարակել Rust լեզվով Xen ծրագրային փաթեթի տարբեր բաղադրիչների փոխարինող ստեղծելու համար: Ինքը՝ Xen հիպերվիզորը վերամշակելու պլաններ չկան, աշխատանքը կենտրոնացած է հիմնականում գործիքակազմի առանձին բաղադրիչների վերամշակման վրա:

Պլատֆորմը ներկայումս օգտագործում է C, Python, OCaml և Go բաղադրիչներ, որոնցից մի քանիսը հնացած են և սպասարկման խնդիրներ են ներկայացնում: Նշվում է, որ Rust-ի օգտագործումը չի հանգեցնի ներգրավված լեզուների թվի ընդհանուր աճի, քանի որ Go-ում ներդրված է միայն մեկ բաղադրիչ, որը նախատեսվում է նախ փոխարինել:

Rust-ը ընտրվել է որպես լեզու, որը համատեղում է բարձր արդյունավետության կոդը և հիշողության համար անվտանգ հնարավորությունները, չի պահանջում աղբահանություն, հարմար է ինչպես ցածր մակարդակի, այնպես էլ բարձր մակարդակի բաղադրիչների մշակման համար և ապահովում է լրացուցիչ հնարավորություններ՝ հնարավոր սխալները նվազեցնելու համար, օրինակ՝ պարտքի ստուգիչ): Rust-ը նաև ավելի տարածված է, քան OCaml լեզուն, որն այժմ օգտագործվում է XAPI-ում, ինչը կհեշտացնի նոր մշակողների ներգրավումը դեպի նախագիծ:

Առաջին փուլը լինելու է մի քանի բաղադրիչների փոխարինման մշակումը` գործընթացները փորձարկելու և ծրագրային փաթեթի այլ մասերի փոխարինման հիմքը նախապատրաստելու համար: Մասնավորապես, առաջին հերթին, Linux-ի հյուր գործիքները, որոնց համար ներկայումս օգտագործվում է Go լեզուն, և OCaml-ով գրված չափումների հավաքագրման ֆոնային գործընթացը, կվերագրվեն Rust-ում։

Linux-ի հյուրերի գործիքները (xe-guest-utilities) վերամշակելու անհրաժեշտությունը պայմանավորված է Cloud Software Group-ի վերահսկողության ներքո գտնվող Xen Project-ից դուրս կոդի որակի և մշակման հետ կապված խնդիրների պատճառով, ինչը դժվարացնում է փաթեթների փաթեթավորումը և համայնքի ազդեցությունը զարգացման վրա: Նրանք նախատեսում են ամբողջովին զրոյից ստեղծել գործիքակազմի նոր տարբերակը (xen-guest-agent)՝ հնարավորինս պարզեցնելով այն և առանձնացնելով գործակալի տրամաբանությունը գրադարաններից։ Որոշվեց վերամշակել չափումների հավաքման ֆոնային գործընթացը (rrdd), քանի որ այն կոմպակտ է և առանձին, ինչը հեշտացնում է մշակման ընթացքում նոր լեզվի օգտագործման փորձերը:

Հաջորդ տարի կարող է սկսվել աշխատանքը Rust-ում xenopsd-ng բաղադրիչի մշակման վրա, որը կօպտիմալացնի ծրագրային փաթեթի ճարտարապետությունը: Հիմնական գաղափարը ցածր մակարդակի API-ների հետ աշխատանքը կենտրոնացնելն է մեկ բաղադրիչում և կազմակերպել բոլոր բարձր մակարդակի API-ների տրամադրումը ստեկի այլ բաղադրիչներին դրա միջոցով:

Ընթացիկ Xen stack ճարտարապետությունը.

Xen Hypervisor Toolkit Rework Initiative-ը Rust-ում

Առաջարկվող Xen stack ճարտարապետություն՝ հիմնված xenopsd-ng-ի վրա.

Xen Hypervisor Toolkit Rework Initiative-ը Rust-ում


Source: opennet.ru

Добавить комментарий