Is Virtualization “Evil”?
With Linux officially 20 years old, the globally deployed, pan-device operating system is a far cry from the hobby system launched by student Linus Torvalds. While Linux kernel engineers now number over a thousand however, its original developer still keeps a tight control over what goes in and what stays out. So, when the notoriously outspoken Finn speaks, people listen. But just how seriously should his recent remark, “Virtualization is evil,” be taken?
Linus Torvalds - Photograph by Randal Schwartz
Context is everything: the first thing to take into account is the state of play between virtualization and Linux. Two sets of virtualization code are now included in the operating system – KVM (from Red Hat) and Xen. While KVM’s journey to the centre of the kernel was relatively smooth, misalignments between Xen and Linux code releases led to disputes between the two development teams. "Xen developers listened to the feedback and they are now in the mainline kernel," explained Linus in his Linux Con interview last month. Linus Torvalds’ disdain for virtualization is about more than kernel developer politics, however. “I’m not a virtualization kind of guy… I built a kernel because I wanted to get my hands grubby with things like I/O ports,” he said, which is an interesting stance for the person who keeps the keys to the Linux citadel. Against this background, another vote in KVM’s favour was undoubtedly that it was designed to keep out of the way of the kernel, by assuming the hardware would do the virtualization. “There's a certain affinity for kernel people to prefer KVM, where the Xen approach came from a different mindset,” said Torvalds. With these factors in mind we can be a little clearer about what Linus meant by “evil”: first, difficulties caused by multiple developers creating code in ways that didn’t fit with the core team; second, a matter of personal preference; and third, a question of design approach. Linus made little comment about how virtualization is to be used, its huge potential and indeed adoption across enterprise businesses; nor did he bring up management or security challenges and their respective solutions – clearly, his remarks, and his core focus, is on the impact of virtualization on the beating heart of Linux, rather than such broader questions. All the same, the question of design does set a few alarm bells ringing. One of Linus’ first “flame wars” was with Tanenbaum, the creator of MINIX, who called Linux, “a monolithic style system… a truly poor idea.” Linus was quick to refute that Linux was “a poor idea”, a refutation which has stood the test of time; more recently he said that he saw no reason why the 40-year-old UNIX architecture underlying Linux won’t still be suitable in 20 years’ time:
However, virtualization may change all that. What with hardware supporting an increasing set of virtualization features, and with hypervisors becoming ever closer to the hardware, the need for an operating system kernel that is so tightly wed to the underlying chipsets is increasingly in doubt. It could be that in the future, hardware-based APIs and bare metal hypervisors become the default, rather than the exception for all but the smallest devices. And that, for Linus Torvalds, would be evil indeed.