On 10/28/2010 08:20 AM, Perry Myers wrote:
Ted,
We've discussed this in the past, but it's come up recently in a different
context, so I wanted to reopen the issue.
The qemu upstream community wants to implement a host to guest
API/transport. We started talking to them about Matahari + QMF over
virtio-serial and are blocked on a specific issue...
QMF Consoles need to be written in C++ (or other higher level languages).
qemu is written in C. The qemu team wants to put the host side of the
functionality into the qemu process itself. For example, qemu would
invoke a guest API call for things like sync-filesystem, reboot, etc
Using QMF, they would need to have a QMF Console written in C++, but
integrated into the C based qemu code. This is problematic for them, and
likely will be problematic for anyone wanting to use Matahari but tied to
C on the Console side.
What we discussed in the past was:
1. Implement a C wrapper on top of the C++ QMF APIs. This would allow
someone to mostly write in C, but they would need to compile C++ code
(or at least link to it)
2. Implement the qpid and QMF Console code in C, and use that as the base
language to create C++, python, etc, wrappers. This would be more
efficient for maintaining multiple language bindings rather than
having each language be a complete re-implementation
Understood that #2 is a challenge (resource constraints), but if we could
provide #1 in the short term, that might help satisfy the qemu community
and get them on board with Matahari.
Thoughts?
Just an update... Steve Dake is going to be working on some HA features
in the upstream cloud management project called
DeltaCloud/Aeolus/CloudEngine (pick your favorite name) :)
As part of that Steve will need a generic C wrapper around the QMF C++
APIs. He's going to do some investigation here and in the end perhaps
will just implement this and push the patches for the C wrappers upstream.
So we'll continue discussion on this topic when Steve has a little more
info.
Perry