As 2011 comes to an end I want to look back at the highlights from the QEMU community this year. Development progress feels good, the mailing list is very active, and QEMU's future looks bright. I only started contributing in 2010 but the growth since QEMU's early days must be enormous. Perhaps someone will make a source history visualization that shows the commit history and clusters of activity.
Here is the recap of the milestones that QEMU reached in 2011.
QEMU 0.14
In February the 0.14 release came out with a bunch of exciting new features:
- ICH9 AHCI (SATA) controller emulation
- Intel HD Audio controller emulation
- QED disk image file format
- Ceph distributed storage system RBD block driver
- SPICE remote desktop protocol support including QXL paravirtual graphics card
For full details see the changelog.
QEMU 0.15
In August the 0.15 release brought yet more cool improvements:
- Lattice Mico32 (LM32) and UniCore32 target architectures
- Xen support merged back Xen's fork of QEMU
- Guest agent for host<->guest communication
For full details see the changelog.
Google Summer of Code
QEMU participated in Google Summer of Code 2011 and received funding for students to contribute to QEMU during the summer. Behind the scenes this takes an aweful lot of work from the students themselves but also from the mentors. These four projects were successfully completed:
- Boot Mac OS >=8.5 on PowerPC system emulation
- QED <-> QCOW2 image conversion utility
- Improved VMDK image format compatibility
- Adding NeXT emulation support
Hopefully we can continue to participate in GSoC and give students an opportunity to get involved with open source emulation and virtualization.
QEMU 1.0
The final QEMU release for 2011 was in December. The release announcement was picked up quite widely and after hitting Hacker News and Reddit required effort to try to keep the QEMU website up. I think that's a good sign, although QEMU 1.0 is kind of like Linux 3.0 in that the version number change does not represent a fundamental new codebase or architecture. Here somre of the changes:
- Xtensa target architecture
- TCG Interpreter interprets portable bytecode instead of translating to native machine code
For full details see the changelog.
Ongoing engineering efforts
There is a lot of change in motion as the year ends. Here are long-term efforts that are unfolding right now:
- Jan Kiszka has made a lot of progress in the quest to merge qemu-kvm back into QEMU. In a way this is similar to Xen's QEMU fork which was merged back earlier this year. This is a great effort because some day soon there will be no more confusion over qemu-kvm vs qemu when they have been unified.
- Avi Kivity took on the interfaces for guest memory management and is in the process of revamping them. This touches not only the core concept of how QEMU registers and tracks guest memory but also every single emulated device.
- Anthony Liguori is working on an object model that will make emulated devices and all resources managed by QEMU consistent and accessible via APIs. I think of this like introducing sysfs so that there is a one hierarchy and ways to explore and manipulate everything QEMU knows about.
Looking forward to 2012
It is hard to pick the highlights to mention but I hope this summary has given you a few links to click and brought back cool features you forgot about :). Have a great new year!