Выпуск гипервизора Xen 4.21

После 8 месяцев разработки опубликован релиз свободного гипервизора Xen 4.21. В разработке нового выпуска приняли участие такие компании, как Amazon, Arm, EPAM Systems и AMD. Код проекта написан на языке Си и распространяется под лицензией GPLv2+. Разработка ведётся в составе организации Linux Foundation.

Ключевые изменения в 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.

Источник: http://www.opennet.ru/opennews/art.shtml?num=64285