I understood that earlier on there was a "libqemu"
library, using which an ordinary userspace application could allocate a
qemu virtual machine and get it in a pointer/handle representation, run
it as long as it wanted to, and intercept any activity from or to it in
detail.
This is a *great* feature.
Does it exist today? In case not, are there plans to introduce it now?
I
suppose that it's QEMU and not KVM that should be the entry point for
an app for this purpose, as KVM only is a submodule of QEMU, for
accelerating part of its activity, correct?
The API functionality I'd want is: * Open or close machine * Monitor RAM consumption *
Execute machine for specified number of milliseconds, or until the
machine somehow marks it's sleeping (does Linux and other OS:es signal
this somehow?)
* Ability to feed machine with network and block device input.
Callbacks that receive network output and block device writes/responses
from the machine. I suppose this effectively means to implement an own,
custom nic and block device driver.
Finally, if any callbacks could lead to that the machine execute
procedure returns (i.e. giving a behavior similar to Unix' select() and
read() for picking up new data on sockets), that would be incredibly
good. (If having several machines, there could be infinite recursion
problems if events are passed to a callback instead of as a return.)