Survey 100 people across the virtualization community and ask them to name a virtualization technology, and it's a safe bet the vast majority will name a VMware technology like Workstation, Fusion, or vSphere or perhaps even Microsoft Hyper-V or some flavor of Xen. Ask this same question of people in more nonmainstream areas, and you'll probably get answers like KVM, Parallels, or VirtualBox instead.
But it's a safe bet none will mention an unsung hero in virtualization, namely QEMU (Quick EMUlator). This open source project, started by Fabrice Bellard in 2003, is still around and going strong (believe it or not), and it deserves some recognition. Less than two weeks ago, right around the Thanksgiving holidays, QEMU developers announced a new stable release of their code, version 1.7.0. It seems an appropriate time to pay homage to this open source project.
[ Also on InfoWorld: New Fling installs VMware Tools on nested ESXi virtual machines | Startup announces SaaS solution to manage Amazon Web Services resources | Track the latest trends in virtualization in InfoWorld's Virtualization Report newsletter. ]
While today's virtualization community is a loud and proud army of IT administrators, things weren't always that way. In the early part of 2000, the community was small, the virtualization geeks were considered tinkerers, and virtualization giant VMware wasn't, well, so giant. Fourteen years ago, x86 virtualization was considered a toy technology by mainstreamers. Who's laughing now that virtualization has become a commodity and is used in data centers all over the world?
Vrtualization elders might recall the names of some of the fallen like BOCHS, Virtual Iron, Win4Lin, and SVISTA, to name just a few. Many others came and went as well, but QEMU still stands tall.
Why is the QEMU project still going strong 10 years later? Perhaps because it has tentacles within many of today's hypervisors.
Modern virtualization technologies like Xen and KVM have leveraged the work of several QEMU projects. By leveraging QEMU, Xen and KVM have been able to implement numerous performance optimizations, giving those platforms a jump start.
The QEMU project was started as an open source emulator that provided the ability to run on a wide variety of platforms by doing dynamic translation of native CPU instructions. This dynamic translation enabled QEMU to provide fast and efficient emulation by breaking down the processor instructions into small blocks of atomic instructions. Those instructions were then processed, cached in a buffer, and then the responses were returned as if the native processor had acted upon them.