2016-09-06 1 views
0

Ich muss ein Stück Code in VMX-non root-Modus ausführen, mit KVM API. Dies kann einfach unter Verwendung von KVM API von einem Benutzer-Space-Programm durchgeführt werden. Aber ich muss das aus dem Kernelraum selbst tun. Das Senden der erforderlichen Daten an den Benutzerbereich und das Ausführen eines Benutzerraumprogramms ist keine Option.Wie wird die KVM-API (Kernel Base Virtual Machine) aus dem Kernel-Bereich verwendet?

This Post erwähnt eine Art und Weise ioctl Anrufe aus dem Kernraum auszustellen, und da der KVM-API ioctl verwendet mit KVM-Kernel-Modul zu interagieren nennt, scheint es wie ein plausible Ansatz. Allerdings konnte ich den Ansatz nicht verstehen und bin mir nicht sicher, ob es fehlerfrei funktioniert.

Stellt KVM eine API bereit, die vom Kernelraum selbst ausgeführt werden kann? Wenn nicht, wie kann ich ein Benutzer-Space-Programm erstellen, das benötigte Daten vom Kernel-Space (viele Datenstrukturen) erhält und dann dasselbe tut?

Antwort

0

Es gibt bereits Qemu, ein Benutzer-Space-Programm, das über ioctls mit KVM interagiert. Alles, was Sie brauchen, wird von Qemu unterstützt.

Sie können Qemu einfach erweitern, um Ihre KVM-Anwendung einfach als Qemu-Befehl zu implementieren.

Werfen Sie einen Blick auf die Datei hmp-commands.hx im Qemu-Stammverzeichnis für Beispiele.

Verwandte Themen