Распрацоўнікі праекту 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), рухавічок для стварэння і запуску cloud-native прыкладанняў, які выкарыстоўвае Xen, и для пабудовы інфраструктуры віртуалізацыі на партатыўных прыладах.
Дадаткова можна адзначыць ухіленне у Xen. Уразлівасці ,
и
патэнцыйна дазваляюць з гасцёўні сістэмы атрымаць прывілеі хост-акружэння. Праблемы
, ,
,
,
,
и
абмяжоўваюцца здзяйсненнем адмовы ў абслугоўванні.
Крыніца: opennet.ru
