You take the blue pill – the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill – you stay in Wonderland and I show you how deep the rabbit-hole goes.
Virtualization is a technology that allows to run multiple operating systems simultaneously on a single machine. In a virtualized environment, each operating system has the illusion of living in its own real machine, available entirely for its own. This requires a program (called virtualizer or hypervisor, according to the specific technique used) to be responsible for arbitrating the use of the hardware. To perform privileged operations, it intercepts and simulates their effects on a virtual device, also simulated. Thus, when an operating system thinks it is writing on a real hard disk, it actually performs this operation on a file managed by the hypervisor, which simulates that hard disk. The same occurs with network cards, monitors, keyboards, etc.
Originally, the PC architecture was not prepared for virtualization, as it was impossible to intercept some privileged operations. This led to the development of two techniques that allowed to circumvent the problem: binary translation and paravirtualization. Today, however, the two leading manufacturers of x86 processors have included built-assisted hardware virtualization capabilities, which allow to create virtualizers able to intercept all privileged operations without any tricks.
There are several applications for virtualization that have succeeded in recent years:
- Virtual server grouping in a single machine, so that each server will be as safe as when it was a separate machine, but allowing a cheaper well-exploited system.
- Server renting: thanks to virtualization, hosts can provide a low-price, single virtualized server to each user, which can install the operating system or web server of his/her choice, and their preferred specific versions, rather than being limited to those offered by his/her provider.
- Live migration of servers: When physical server maintenance is needed (for example, changing a hard drive or upgrading memory), it is possible to move all virtualized services to another machine temporarily, perform the operation, and restore them back. This migration is almost instantaneous.
- Increased security: services which initially ran on the same operating system (for example, the company’s public web and mail) can now run on separate virtual machines, yet still on the same physical hardware. If a virtual machine is compromised, the rest will keep up.
- Computing as a service in the Cloud: thanks to virtualization, the safety drawbacks of other approaches have been overcome.
In Gradiant we are currently working on several virtualization-based applications, exploiting its advantages to bring new services to personal computer users. For example, as part of the Avanza GAMETEL project we are delivering PC learning contents to low-end set-top-boxes.