qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Cc: turnkey-discuss@lists.turnkeylinux.org
Subject: Re: [Qemu-devel] Merging improvements from VirtualBox OSE into qemu?
Date: Wed, 24 Dec 2008 09:23:13 -0600	[thread overview]
Message-ID: <495253E1.3090209@codemonkey.ws> (raw)
In-Reply-To: <49522F8D.4000203@turnkeylinux.org>

Liraz Siri wrote:
> Hi,
>
> Two major changes in version 2.1 caught my attention:
>
> 1) complex setup is no longer required for "bridged" networking:
>
>    This is a big win for us as the former networking setup complexity
>    indirectly made TurnKey appliances much more difficult for regular
>    users to set up.
>
>    VirtualBox came to its senses and realized the tap configuration mess
>    was way too complex for most users and cumbersome even for advanced
>    users. Also, I don't think it worked with wireless NICs.
>
>    In the latest release, "host interface networking" just works. The
>    user simply selects which NIC to connect the guest to (e.g., eth0)
>    and they're done.
>
>    Behinds the scenes VirtualBox is putting your NIC into promisc mode to
>    sniff packets to guests and injecting packets directly to the NIC.
>    Essentially it creates a virtual NIC in software.
>   

This is not how it works.  They have their own special tap kernel module.

>    This works without root privileges somehow, probably by taking
>    advantage of new infrastructure in the VirtualBox device driver.
>   

Because they load a new kernel module and the set the perms of it's 
device to be open to any user.  This would never be allowed in upstream 
Linux though.  Putting arbitrary packets on the physical network is 
considered a superuser operation.  Since you have to be root to bind() 
to a port < 1024, raw traffic obviously allows you to do this.

FWIW, if you use virt-manager, then setting up networking is a breeze.  
The reason you think networking is hard in QEMU is that you are 
interacting with it at the wrong level.

> 2) improved support for running 64bit guests on 32bit hosts
>
>    On my Intel Core 2.4 rig I booted the Debian Lenny live CD in 48
>    seconds.
>
>    By contrast, I booted the same CD under qemu-system-x86_64 in
>    257 seconds, or 5 times slower...
>   

Well you're comparing virtualization to emulation.  A better comparison 
would be a 32-bit vs 32-bit VM using -enable-kvm.  I'm sure QEMU will 
hold it's own or even do better.  Historically, VirtualBox has not 
performed competitively against other VMMs.

KVM doesn't support running 64-bit guests on 32-bit hosts.  If someone 
was sufficiently motivated, they could write patches to KVM and they 
could possibly be accepted.  VirtualBox is of no help here.

I think the value of running 64-bit guests on a 32-bit host is marginal, 
at best.  I don't see a lot of eagerness among developers to support 
this configuration.

> These are dramatic improvements in usability and I'm curious whether it
> is likely that these changes will find there way to qemu?

Only if Sun decides to start contributing those changes back to QEMU.  
You'll have to talk to the VirtualBox developers to see what their plans 
are with that.

>  I know that
> both projects are under the same opensource license and share quite a
> bit of code

Sharing implies a two-way exchange.  In reality, VirtualBox has taken a 
bunch of QEMU code and AFAIK has not shared any of their changes back 
with the QEMU community.  They are completely entitled to do this of 
course based on the licensing of QEMU.

Some of their most interesting changes (like SATA emulation, rewritten 
USB emulation) remain available only in their closed source version.  I 
find that extremely unfortunate because that would be some of the 
easiest and most useful code to try to merge from their project.

Regards,

Anthony Liguori

>  but I don't really know too much about the internals of both
> projects so I'm not sure how difficult this would be to accomplish
> technically...
>
> Cheers,
> Liraz
>
>
>   

  parent reply	other threads:[~2008-12-24 15:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-24 12:48 [Qemu-devel] Merging improvements from VirtualBox OSE into qemu? Liraz Siri
2008-12-24 13:17 ` Samuel Thibault
2008-12-24 13:26   ` Alexey Eremenko
2008-12-24 13:31 ` Alexey Eremenko
2008-12-24 13:36 ` Paul Brook
2008-12-24 14:33   ` Liraz Siri
2008-12-24 14:51     ` Jernej Simončič
2008-12-24 15:02     ` Paul Brook
2008-12-24 15:29       ` Liraz Siri
2008-12-24 15:40     ` Anthony Liguori
2008-12-24 20:52       ` Liraz Siri
     [not found]     ` <E71DFB2B-0B73-46AE-B423-0BF605A9D679@hotmail.com>
2008-12-25  4:37       ` C.W. Betts
2008-12-25  7:06     ` Avi Kivity
2008-12-25  7:07     ` Avi Kivity
2008-12-25  7:08     ` Avi Kivity
2008-12-25 14:51       ` Liraz Siri
2008-12-25 16:14         ` Avi Kivity
2008-12-24 23:18   ` Jamie Lokier
2008-12-25  7:11     ` Avi Kivity
2008-12-24 15:23 ` Anthony Liguori [this message]
2008-12-24 20:21   ` Liraz Siri
2008-12-24 20:55   ` Liraz Siri
2009-01-05 21:12   ` Frank Mehnert
2009-01-05 22:03     ` Stefan Weil
2009-01-05 23:58     ` Anthony Liguori
2009-01-06  7:41       ` Frank Mehnert
2009-01-06 15:46         ` Blue Swirl
2009-01-06 17:33         ` Anthony Liguori
2009-01-06 20:40           ` Frank Mehnert
2009-01-06 22:17             ` Jamie Lokier

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=495253E1.3090209@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=qemu-devel@nongnu.org \
    --cc=turnkey-discuss@lists.turnkeylinux.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).