A team at the University of Cambridge Computer Lab has successfully installed a new operating system on a machine that would otherwise use a different one. The work is part of a project to find novel ways to deploy software onto the world’s existing infrastructure without disrupting it.
The use of virtual machines means that applications can be delivered with almost no overhead, which is a boon to both the system administrators and the end-users. The team at Cambridge has gone a step further by creating a virtual machine that can run a virtual machine, all on an actual device.
“The idea here is that you could have a set of machines say in a data center,” explains supervisor Dr. William Hurley. “And then a whole different set of machines that are used to, say, do a software update on all the hosts in the data center.”
“The key idea is that you can boot a new operating system with a new kernel for a machine which already has an existing OS on it. No hardware modification is required; you just have a hypervisor that allows a runtime environment – a guest – to run a different OS. The idea is a little bit like running a program on a virtual machine, but a VM within a VM.”
The work builds on a technique presented at the 2007 IEEE Symposium on Security and Privacy by Loyola Marymount University’s Dr. Stefan Savage. A system was introduced that allowed users to repeatedly switch between a default OS and a secondary OS running in a virtual machine.
The Cambridge team aims to develop the technique further by applying it to existing infrastructure rather than laboratory conditions while dropping the requirement for a secondary hypervisor on top of the primary one.
“We need a runtime environment to run a guest, and this is a sort of a cross between a hypervisor and a virtual machine monitor,” explains Hurley. “This runs on the bare metal hardware, with no bootloader or other components in the primary boot path. A common hypervisor requires a separate kernel to be booted, but a virtual machine monitor can run a guest within the existing OS.”
“It’s a bit like a very lightweight hypervisor. The basic idea is you would be able to do a software update on a running operating system without actually stopping that operating system. So it has some useful applications there, where you don’t want to stop a running service because you then lose a customer that has a service contract with you.”
The paper describing the work, “A Practical Approach to Operating System Versioning for Existing Systems,” will be presented at next month’s USENIX Symposium on Operating Systems Design and Implementation. The team is now working with several interested parties to discuss potential commercial applications of the work.
“We’re a little bit in a stealth mode at the moment,” says Hurley, “but we’ve had a lot of interest from a whole bunch of different companies and a whole bunch of different sectors.”
“The idea is a way of deploying a new version of a service or a platform without disrupting what is currently in place. So it has a lot of beneficial applications in the real world, and we’re trying to make something that the industry can use.”