[Top][All Lists]

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

Re: [Qemu-devel] Qemu is a wonderful (and presentation)

From: Fabrice Bellard
Subject: Re: [Qemu-devel] Qemu is a wonderful (and presentation)
Date: Thu, 26 Jun 2003 19:32:13 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.1) Gecko/20020828

Stefano Marinelli wrote:
Hello everybody, I'm a Computer Sciences student at Bologna's university
(Italy) and I'm doing a research about Virtual Machines and their
application. My final thesis will be about it. I've spent the last month
performing tests with bochs and plex86 (the new one) but I've found out
that bochs is too slow (even if almost complete) while plex has good
ideas, but is still in really alpha stage. I've put an eye on qemu and
found out it could be the best project to work with. I like the fact
that it can be used to emulate x86 machines on non-x86 environments,
especially because universities often have machines like PPC and Sparc.
Anyway, I've performed some tests with the vl and created some new
initrd images in order to see the state of compatibility. Being a so
young project, I didn't expect too much, but I'm amazed. It's good, the
user emulation performs well, the System emulator shows a good project
idea, so I think it has the possibility to become a good alternative to
One of the things I matter more is the "guest" portability: looking at
the documentations, seems that one day it will be possible to run other
non-Linux operating systems. My task is to prepare a bunch of virtual
machine, where students (also normal users, but I'm talking about
University research) will be able to experiment with different operating
systems, both "secure" and "insecure" ones (like old Windows 98),
without having to sacrifice a physical machine. Bochs could be a
solution, but it's soooo slow. The idea beyond the dynamic translation
is great. I had great expectations with bochs+plex86, but Kevin said that it will
be the last thing to be done, even because the guest kernel has to be
modified (and I don't like too much the host kernel driver to be
So the question is: will one day be possible to run other x86
operating systems (like the *BSD, Windows, BeOS and so on)?


There are three problems to run other operating systems:

1) Some weird x86 instructions or behaviors are still lacking (for example: full task gate support, call gates, segment limit checks). It is easy to add but difficult to debug, especially if you don't have the source code of the guest OS.

2) If the guest OS wants access to memory beyond 0xc0000000, the current MMU emulation won't work. It can be solved by using a software MMU emulation (slower) or by using various tricks with the segment registers provided the guest OS does not use the full address range. The software MMU will be implemented someday as some people need it to have an exact full system emulation. For the rest, it depends on the number of people who ask it :-) The optimal solution would require a tricky host kernel patch, but in this case it can be more tempting to use plex86.

3) For Windows and MSDOS, a more complete PC hardware emulation is needed (in particular full VGA support is needed). It is not difficult to do, but as in (1), bugs can be difficult to find. I won't do that unless many people ask it. Another solution is to integrate QEMU in bochs to reuse all its PC hardware emulation stuff.

Currently, I think launching *BSD would not require many changes (maybe it already works - I did not test. If you give me a working image I can look at it). I may add IDE emulation soon as it can be quite useful even with Linux.


reply via email to

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