19 ноября 2025 года состоялся релиз гипервизора Xen 4.21. Исходный код проекта написан на языке С и опубликован под лицензией GPLv2+. Разработка решения ведётся в составе организации Linux Foundation при участии специалистов из Amazon, Arm, EPAM Systems и AMD. Релиз Xen 4.0.0 состоялся в апреле 2010 года. В сентябре 2020 года гипервизор Xen портировали на Raspberry Pi 4.
По информации OpenNET, основные изменения и дополнения в Xen 4.21:
обеспечена полная поддержка модели устройств Linux stubdomain, позволяющей организовать выполнение компонентов для эмуляции устройств под отдельным непривилегированным пользователем. Модель Linux stubomains разработана проектом QUBES OS и поддерживает использование драйверов эмуляции из свежих выпусков QEMU, а также доступных в QEMU сопутствующих возможностей для гостевых систем;
изменения для систем на базе архитектуры x86:
добавлена поддержка нового алгоритма сжатия структуры PDX (Page inDeX), позволяющего улучшить работу Xen на процессорах Intel Sierra Forest и Granite Rapids при нелинейном отображении физической памяти (sparse memory map), допускающем наличие пустых областей;
добавлена возможность контролировать атрибут кэширования в MTRR (Memory Type Range Registers) для регистра BAR (Base Address Register) базового PCI‑устройства платформы Xen, используемого гостевыми системами в режиме HVM. По умолчанию в MTRR для отражённой памяти PCI‑устройств выставляется атрибут UC (uncacheable), который имеет смысл для реальных PCI‑устройств, но лишь снижает производительность PCI‑устройства платформы Xen;
для процессоров AMD добавлен новый драйвер amd‑cppc/amd‑cppc‑epp, управляющий изменением частоты CPU для достижения оптимальной производительности. В драйвере задействован механизм CPPC (Collaborative Processor Performance Control), который в отличие от acpi‑cpufreq не ограничен тремя уровнями производительности и позволяет более оперативно реагировать на изменение состояния;
в варианте прослойки xenstore‑stubdom, используемой для запуска xenstored без привилегий Dom0, для паравиртуализированных окружений в режиме PVH реализована поддержка live‑обновления;
для Dom0 в режиме PVH реализована поддержка технологии Resizable BAR (Resizable Base Address Register), позволяющей сразу обращаться ко всей памяти устройства PCI Express, а не только в привязке к блокам;
реализована возможность проброса PCI‑устройств в domU‑окружения в режиме HVM (полная аппаратная виртуализация) в конфигурациях, в которых dom0 работает в режиме PVH (гибрид аппаратной виртуализации и паравиртуализации).
изменения для систем на базе архитектуры ARM:
добавлена возможность включения механизма защиты стека (сборка с флагом «‑fstack‑protector»), основанного на добавлении в стек канареечных меток — случайных последовательностей. В случае переполнения буфера в процессе эксплуатации уязвимости канареечная метка оказывается перезаписана другими данными, что приводит к срабатыванию последующей проверки неизменности метки и инициированию аварийного завершения приложения;
добавлена поддержка механизма eSPI (Extended Shared Peripheral Interrupts), предоставляемого контроллерами прерываний GICv3.1;
реализована обработка SMMU (System Memory Management Unit) при пробросе устройств PCIe;
добавлена поддержка хост контроллеров PCI, применяемых в четвёртом поколении SoC Renesas R‑Car;
добавлена начальная поддержка процессоров Cortex‑R52 и Cortex‑R82 с MPU (Memory Protection Unit);
в порте Xen для архитектуры RISC‑V реализована базовая поддержка UART и возможность обработки внешних прерываний (APLIC/IMSIC) в режиме гипервизора;
продолжена реализация требований к разработке безопасных и надёжных программ на языке Си, сформулированных в спецификациях MISRA‑C для критически важных систем;
прекращена поддержка старых версий GCC и Clang, для сборки теперь требуются как минимум версии GCC 5.1, Clang 11, Binutils 2.25 и GNU Make 3.80.
Источник: habr.com