4 марта 2025 года состоялся релиз гипервизора Xen 4.20. Исходный код проекта написан на языке С и опубликован под лицензией GPLv2+. Разработка решения ведётся в составе организации Linux Foundation при участии специалистов из Amazon, Arm, EPAM Systems и AMD. Релиз Xen 4.0.0 состоялся в апреле 2010 года. В сентябре 2020 года гипервизор Xen портировали на Raspberry Pi 4.
По информации OpenNET, основные изменения и дополнения в Xen 4.20:
сокращено число зависимостей у библиотеки xenstore;
продолжена реализация требований к разработке безопасных и надёжных программ на языке Си, сформулированных в спецификациях MISRA‑C для критически важных систем;
продолжена работа над пробросом доступа к PCI на системах ARM;
в порте Xen для архитектуры RISC‑V представлена поддержка настройки управления памятью, а также маппинга и разбора Device Tree;
обновления для систем на базе архитектуры x86:
в утилиту «xl» добавлены команды «suspend» и «resume» для перевода виртуальной машины в спящий режим (эквивалент перевода компьютера в режим сна). Для операционной системы в гостевом окружении симуляция спящего режима может быть более естественным процессом, чем остановка выполнения командой «pause»;
добавлена поддержка технологии Intel EPT Paging‑Write, позволяющей повысить производительность за счёт снижения числа передачи управления гипервизору из виртуальной машины со сменой контекста (VM‑exit) при работе с расширенными таблицами страниц памяти (EPT — Extended Page Table). Оптимизация сводится к выставлению в EPT‑записях бита PWA (paging‑write access), разрешающего операции записи в память без ресурсоёмкой проверки прав доступа EPT, требующей переключения контекста;
добавлена поддержка процессоров AMD на базе микроархитектуры Zen 5, имеющих аппаратную защиту от уязвимости SRSO (Speculative Return Stack Overflow, кодовое имя Inception) в механизме спекулятивного выполнения инструкций;
добавлена опция командной строки «wallclock» для выбора источника времени. Может принимать значения: auto, xen (Xen shared_info), cmos (CMOS RTC) и efi (метод EFI_GET_TIME из EFI‑прошивки);
драйвер контроллера прерываний xAPIC переведён на использование физического режима обработки внешних прерываний («physical destination») вместо логического режима («logical destination»);
прекращена поддержка кластерного режима x2APIC (Cluster Mode) для внешних прерываний. Оставлена поддержка физического (x2APIC Physical) и смешанного (x2APIC Mixed) режимов;
прекращена поддержка опции командной строки «ucode=allow‑same»;
прекращена поддержка процессоров Intel Xeon Phi.
обновления для систем на базе архитектуры ARM:
добавлена поддержка «раскраски» кэша последнего уровня (LLC, Last Level Cache) для выделения смежных страниц памяти с целью повышения эффективности кэширования;
добавлена экспериментальная поддержка архитектуры Armv8-R, предлагающей дополнительные расширения для виртуализации;
добавлена поддержка семейства процессоров NXP S32G3. Реализован драйвер для UART‑контроллера NXP LINFlexD, используемого в процессорах NXP S32;
добавлен слой для обработки запросов ARM SCMI (System Control and Management Interface) поверх SMC (Secure Monitor Call), что позволяет перенаправлять подобные вызовы обработчику в прошивке, используя разделяемую память.
Источник новости: habr.com