qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Jim C. Brown" <jma5@umd.edu>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Unified device model
Date: Sun, 9 Apr 2006 11:10:31 -0400	[thread overview]
Message-ID: <20060409151031.GA4995@jbrown.mylinuxbox.org> (raw)
In-Reply-To: <E1FSSRx-0004OR-Eg@lists.gnu.org>

On Sun, Apr 09, 2006 at 08:26:11AM +0200, Stanislav Shwartsman wrote:
> I am talking about the device models only. Inside CPU emulation QEMU, Bochs
> and Xen are completely different, but they use the same devices for full
> system emulation and they most likely want to move forward together.

I haven't kept up with Bochs lately, so I have no idea if what qemu emulates
and what Bochs emulates are still the same or if the devices supported have
divulged.

I do know that the code is completely different (they aren't even in the same
language!).

This part of the discussion is getting offtopic tho - how devices are done
right now is not important.

> The
> devices system of QEMU and Bochs become outdate, it is required to add ACPI
> compliance and emulate new modern ACPI compatible devices, currently
> emulated i440FX already not so represent the real life and most of the
> modern OSes already have no support for it.
> 

Agreed.

> So may we should ;)

Agreed.

> At least I see the code changes from Bochs migrating to QEMU and vise versa
> when I am looking into the code.
> 

You do?

I wasn't aware that bochs took anything from qemu, and the only piece of code
that I know that is shared between the two is for the bios.

> Why not ?
> You always could consider to add simple modules C++ to QEMU or build C++
> device -> C device interface bridge ...
> I don't know all the possibilities, but I am sure there are more.

C++ code in qemu is forbidden (by the author and maintainer).

So a plugin API based on C sounds like the best option.

Bochs is unique as it is the only active open source PC emulator/virtualizer that
is done in C++. So "Bochs has C++ support" is not a good reason for the API
to be based on C++.

> 
> >>I know about two professional teams working in simulation which would like
> >>to use these device models in their simulator and 
> >>could enrich the device library with new devices device interfaces, for
> >>example with AGP and 3D graphics.
> >>Bochs is already in middle of definition of new true pluginable devices
> >>architecture. 
> 
> >This is welcome news.
> 
> Currently we are thinking about making user-plugin PCI devices and when
> later user-plugin for any device. The C++ hierarchy for now might be:
> bx_devmodel_c - bx_pcidev_c - bx_user_pcidev_c
> 
> The plans are to take one of the Bochs PCI devices and convert it into
> user-level plugin which should not be compiled with Bochs and even not known
> at compile time, but loaded at runtime if selected in runtime config file.

Why only PCI devices?

Why not USB, ISA (keyboard, monitor, pc speaker), devices that attach to the
serial port (like the current wacom patch), etc?

Also note that it is possible to use C to set up such a hierarchy - perhaps
not as natural as in C++, but still doable.

> When any other device models could be added, even with closed-sources and
> commercial licenses.

I don't support this.

Under what circumstances would commercial qemu/xen/bochs/eos driver devices
be a good thing?

I can understand (tho I still dislike) having commercial drivers in say
the kernel - if its the only way to get support for a particular device, and
that device would make it easier for others to use a different OS (e.g.
nvidia under linux so ppl can have good 3d support) then I find it acceptable
and tolerable.

But why would we want to do this for qemu et. al.?

> 
> >The primary reason given for not making a plugin API for qemu hardware
> >emulationis that qemu isn't stable enough - the code changes too often to
> >support a stable API.
> 
> >Still, it might be easier to add support for plugins based on an external
> >API, rather than trying to keep a qemu plugin API consistent.
> 
> Ok, I didn't knew that QEMU is so unstable. But at least there are several
> trivial requirements from plugin architecture which you could mention here
> and I am still not thought about it. I know, basically I am writing the
> definition in my idle time and Volker supporting me. But it is not enough
> ...

If I think of anything else, I'll let you know. I do want to see this happen.

> 
> Thanks,
> Stanislav
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
> 

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

  parent reply	other threads:[~2006-04-09 15:10 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-08 19:57 [Qemu-devel] Unified device model Stanislav Shwartsman
2006-04-08 19:12 ` Jim C. Brown
2006-04-08 19:17   ` Johannes Schindelin
2006-04-08 19:27     ` Leonardo E. Reiter
2006-04-09  6:29       ` Stanislav Shwartsman
2006-04-08 19:28     ` Jim C. Brown
2006-04-09  6:26   ` Stanislav Shwartsman
2006-04-09 10:38     ` Paul Brook
2006-04-09 14:55       ` Jim C. Brown
2006-04-09 15:21         ` Paul Brook
2006-04-09 15:28           ` Sam Barnett-Cormack
2006-04-09 16:08           ` Jim C. Brown
2006-04-09 19:56             ` Stanislav Shwartsman
2006-04-09 21:02               ` Fabrice Bellard
2006-04-09 15:10     ` Jim C. Brown [this message]
     [not found] <1b33de610604170003q43b6c453ub94d77b1a10ed43b@mail.gmail.com>
2006-04-17  7:09 ` pete sullivan
  -- strict thread matches above, loose matches on Subject: below --
2006-04-23 21:03 Einar Larsson

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=20060409151031.GA4995@jbrown.mylinuxbox.org \
    --to=jma5@umd.edu \
    --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).