The View from the Moon

20040910 Friday September 10, 2004

QEMU for Solaris x86
QEMU is a CPU emulator. While it can do a lot of different things, for now, think of it as a virtual x86 box which runs as a user process. The kernel group in Menlo Park hosted an intern this summer who worked on (among other things) getting QEMU up and running well on Solaris, and getting Solaris to install and boot inside of QEMU.

We need to do some more work on this before it is ready for "prime time" but it looks promising. Eric pointed out to me that QEMU and technologies like it will more easily enable folks to contribute to the Open Source Solaris effort, and that's important. On the other hand, it won't help people trying to write drivers (where I hope we'll see a lot of community activity), as the emulated x86 system is pretty minimal.

The great news is that we're not alone in believing in QEMU: ThinkSolaris.com [2/2006: Now defunct] has posted a QEMU binary for x86, and some screenshots. Andrei showed up in my office today with a demo of running WindowsXP inside of QEMU using the packages he downloaded from ThinkSolaris. However-- there is more to do. We need to get networking up and running before QEMU will be really useful, and our intern identified the interface between Solaris (running inside QEMU) and the QEMU IDE emulation as a major performance problem. As a kernel developer I'm looking forward to being able to boot Solaris atop Solaris using an open emulation technology...

UPDATE: To be clear, I'm not announcing any policy that we're planning to ship QEMU, nor is it part of our virtualization strategy at this time. For more about our approach to OS virtualization, please take a look at Solaris Zones. I am interested in QEMU because it offers an interesting possibility for doing routine kernel development work on a subset of kernel subsystems.

UPDATE 2: Thanks to the indefatiguable Jurgen Keil we now have working networking! Hooray! A suggestion to Martin et al: Packaging this for blastwave.org (/opt/csw) would be fantastic.
(2004-09-10 18:49:49.0) Permalink Comments [6]
Trackback: http://blogs.sun.com/dp/entry/qemu_for_solaris_x86

 

Comments:

Hi, Damn, that looks sweet. Still, from what I can tell, QEMU lacks and polish and performance of commercial offerings like VMWare. Then again, QEMU is open-source, so it's a pretty good effort. Bye, Victor

Posted by Victor Hooi on September 11, 2004 at 07:23 AM PDT #

good to see the interns are carrying the weight of Sun. I can't imagine why quality is a problem.

Posted by Anonymous on September 11, 2004 at 07:33 AM PDT #

Hi Dan,

it's great to know that I'll be able to develop for solaris 10 using qemu, like I do for some other operating systems. QEMU is x86-goodness ;)

Any chance of images ala FreeOSZoo showing up on Sun's Solaris download site?

cheers, dalibor topic

Posted by Dalibo Topic on September 11, 2004 at 11:39 AM PDT #

Anonymous,

I wasn't sure whether or not to delete such an obviously mean-spirited and insulting comment. To me it seems like I would be quashing your right to speak freely if I did, which bothers me. The anonymous nature of the comment and the way it generalizes a specific circumstance into a sweeping indictment reveals that you have an agenda unrelated to the content of my weblog posting. It makes it clear that you are just a troll. If you would like to talk more about the quality processes we have in place to ensure that Solaris is stable, predictable, polished, and correct, feel free to post further. But I do not intend to respond if you remain anonymous.

On the other hand, this provides a good opportunity to talk about our internship program. Perhaps I'll make that topic into a weblog entry later.

Anyway, experimenting with QEMU is exactly the sort of work that we always ask our interns to do. Most of our interns come from strong OS programs at the nation's top 20 schools. They are not professional software developers, although they are only usually about 12 months away from being so; we hope to get a sense of what kind of professional developer they will be. Given their limited time at Sun, we tend to ask them to develop prototypes of new technologies, or to experiment with "advanced development" sorts of projects, rather than engineer direct contributions to the product itself. This is for two reasons: it removes the pressure and process associated with developing shipping quality software, and it encourages risk-taking. We often have five or six such project ideas floating around at the beginning of a summer, and (in our neck of the woods) host two or three interns. Anyone interested in an internship can feel free to contact me.

Posted by Daniel Price on September 11, 2004 at 12:59 PM PDT #

> We need to get networking up and running before QEMU will be really useful Build a Solaris ITU driver floppy from: http://www.tools.de/solaris/itu/ and run qemu with option ".... -fda /tmp/DU.img" when installing Solaris x86. Use the DCA's "Add driver" command and you'll have a working network during installation, and after Solaris x86 is installed.

Posted by J�rgen Keil on September 13, 2004 at 11:29 AM PDT #

Nice work Jurgen-- I was a little startled until I looked at your page and saw "driver modified for QEMU." This is what tripped up our intern, I think; he struggled for a while with the NE2000 driver. Can you give back the NE2000 changes to Murayama-San? (As an aside: I saw you and Eric Northup's names now appear on the ThinkSolaris page)-- this really has been a broad-reaching effort! Perhaps it's a model for some of the sorts of projects an Open Solaris will help to generate?

Posted by Daniel Price on September 14, 2004 at 03:08 AM PDT #

Post a Comment:

Comments are closed for this entry.
Dan Price's Weblog
[about me]