With Intel processors supporting the company's Virtualisation Technology (VT) becoming more pervasive, Linux developers are starting to write code to improve hardware virtualisation and performance.
Speaking at this year's linux.conf.au Linux and open source conference in Sydney, Intel software engineer Jeff Dike spoke about three virtualisation methods - User Mode Linux (UML), Kernel Virtual Machine (KVM), and hardware virtualisation.
Dike said Intel introduced VT extensions to the x86 architecture to support "fully virtualised guest contexts" with all the processor's instructions being available. This allows unmodified Linux kernels to run virtualized on one processor.
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", virtualisation 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 "para-virtualisation," 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 virtualisation work will allow future versions of Linux to take advantage of better virtualised 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 virtualisation. Dike said there needs to be a common way of managing heterogeneous virtualised environments and "people are thinking about that."
One solution to the management challenge is libvirt, an API that allows software to interact with the virtualisation 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 virtualisation wars," he said.