From: "John R. Hogerhuis" <jhoger@pobox.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Qemu development schedule?
Date: Thu, 02 Sep 2004 18:35:58 -0700 [thread overview]
Message-ID: <1094175358.16486.227.camel@aragorn> (raw)
In-Reply-To: <20040903001317.GB22689@jbrown.mylinuxbox.org>
With a control API the console stuff would be rewritten to access the
core via control API.
FWIW I think a control API makes a lot of sense. Then GUIs can be added
at will. It also opens the door to making QEMU fully scriptable which
sounds very powerful to me. Imagine being able to start the emulation,
monitor the processor, and pull an image of some portion of RAM or the
display when some condition occurs. Talk about making VmWare play
catch-up!
Here's a rough sketch of the work,
Features:
For now I would take anything that is currently available via the
monitor and divide it into properties and actions. We'd have a couple of
functions and table driven implementation for the property handling.
Very little code. For the actions we just pass through to the core of
QEMU as presently do
Roadbump:
We need to add lifecycle
Some properties can only be modified before the emulation is activated.
So there may be a simple active/inactive state machine, or something
more complex which guards the properties from being diddled at
inappropriate times.
Most of the API is going to be properties which one can get/set. But
given the nature of this being running virtual machines, a lot of those
properties only make sense in certain states. For example, you can't
change the amount of RAM available to a guest after it is launched, but
you can change it any other time. You can get the amount of RAM in use
or associated with a guest any time. So basically there is at least a
simple active/inactive lifecycle, but there may be a more complex
lifecycle state machine. There may be other properties that can be
changed at runtime. Basically anything you can currently manipulate from
the monitor that is not a function call, but just a change of property.
Haven't taken a hard look, most of this probably there in some form, but
may want to give QEMU core would get the following generic interface
init - init qemu
cleanup - cleanup qemu
create - create a vm
destroy - destroy a vm
activate - activate a vm
deactivate - deactivate a vm
prop_get
prop_set
+ you need to add functions for each action which QEMU exposes on the
virtual machine (like power on/off, reset, save state, etc.)
init allows qemu to set up any globals.
activate is what happens after you're done with parameterization
(properties that must be set before the machine is in steady state).
Other related design issues?
-- John.
prev parent reply other threads:[~2004-09-03 1:40 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-30 21:44 [Qemu-devel] Qemu development schedule? Jeebs
2004-08-30 21:59 ` John R. Hogerhuis
2004-08-30 22:51 ` Jeebs
2004-08-31 11:59 ` Johannes Schindelin
2004-08-31 15:58 ` Jeebs
2004-08-31 16:27 ` Joe Batt
2004-08-31 17:42 ` Jeebs
2004-09-01 19:25 ` Kai Cherry
2004-09-01 19:33 ` andrej
2004-09-01 19:46 ` Joe Batt
2004-09-01 20:34 ` Mike Tremoulet
2004-09-01 20:46 ` Kai Cherry
2004-09-01 20:35 ` Kai Cherry
2004-09-02 20:46 ` Jim C. Brown
2004-09-03 7:52 ` [Qemu-devel] Filegetopt (Was: Qemu development schedule?) Renzo Davoli
2004-08-31 16:32 ` [Qemu-devel] Qemu development schedule? Johannes Schindelin
2004-08-31 17:40 ` Jeebs
2004-09-01 15:43 ` Lionel Ulmer
2004-09-01 17:03 ` John R. Hogerhuis
2004-09-01 19:07 ` Kai Cherry
2004-09-02 10:20 ` Info
2004-08-31 17:42 ` John R. Hogerhuis
2004-08-31 19:07 ` andrej
2004-08-31 19:44 ` Kai Cherry
2004-08-30 22:07 ` Hetz Ben Hamo
2004-08-30 22:59 ` Jeebs
2004-08-30 23:34 ` John R. Hogerhuis
2004-08-31 9:21 ` Kai Cherry
2004-08-31 10:15 ` Patrick Mauritz
2004-08-31 10:23 ` Kai Cherry
2004-08-31 17:23 ` Gianni Tedesco
2004-08-31 19:08 ` Kai Cherry
2004-09-01 20:53 ` Magnus Damm
2004-08-31 20:27 ` Fabrice Bellard
2004-08-31 21:50 ` René Korthaus
2004-09-01 22:04 ` Jim C. Brown
2004-08-31 22:02 ` Patrick Mauritz
2004-09-01 21:58 ` Jim C. Brown
2004-09-02 7:26 ` Lionel Ulmer
2004-09-02 20:56 ` Jim C. Brown
2004-09-02 23:28 ` Lionel Ulmer
2004-09-03 0:07 ` Jim C. Brown
2004-09-03 8:32 ` Fabrice Bellard
2004-09-03 7:29 ` Adrian Smarzewski
2004-09-03 8:28 ` Fabrice Bellard
2004-09-02 23:53 ` Daniel Serpell
2004-09-03 0:13 ` Jim C. Brown
2004-09-03 1:35 ` John R. Hogerhuis [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1094175358.16486.227.camel@aragorn \
--to=jhoger@pobox.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).