Version 2.0.0 of the open source machine emulator and virtualizer QEMU has been released introducing support for the KVM emulator on ARM systems..
QEMU (short for "Quick EMUlator") is a free and open-source hosted hypervisor that performs hardware virtualization.
The QEMU site explains its two modes of operation as follows:
When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation it achieves a good performance.
When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests
QEMU on Linux running the ReactOS operating system (Wikipedia)
In announcing the new version Michael Roth of the IBM-Linux Technology centre commented: This is one of our most extensive releases ever, with 2,500+ commmits from 179 authors.
The new features he lists includes:
Initial support for KVM on AArch64 systems (some features such as migration are not yet implemented)
Support for all 64-bit mode ARMV8 user-accessible instructions except for the optional CRC and crypto extensions
Support for new 32-bit mode ARMv8 instructions in TCG
The Q35 x86 machine-type now supports CPU hotplug
On the PIIX x86 machine-type, PCI hotplug now supports devices behind a bridge (for bridges not added by hotplug; hot-plugged bridges can still use the PCI Standard Hot-Plug Controller)
Support for the Hyper-V reference time counter via the "hv-time" suboption of "-cpu". This can improve performance of Windows guests substantially for applications that do many floating-point or SIMD operations. (Requires KVM and Linux 3.14).
PCI passthrough of devices with a ROM now work on Xen
GTK UI is now supported on Windows hosts
QEMU is now able to operate even if the underlying storage requires the buffer size to be a 4K multiple. This is the case for 4K-native disks (with cache=none or when accessed through iscsi:// URLs) and some raw devices
QEMU can access NFSv3 shares directly from userspace using libnfs.
Detailed information about all of the changes can be found in the changelog.
One of the biggest problems programmers face today is making a single code base work across a range of systems. How a giant company like Google solves the problem is obviously going to be interesting. [ ... ]