- 37comments
- 22comments
- 525comments
- 127comments
- 217comments
- 78comments
- 1comments
- 165comments
- 33comments
- 70comments
- 228comments
- 147comments
- 8comments
- 92comments
- 50comments
- 23comments
- 1comments
- —discuss
- 56comments
- 23comments
- 37comments
- 367comments
- 105comments
- 10comments
- 48comments
- 10comments
- 37comments
- 34comments
- 39comments
- 42comments
QEMU is excellent. It makes a very difficult task very easy. Simulating microprocessors, that is.
It's very cool to be able to test some cool feature in the latest Linux kernel easily or tinker with your own mini Linux distro.
QEMU also makes writing hobby operating systems (everyone's gotta have one, right?) nicer, it would be a pain to have to boot your system every time you make a change. It's easy to attach a debugger to QEMU to do debugging at CPU level, no need to implement GDB stubs and a serial driver to your kernel before you can get anything done.
I guess QEMU can be used for real work, too.
Thanks and congrats to the QEMU team for a milestone release!
(/me wonders if they fixed CPU-level debugging on amd64 yet, the last time I tried, I had to revert one commit to get it done. Otherwise I got a "remote 'g' packet is too long" error or something)
That's a GDB bug actually. GDB doesn't handle remote targets that change CPU modes. If your guest is in 16 bit mode, you need to do 'set arch i8086'. For 32-bit mode, 'set arch i386', and for 64-bit mode, 'set arch i386:x86-64'.
Thanks for the tip, I will try it out when I get some time my OS development project again.
It may be a bug in GDB, but reverting a change in QEMU made it work for me.
Fabrice Bellard is one of the great inventors of our time.
If he was a US citizen, he'd by on my short list of deserving recipients for a MacArthur Genius Grant.
Since the page seems to be down/loading slowly for me, here's the changelog:
Google cache for format not needing scrolling (not by way of complaint):
http://webcache.googleusercontent.com/search?q=cache:http%3A...
Yet another Bellard production (originally, anyway).
Let's list a few things he has done:
- QEMU: code from which has been used in Xen and KVM amongst others (http://en.wikipedia.org/wiki/QEMU#Integration_in_other_virtu...)
- FFMpeg, which almost every free video tool uses in some form
- The fastest known formula for calculating Pi
- The x86 Javascript emulator
That doesn't include things like his self-compiling C compiler which won the International Obfuscated C Code Contest. See http://bellard.org/ for more.
I find him simply inspirational.
You can include TCC without fear i guess, small and fast C compiler based on the self compiling C compiler you were talking about. http://bellard.org/tcc/
Fabrice Bellard is an extraordinary human. I know about his work since 1990 when he wrote the LZEXE self-unpacking executable utility for DOS.
We're getting way more traffic today than we're used too so the site is a bit slow.
Varnish to the rescue :-)
Time to betray some serious virtualization ignorance; when do people use QEMU outside a datacenter (presumably for mapping multiple virtual machines to one physical machine)? How often does one need to run binaries compiled for another machine architecture? And setting aside banal scenarios like running Word on Windows inside Linux, when is a guest OS useful?
The Android SDK is based on QEMU. This is what lets you develop and test ARM binaries for Android on your x86 PC.
There are many examples of embedded development environments like this.
I use VMs to test for bugs in my code on other platforms, and to test new releases of various Linux distributions.
Let's say you have a hard drive with DOS and Stacker and you need to copy files from it.
Or you have a disk image and need to copy files from that, and for some reason you can't mount it (Windows or virtualized linux without loopback block devices)
qemu does wonders to disk images.
I run KVM quite regularly on my laptop. I use it to test the results of Linux kernel hacking, to test bootable Linux images of various types (installers, live images, demos), and to test BITS (http://biosbits.org/) without having to run it on dedicated hardware (at least, the bits that don't specifically test that dedicated hardware).
Thought I share this nugget: http://russell.ballestrini.net/virt-back-a-python-libvirt-ba...
Its a python application I wrote to backup guests using libvirt api.
Opensource and public domain.
Can I use QEMU to run Mac OSX on my Linux box (at decent speed)?