With Intel processors supporting the company's Virtualization Technology (VT) becoming more pervasive, Linux kernel developers are writing the code to improve hardware virtualization and hence performance.
Speaking at this year's linux.conf.au Linux and open source conference in Sydney, Intel software engineer Jeff Dike spoke about three virtualization methods - User Mode Linux (UML), Kernel Virtual Machine (KVM), and hardware virtualization.
Dike said Intel introduced VT extensions to the x86 architecture to support "fully virtualized guest contexts" with all the processor's instructions being available. This allows unmodified Linux kernels to run virtualized on one processor.
Dike, an MIT computer science graduate, worked at DEC before joining Intel and is the original author of UML.
With Linux running on the host, Dike said the "guest" operating systems should look like they are present in the normal Linux "userspace", or what the user interacts with.
In August last year KVM was introduced into Linux which provides VT in the form of a driver.
"When a process opens KVM it becomes a process container for the guests," Dike said, adding it is not a bad interface. "This could be turned into something not that bad. [The] idea of having everything controlled from userspace [allows] you to have a guest look like a binary and script it."
With KVM, which is "probably not the final release", virtualization becomes a module you add on and is not necessarily part of the core kernel infrastructure, Dike said.
Areas for improvement include support for SMP guests and "paravirtualization", which is needed for anything except an unmodified guest.
There is a 32-bit only UML-VT port already completed by Intel's engineers in Moscow, and a UML guest can do "pretty much anything it wants but currently doesn't take advantage of everything".
KVM needs to have missing pieces added to it and the VT port needs to be updated from kernel release 2.6.12.
All this virtualization work will allow future versions of Linux to take advantage of better virtualized hardware.
Another of Dike's projects is to implement UML over KVM, which will bring further speed advantages but "I need to make UML run under KVM first".
When a question from the audience asked what needs to be done in the Linux space to manage virtualization. Dike said there needs to be a common way of managing heterogeneous virtualized environments and "people are thinking about that".
One solution to the management challenge is libvirt, an API that allows software to interact with the virtualization capabilities of Linux.
Another comment from the audience was that the management aspect is "a much bigger problem than the kernel level stuff".
"The big companies look for chances to write big bloatware [but] don't expect management to be complete before the virtualization wars," he said.