Virtualisation isn’t new — in fact it’s been in use for many years, as far back as the 1960s, in one form or another.
- Virtualisation is the process of using software to emulate hardware — either a small part of, or all of, a computer.
- The result is an environment called a ‘virtual machine’ that looks and acts like a computer, but it exists with the confines of a real machine.
- Traditionally the system that runs the virtual machine software is called the host, and any virtual machines created to run on the host are called guests.
The analogy of an apartment block works well here — if the whole apartment block is the host, each apartment is a guest and can contain a different tenant (aka operating system). Further, the size of the block limits the number of apartments inside, just as the number of guests you can run on the host depends on the resources of the host machine.
While server systems today are equipped with enough processing power and memory to run dozens of virtual machines at a time, most PCs for the home however aren’t quite so powerful — that said, they often do have enough resources to run one or two virtual machines without too much trouble.
This is enabled, for the most part, by the march of progress in recent times with respect to computing technology — dual-core and even quad-core processors are starting to become commonplace for home computers, as is 2 GB or more of memory. Such systems can dedicate one processor core and 1 GB of memory to a virtual machine guest, and still leave one processor and plenty of memory for the host system.
And what can you do with the guests? Each guest can run a single application, or an entire operating system — so you could have Vista installed on your computer, and then create virtual machines for Windows XP and Ubuntu Linux to run on your desktop as well. Operating systems installed in a guest aren’t aware they run within a virtual machine, and act as if they had a whole computer to themselves. They operate and work just as if they were installed on a stand-alone machine, allowing you to run multiple operating systems and applications in self-contained, separate, guest machines on the one host computer. In effect, you can get two or more computers in one.
Virtualisation on hardware
All up it sounds very clever and can certainly have benefits for running cross-platform applications on one machine, but it comes at a cost: running virtualisation software is very demanding, and virtual machines — for the most part — run much slower than the host machine.
Which is where hardware supported virtualisation comes in. Traditionally, virtualisation software creates a complete virtual machine entirely through the software itself — in technical terms, this means the software has to take requests from the guest machines and translate them to the host computer — for example, if you are running Windows XP as a guest on a Vista host, every time Windows XP wants to write to the hard drive the virtualisation software has to take that request and pass it onto Vista to do. As a layer between the virtual hardware and the real hardware in a computer, it’s a very processor intensive task. And it has to do this for video output, hard drives, network, mouse, USB and more.
Which is why one of the more recent developments in the last few years has been Intel and AMD’s VT-x and AMD-V respectively, technologies which allow CPUs to provide hardware support for virtualisation software. The result? Some tasks from a guest can be passed directly to the hardware of the host, resulting in much higher performance for virtualised guest operating systems. So much so, in fact, that the operating systems in a guest machine can run at near native speed, almost as fast as the host operating system itself.
Generally, a virtual machine can use about the same amount of processing power and memory as the host machine. You don’t have to worry too much about setting aside resources for it to use, aside from telling the guest how much memory you want to allocate to it. Some virtual machine software will even let you resize this on the fly.
In terms of disk space, however, you do need to allocate a portion in advance and — keeping in mind the size of installed operating systems such as Vista which can take up as much as 10 GB — this can be a substantial. And here the software can create a single, large, file (called a disk image) on your hard drive and treat this like a real hard disk to any guest operating systems you install. To the host, for example, there’s simply a 20 GB file on the hard drive. To a guest operating system in a virtual machine, this file becomes what looks like a physical disk for it to use. You can install multiple operating systems on a machine, each within its own virtual disk image, with each capable of booting and running in its own virtual machine.