02/12: Virtualization Delight

It was a hot afternoon of August 2006, I was heading home when I read an article that instantly got my attention. It was an English daily, Business Recorder, saying that the US based firm Dell is facing lawsuits by Chinese customers on allegations of fraud. The lawsuit concerns Dell's substitution of Intel Conroe T2300E processor for Intel Conroe T2300 in their laptops without corresponding change in the description of their laptops specifications. Many Chinese customers found out after purchasing the laptop that the laptops they had bought, which they thought was using T2300, was in fact using T2300E .This mattered because the latter is capable of virtualization while the former is not.

Virtualization! This immediately got my attention. The newspaper stated that this technology enabled one operating system (e.g. Windows, Linux, etc) to run as a guest operating system on an already existing host operating system. Naturally, I searched for it on the internet and found out more details on it.

However, I was not aware at that time that this was not the end of the story. I, at that time, considered it to be a hardware feature and for good reason. The virtualization phenomenon seemed some thing very new and outright innovative to me. Being the owner of a Pentium 4 2.4 GHz processor (Northwood) based system which I purchased 3 years ago, I greatly underestimated my system. I was not aware that virtualization is something much broader than the limited information in the article I had read and that the specific instance I had read about is called hardware-based virtualization. I had, in haste, not read the article carefully and missed out that there are also virtualization softwares available. On re-reading the article, my entire view of the interaction between hardware and software of a computer system changed.

A virtual machine abstracts the hardware of a single computer into several different execution environments. In other words, the virtual machine imitates, or more correctly virtualizes, the hardware of a real machine. If the virtual machine is between the hardware and the operating system, it is referred to as hardware based virtualization. On the other hand, if the virtual machine is between the host operating system and the guest operating system with the former operating system serving as platform for the virtual machine, it is called hosted virtualization. Hardware based and hosted virtualization are not the only types of virtualization but as they concern me the most I will only talk about them. It is possible to create many such machines on a single system depending on the resources (CPU, memory, hard disk space, etc) of the host operating system leading to the installation of multiple operating systems on one single system, all running simultaneously (again dependent on the resources available).

One can install one or more of these virtual machines without harming the computer system, especially if you are using hosted virtualization. The host operating system is unaware of the presence of guest operating systems running on it via virtualization.

Did you know Java runs on a virtual machine known as the Java Virtual Machine or JVM? This allows applications programmed in Java portability between various platforms like Microsoft Windows and various distributions of Linux.

However, make sure you have got plentiful disk space and RAM before dabbling into virtualization as these virtual machines take a lot of resources! There are many virtualization softwares available, but I would recommend VMware server and Microsoft Virtual PC. Click on the links to read more about each of the virtualization softwares.

Do give them a try!
Usman  Technology 
Karma: 382 [Add to karma] 

Comments made

I myself have tried VMware during my OS course when I read about virtual machines. I installed Windows XP, Ubuntu and Windows 98 on it. My mainboard is incompatible with Windows 98 so it was a nice surprise when it installed perfectly fine. It had been a long time since I had last used Windows 98. It's a good way to test applications. For example, I tried Firefox v2.0 RC1 on a virtual machine installation of Windows XP.

I tried installing Windows Vista Beta 2 using VMware but was unsuccessful.
02/12 21:41:03
Unfortunately, the termonology is all over the place. What you describe as hardware-based virtualization is more often called hypervisor based, where a very thin specialized kernel, with or without hardware support, provides virtual machines to normal full feature operating systems. In the PC/x86 world, VMWare's ESX/Infrastructure line of products use this approach; they cost a lot of money (although I think there is a developer/sysadmin version for "testing" :-), and have limited hardware support (obviously aimed at server class systems), since they have to write all their drivers (the source of much if not most OS instability anyway). This approach gives you the most control. See for all sorts of details, including some on their free hosted virtualization product which Asad has used.

While hardware based virtualization sounds very cool (see for more details), currently it is generally slower than the pure software techniques VMWare has traditionally used (trapping an illegal instruction is generally a very expensive operation).

Xen and Xen based systems ( originally used something they call paravirtualization, where the guest OS must be modified. This can very efficient, but it obviously fails for OSes who's vendors refuse to modify them, i.e. Windows. Xen now uses hardware virtualization to run unmodified Windows OSes.

So the bottom line is that unless you have specialized requirements (when checking out those Wikipedia articles, one example was VMWorkStation running a 64-bit guest OS) or want to run Xen, you don't need the hardware virtualization lacking in the T2300E processor.
02/12 22:34:13

Very informative links. When I was trying to select a version of VMware, I got thoroughly confused until I just downloaded the free Server version to try it out.

I must add that due to the limited hardware support, it can be a bit frustrating. I tried installing nVidia graphics drivers for my graphics card but it just resulted in an error from the installer that 'no nVidia hardware found'. That was good-bye to any games I might have wanted to try on it.
02/12 23:13:01
Indeed; fortunately, while Wikipedia is not entirely reliable ("because the tyranny of the persistent must be right"), it generally can't be beaten for giving you an initial orientation in an area.

And this is an extremely complicated subject at the moment, with three major vendors (MS, VMWare, Xen), lots of other players in this space (e.g. the Parallels virtual machine for OS X so that you can run Windows as a guest to OS X), all sorts of hardware to potentially support (hence the popularity of the guest/host style), and a bunch of variations from each major vendor.

The big problem with graphics is that VMWare and company simply can't afford to support virtuilization of the latest high end graphics cards; e.g. VMWorkstation is the only product that makes them money in that niche, and as far as graphics goes, to my knowledge it's only used professionally to run Photoshop on top of Linux at 3-D animation studios and the like. There just isn't enough of a market to support gamers; the real money is in servers, which don't particularly need or have bitmapped graphics to begin with.
03/12 03:20:57
I tend to agree with hga, but still the bottom line is, you still need high end hardware to reap the full benefits of virtualization. And while I hear a lot of complaints regarding Wiki's editorial policy, which are justified in their right, I didn't hear of the thing on a casual stroll on the encyclopedia. As I have said, I learnt this in a newspaper and had I not read it, I might still be unfamiliar with the concept of virtualization.
03/12 22:04:24

Add comment


Allowed BBCode:[b] [i] [u] [color=] [size=] [quote] [code] [email] [img]

Comments must be approved before being published.


Copyright 2006-2013 Asad Asif - All rights reserved unless otherwise noted.

CSS | XHTML 1.0 Strict | RSS