Ontwikkelaars van het Xen-project over de implementatie van de mogelijkheid om Xen Hypervisor te gebruiken op Raspberry Pi 4-borden. De aanpassing van Xen voor gebruik op eerdere versies van Raspberry Pi-borden werd bemoeilijkt door het gebruik van een niet-standaard interruptcontroller die geen ondersteuning bood voor virtualisatie. Op de Raspberry Pi 4 is een gebruikelijke GIC-400-interruptcontroller toegepast, die wordt ondersteund door Xen, en de ontwikkelaars gingen ervan uit dat er geen problemen met de opstart van Xen zouden zijn. Maar in werkelijkheid bleek dat het niet zo eenvoudig was, en om Xen op de Raspberry Pi 4 werkend te krijgen, moesten aanzienlijke wijzigingen in de code voor geheugenbeheer worden aangebracht.
De eerste versies van Raspberry Pi 4 beperkten de toegang tot slechts het adresseringsgebied van de eerste gigabyte geheugen, wat onvoldoende was voor Dom0. De nodige wijzigingen zijn aangebracht in de release van Xen 4.14, maar er dook meteen een ander probleem op ā in de Xen-subsys werd de virt_to_phys-aanroep gebruikt voor de conversie van virtuele naar fysieke adressen, wat niet werkte voor alle virtuele adressen en pogingen om sommige virtuele adressen te converteren resulteerden in een fout. Om dit probleem op te lossen, moest er een andere functie voor adresconversie worden toegevoegd.
Maar de problemen stopten daar niet, er dook een eigenaardigheid in het DMA-werk op ā op alle eerdere platforms die door Xen werden ondersteund (x86, ARM en ARM64) kwamen DMA-adressen en fysieke adressen altijd overeen, maar op Raspberry Pi 4 waren ze verschillend. Een oplossing voor dit probleem vinden bleek de grootste uitdaging en vereiste het ontwikkelen van patches voor de Linux-kernel die de conversie tussen fysieke adressen en DMA-adressen uitvoerden.
De voorbereide correcties zijn opgenomen in de Linux-kernel 5.9 en nu wordt Xen erkend als klaar om virtualisatie op Raspberry Pi 4-borden te implementeren. Bovendien kan op de Raspberry Pi 4 nu worden gebruikt (Edge Virtualization Engine), een engine voor het creƫren en draaien van cloud-native applicaties, die Xen gebruikt, en voor het opbouwen van een virtualisatie-infrastructuur op draagbare apparaten.
Daarnaast kan ook worden opgemerkt dat er in Xen zijn opgelost. De kwetsbaarheden ,
en
kunnen potentiƫel privileges van de hostomgeving verkrijgen vanuit het gastensysteem. De problemen
, ,
,
,
,
en
beperken zich tot het veroorzaken van een denial of service.
Bron: opennet.ru
