В гипервизоре Xen реализована поддержка платы Raspberry Pi 4
30 сентября 2020 года
Разработчики проекта 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ограничиваются совершением отказа в обслуживании.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.