В гипервизоре 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ограничиваются совершением отказа в обслуживании.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «В гипервизоре Xen реализована поддержка платы Raspberry Pi 4», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.