В гипервизоре Xen реализована поддержка платы Raspberry Pi 4

Разработчики проекта Xen объявили о реализации возможности использования Xen Hypervisor на платах Raspberry Pi 4. Адаптации Xen для работы на прошлых вариантах плат Raspberry Pi мешало применение нестандартного контроллера прерываний, не имеющего поддержки виртуализации. В Raspberry Pi 4 был применён обычный контроллер прерываний GIC-400, поддерживаемый в Xen, и разработчики рассчитывали, что проблем с запуском Xen не будет. Но на деле, всё оказалось не так, как предполагалось, и для обеспечения работы Xen на Raspberry Pi 4 пришлось вносить заметные изменения в код для работы с памятью.

Первые варианты плат Raspberry Pi 4 ограничивали доступ только к адресному пространству первого гигабайта памяти, чего было недостаточно для Dom0. Необходимые изменения были внесены в выпуск Xen 4.14, но сразу всплыла другая проблема — в подсистеме Xen для преобразования виртуальных адресов в физические использовался вызов virt_to_phys, который не срабатывал для всех виртуальных адресов и попытки преобразования некоторых виртуальных адресов завершались ошибкой. Для решения данной проблемы пришлось добавлять другую функцию преобразования адресов.

На этом проблемы не закончились и всплыла особенность в работе DMA — во всех ранее поддерживаемых в Xen платформах (x86, ARM и ARM64) адреса DMA и физические адреса всегда совпадали, но в Raspberry Pi 4 они отличались. Найти решение для данной проблемы оказалось сложнее всего и потребовало разработки патчей для ядра Linux, выполняющих преобразование между физическими адресами и адресами DMA.

Подготовленные исправления вошли в состав ядра Linux 5.9 и теперь Xen признан готовым для организации виртуализации на платах Raspberry Pi 4. В том числе на Raspberry Pi 4 теперь можно использовать EVE (Edge Virtualization Engine), движок для создания и запуска cloud-native приложений, использующий Xen, Linuxkit и Alpine Linux для построения инфраструктуры виртуализации на портативных устройствах.

Дополнительно можно отметить устранение 10 уязвимостей в Xen. Уязвимости CVE-2020-25599,
CVE-2020-25603 и
CVE-2020-25595
потенциально позволяют из гостевой системы получить привилегии хост-окружения. Проблемы
CVE-2020-25601, CVE-2020-25600,
CVE-2020-25596,
CVE-2020-25597,
CVE-2020-25604,
CVE-2020-25598 и
CVE-2020-25602
ограничиваются совершением отказа в обслуживании.

Источник: opennet.ru

Добавить комментарий