qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: Modular qemu?


From: Jan Kiszka
Subject: [Qemu-devel] Re: Modular qemu?
Date: Fri, 05 Dec 2008 19:56:23 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

Avi Kivity wrote:
> Anthony Liguori wrote:
>> Plugins are not the solution though.
> 
> What about non-plugin dlopen()?  Right now building qemu (with all
> options enabled) requires a large amount of libraries, hence a lot of
> dependencies.  For example, a server setup that will only be used with
> -vnc needs to have SDL installed.  This will only get worse with opengl
> support.
> 
> I'm thinking of something similar to linux kernel modules: no backward
> compatible ABI, simply load-on-demand functionality that can be packaged
> separately to reduce dependencies.  With kvm integrated, we could even
> make the cpu emulator an optional loadable module.

At work, we are currently using this model to separate a very special
machine emulation from the latest and greatest qemu (or kvm-userspace)
core. We only patch the core with support to load "machine libraries"
that provide additional QEMUMachine definitions. The idea is definitely
_not_ to distribute a binary-only machine library with the product one
day, but to ease the build process. We also face the unavoidable API
breakages from time to time, and the whole things is not really clean
due to callbacks into the core all over the place, but otherwise it does
its job.

As it is not clean and we are still busy with more important stuff, I
haven't posted any RFC yet. The biggest issue, besides finding a
consensus if such pluging concepts are desired at all, is working out
clean (but not necessarily stable) APIs for calling from the plugins
into the core. Right now we simply export everything.

Jan

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]