Разработчици на проекти на 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 вече можете да използвате (Edge Virtualization Engine), двигател за създаване и изпълнение на облачни приложения с помощта на Xen, и за изграждане на инфраструктура за виртуализация на преносими устройства.
Допълнително можем да отбележим елиминацията в Xen. Уязвимости ,
и
потенциално позволяват на системата за гост да получи привилегии за среда на хост. проблеми
, ,
,
,
,
и
ограничено до извършване на отказ от услуга.
Източник: opennet.ru
