Инициатива по переработке инструментария для гипервизора Xen на языке Rust

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 2411
Зарегистрирован: 20.08.2022

#

Инициатива по переработке инструментария для гипервизора Xen на языке Rust
Дата публикации:Sat, 18 Mar 2023 09:24:00 +0300




Разработчики платформы XCP-ng, развиваемой под крылом проекта Xen, опубликовали план по созданию на языке Rust замены различных компонентов программного стека Xen. Непосредственно гипервизор Xen пока перерабатывать не собираются, работа сосредоточена в основном на переделке отдельных компонентов инструментария.




В настоящее время в платформе используются компоненты на языках C, Python, OCaml и Go, некоторые из которых устарели и создают проблемы с сопровождением. Отмечается, что применение Rust не приведёт к общему увеличению числа задействованных языков, так как на Go реализован только один компонент, который планируется заменить в первую очередь.





Язык Rust выбран как сочетающий высокую производительность результирующего кода с возможностями для безопасной работы с памятью, обходящийся без применения сборщика мусора, пригодный для разработки как низкоуровневых, так и высокоуровневых компонентов, предоставляющий дополнительные возможности для сокращения потенциальных ошибок, такие как проверка заимствования переменных (borrow checker). Rust также более распространён, чем ныне применяемый в XAPI язык OCaml, что упростит привлечение в проект новых разработчиков.





На первом этапе планируется разработать замену для нескольких компонентов, чтобы отработать процессы и подготовить базу для замены других частей программного стека. В частности, в первую очередь на Rust будет переписан инструментарий Linux guest tools, для которого сейчас используется язык Go, и фоновый процесс для сбора метрик, написанный на OCaml.



Необходимость переработки Linux guest tools (xe-guest-utilities) вызвана проблемами с качеством кода и развитием вне проекта Xen Project под контролем Cloud Software Group, что затрудняет формирование пакетов и влияние сообщества на разработку. Новый вариант инструментария (xen-guest-agent) планируют создать полностью с нуля, сделав простым насколько это возможно, и отделив логику агента от библиотек.
Фоновый процесс для сбора метрик (rrdd) решено переработать так как он является компактным и обособленным, что упрощает проведение экспериментов по использованию нового языка при разработке.



В следующем году возможно начнётся работа по разработке на Rust компонента xenopsd-ng, который позволит оптимизировать архитектуру программного стека. Основная идея в том, что бы сосредоточить в одном компоненте работу с низкоуровневым API и организовать предоставление через него всех высокоуровневых API остальным компонентам стека.



Текущая архитектура стека Xen:
Изображение


Предлагаемая архитектура стека Xen на базе xenopsd-ng:
Изображение













Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58815

Жизнь за Нер'зула!

Ответить