- 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.
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/
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'.
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?
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).
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)
Since the page seems to be down/loading slowly for me, here's the changelog:
General
- i386-softmmu is no longer named qemu but instead referred to as qemu-system-i386 for better consistency with other targets. A new tool is likely to be introduced that uses the qemu name so distributions are advised to not undo this change.
- QEMU now uses a separate thread for VCPU execution. This merges the biggest difference between the qemu-kvm tree and upstream QEMU.
- A new memory dispatch API has been added internally. A new monitor command "info mtree" can show the hierarchy of memory regions in the guest.
- QEMU now has a build dependency on glib and makes extensive use of glib.
- QEMU now can run on more hosts. Hosts without a native code generator can use the TCG interpreter (TCI). See Features/TCI for more information.
Block devices (disks)
- QEMU now supports I/O latency accounting in the monitor command "info blockstats".
- Errors are now tracked per device and are shown by the monitor command "info block".
- All image formats now support asynchronous operation. IDE and SCSI emulation will use this feature, while other devices (notably floppy and SD) will not.
IDE/ATAPI
- A large number of bugs were fixed regarding CD media change and tray locking.
SCSI
- Memory management errors could crash QEMU when scsi-disk encountered I/O errors. Many instances of this problem were fixed.
- The accuracy of error handling for SCSI emulation has been greatly improved.
- SCSI devices can now be addressed by channel, target (id) and LUN. Not all emulated HBAs will support this feature (in particular, the LSI controller will not).
- Block device pass through is now supported through a new scsi-block device. The scsi-block device works with block devices (like /dev/sda or /dev/sr0) rather than /dev/sgN devices, and is more efficient because it does not consume arbitrary amounts of memory when the guest does large data transfers.
- SCSI CD-ROMs now report media changed events.
- SCSI CD-ROMs now support DVD images.
- Bugfixes for IDE media change also apply to SCSI.
- SCSI devices now report a unit attention condition when the system is started or reset. This may cause problems with old firmware versions.
VDI
- Now supports discarded blocks in dynamically-sized images.
User-mode networking (SLIRP)
- SLIRP can process ARP replies and gratuitous ARP requests from the guest.
ARM
- QEMU now supports the new Cortex-A15 instructions in linux-user mode (via "-cpu any"): VFPv4 fused multiply-accumulate (VFMA, VFMS, VFNMA, VFNMS) and also integer division (UDIV, SDIV).
- The vexpress-a9, versatileab, versatilepb and realview-* boards now have audio support.
- QEMU is known not to work on ARM hosts in this release. (ARM target emulation is fine.)
pSeries
- sPAPR VIO devices can now be created with -device.
Xtensa
- QEMU now supports DC232b and FSF xtensa CPU cores.
- QEMU now supports sim (similar to Tensilica ISS) and LX60/LX110/LX200 machines.
Migration
- QEMU now supports live migration using image files like QCOW2 on shared storage
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.