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

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Ответить
Аватара пользователя
rssbot
Бот
Сообщения: 6002
ОС: gnu/linux

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

Сообщение rssbot »

Разработчики платформы 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:
Изображение














Источник: https://www.opennet.ru/opennews/art.shtml?num=58815
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 18.03.2023 17:19, всего редактировалось 2 раза.
Причина: Updated upstream
Спасибо сказали:
Ответить