Xen auf Cortex-A15 / ARMv7 mit Virtualisierungs-Erweiterungen funktioniert schon ganz ordentlich
Stefano Stabellini hat tolle Neuigkeiten an der Virtualisierungs-Front zu vermelden. Vor wenigen Wochen haben er und einige weitere Entwickler angefangen, einen Proof-of-Concept-Hypervisor auf Cortex-A15 zu portieren. Dieser benutzt und braucht die ARMv7-Virtualisierungs-Erweiterungen. Mit dem Projekt will man in erster Linien herausfinden, wie man ARMv7 und höher und Xen unter einen Hut bringen kann.
Nun kann man tolle Erfolge verzeichnen und man hat nun einen schon brauchbaren Xen-Port für Cortex-A15. Der Port basiert auf xen-unstable (HG CS 8d6edc3d26d2) und wurde komplett neu geschrieben. Laut eigener Aussage haben die Entwickler in weniger als drei Monaten erreicht, dass sich ein eine auf Linux-3.0 basierte virtuelle Maschine (dom0) in eine Shell-Eingabeaufforderung auf einem “ARM Architecture Envelope Model” starten lässt. Konfiguriert ist die Sache, eine A15-basierte Versatile Express zu emulieren. An dieser Stelle bedankt sich Stabellini bei ARM für die Unterstützung. Als nächsten Schritt möchte man die Tools portieren und mehrere Gäste laufen lassen.
Der Code benötigt Virtualisierungs-, LPAE- und GIC-Unterstützung. Aus diesem Grund wird er auch auf nichts älterem als auf einer Cortex-A15 laufen. Auf der anderen Seite halte das den Code sehr klein. Somit würde dieser einfach zu lesen und leicht verständlich sein. Ebenso müsse man nur geringfügige Änderungen am Linux-Kernel vornehmen. Dieser muss lediglich PV-Treiber unterstützen.
Derzeit sei das Hauptziel Versatile Express und Cortex-A15. Dennoch möchte man künftig auch andere Maschinen und andere ARMv7 unterstützen, die CPUs mit Virtualisierungs-Erweiterungen mit sich bringen. Ebenso schiele man in Richtung ARMv8- und 64-Bit-Unterstützung.
Weil der Code so klein ist, möchte man diesen so schnell wie möglich in xen-unstable einbringen. Es gebe allerdings noch raue Ecken und Kanten, an denen man feilen müsse. Tester oder Mithelfer seien sehr gerne gesehen. Sie finden den Code auf xenbits.xen.org (Git) und das komplette diff hier.
Der Erfolg in so kurzer Zeit war unter anderem wegen Samsungs anhaltender Bestrebungen möglich, XEN ARM in xen-unstable einzubringen. Samsungs XenARM erlaubt Virtualisierung von Xen auf ARM CPUs auch ohne Virtualisierungs-Erweiterungen und unterstützt traditionelle PV-Gäste. Ebenso bedankt er sich bei Tim Deegan und Ian Campbell. Ohne deren großartigen Beiträge wäre das Projekt niemals in so kurzer Zeit aus dem Boden gestampft worden.