A prominent Linux developer has proposed software that could help simplify the increasingly complex world of virtualisation, which has seen major new entrants in recent months.
Paul "Rusty" Russell, an Australian programmer who has contributed key components to the Linux kernel, last week submitted a virtual I/O system that could allow competing systems such as VMware, Xen and KVM (Kernel-based Virtual Machine) to use a single mechanism for handling virtualized I/O devices.
"This attempts to implement a 'virtual I/O' layer which should allow common drivers to be efficiently used across most virtual I/O mechanisms," Russell wrote in a post submitting the code to a Xen developer list.
In a blog post, Russell said the "virtio" layer was a logical next step, given the proliferation of virtualisation systems. Xen is a relative newcomer to the market, while KVM appeared even more recently.
"We have at least 4 x86 virtualisation solutions for Linux (Xen, KVM, VMWare and lguest), not to mention UML, Power and S/390," he wrote. "The obvious point has been raised by many: why not have a single mechanism for (virtual device) I/O?"
He said the matter is more complicated than it looks, but that an achievable short-term would seem to be aiming for common code that could run on Linux guest operating systems.
"The danger is to come up with an abstraction so far removed from what's actually happening that performance sucks, there's more glue code than actual driver code and there are seemingly arbitrary correctness requirements," Russell wrote. "Being efficient for both network and block devices is also quite a trick."
He said the model so far consists of an array of input and output buffers for hosts and guests.
"This seems to map reasonably well to existing practice and existing paravirt drivers," he wrote.
Besides the virtual I/O layer, Russel also submitted two drivers.
Russell is not the only one who has been looking to simplify virtualisation development, according to Dor Laor, a developer with Qumranet, the company behind KVM.
"That's the exact things I was planning to add to KVM/Linux," he wrote of Russell's submission.