Усилия по переносу гипервизора Xen на архитектуру набора инструкций RISC-V продвинулись — немного — но крупные работы, которые сделали бы оба проекта претендентами на большее количество рабочих нагрузок, все еще находятся в списках дел разработчиков.
The Register предлагает это утверждение после понедельничного поста от Vates — организации, которая дала миру форк Xen XCP-NG и взяла на себя ведущую роль в переносе гипервизора с открытым исходным кодом в мир RISC-V с разрешительной лицензией.
«Одним из самых заметных достижений стала интеграция нескольких серий патчей в промежуточную ветку Xen (что само по себе уже большой успех, учитывая уровень качества кода в Xen)», — начинается пост, в котором добавляется, что «эти патчи в первую очередь направлены на использование общей кодовой базы Xen для сокращения избыточного кода, специфичного для архитектуры. Этот шаг оптимизирует разработку и помогает подготовить кодовую базу к будущему для совместимости с несколькими архитектурами».
В посте приводятся некоторые примеры этих усилий, начиная с реализации «ранее представленных общих макросов обработки из <xen/bug.h>, таких как BUG(), WARN() и других, [которые] теперь можно использовать с минимальным дополнительным кодом».
«Основная задача — определить BUG_INSN, который обеспечивает правильную обработку этих макросов и связанных с ними разделов в файле компоновщика (lds.S). Это упрощение снижает необходимость в сложных, специфичных для архитектуры реализациях», — добавляется в посте.
Значит, это достойный фундамент.
«Чтобы построить полностью функционирующую среду Xen на RISC-V, было введено несколько архитектурно-специфичных заголовочных файлов», — добавляется в сообщении. Некоторые из этих заголовков являются заполнителями, необходимыми для удовлетворения общих зависимостей кода в процессе сборки. Другие добавляют код, необходимый для работы Xen на RISC-V, а именно:
- Ограждения — обеспечение надлежащего порядка доступа к памяти между ядрами ЦП.
- Атомарное сравнение и обмен — необходимы для управления параллельными структурами данных.
- Битовые и атомарные операции — ключевые для манипулирования битами и выполнения атомарных действий между процессорами.
- Операции ввода-вывода– для управления функциями ввода/вывода, критически важными для производительности системы.
Некоторые другие функции уже находятся в разработке – среди них обработка прерываний, отображение дерева устройств, чтобы помочь гипервизору управлять оборудованием, обработка таблиц страниц для управления памятью и расширения для обработки межпроцессорных коммуникаций.
В сообщении говорится, что эти функции «будут представлены в ближайшее время», но также раскрывается, что некоторые важные пункты остаются в списках дел разработчиков. Среди них — сквозное подключение устройств, которое позволит Xen-on-Risc-V получать доступ к физическим устройствам, и эффективная изоляция памяти.
Оба эти фактора необходимы для того, чтобы сочетание Xen и RISC-V стало претендентом на машины и рабочие нагрузки, которые пользуются изоляцией и безопасностью, предоставляемыми виртуальными машинами — серверами, периферийными устройствами и автомобильными комплектами, — но никаких сроков их появления не указано.
Вейтс все же высказал оптимистичный взгляд на будущее этого проекта, написав: «Темпы разработки Xen на RISC-V ускоряются». ®