There's no question that virtualization is a hot topic right now. At its simplest level, virtualization is nothing more than removing the link between physical and logical. The easiest-to-understand example is also the most common form of virtualization -- a virtual machine. This involves running a guest machine on a host machine. It can be accomplished using any of a number of Microsoft solutions, including Hyper-V (the latest virtual machine solution included in most versions of Server 2008), Virtual PC, and Virtual Server (both free downloads from Microsoft). The idea behind a virtual machine is that your host machine is running one of the products mentioned above, which allows you to create guest machines which can be running different operating systems. The guest machines share the hardware (memory, CPU, etc.) with your host machine. But, they are not dependent on it. The guest machine can easily be booted up on another host machine that is running the same virtualization program. Once you begin to understand the features, you can begin to see the advantages as well. Let's take a simple example:
Contoso Computer Learning Center is teaching a new class in Windows Vista. They have several instructors who teach the same course -- how to familiarize Windows XP users with Windows Vista. For this course, they show users how a task was done in Windows XP and how you can accomplish that same task faster and easier in Windows Vista. They run both operating systems so that the users can quickly understand the new information. They could do this using two physical computers. Or, they could use a Vista host machine running Virtual PC, which has a Windows XP guest machine running. They can quickly switch between the host OS and the guest OS to showcase the features of both without being forced to use two physical machines and having to switch back and forth. Further, they have stored the XP guest machine on an external USB drive, so it can easily be used by anyone who happens to be teaching the class. They plug the USB drive in, start Virtual PC and launch the Windows XP guest machine.
With me so far? This is an exceedingly simple example, but one that I use during every presentation. Rather than carrying several laptops around with me, or dual booting from one OS to another, I simply use Virtual PC and different guest machine files to showcase our different products (like Server 2008, for instance). Thus, the logical (the OS running in the virtual machine) is removed from the physical dependency. "But doesn't the guest machine still need a physical machine to run on?" you ask. Absolutely. But, it does not have to be any particular machine. I can pull up my Server 2008 virtual machine on my Lenovo laptop. Or on my HP laptop. Or even on my home machine or a customer machine that has Virtual PC installed.
Before I get into all the advantages of virtualization technology and which solution is better for a virtual environment, I want to step back -- I was using a virtual machine as an example to discuss what virtualization is. Now that we have an understanding of the separation between physical and logical, let's take a look at a picture showing several different types of virtualization:
You can see from the picture that Microsoft has a significant number of products that fall into the virtualization category. I'll be covering all of them in some detail in future posts, but let's continue on with our discussion of virtual machine technologies.
Virtual PC -- Virtual PC is, as I mentioned earlier, a free download from Microsoft.com and a very easy way to get started with virtualization. This solution works well for training, product demonstrations, and even end-users who need access to different operating systems (such as developers or those who need to run XP, for instance, to access a legacy Line of Business application). It is extremely easy to use. Once you install the program, you can run it from the Start Menu like any other program. The interface looks like this:
You can see your whole list of available virtual machines as well as their current status. The settings button allows you to change all of the vital information about your system, including network settings, allocated memory and hard drive space, and even the file name of your machine. (This is the name that shows in the console above. Giving them easy-to-understand names makes it much easier to select the correct machine to work on.) Double clicking one of the machines causes it to boot up, just as if you clicked the power switch on a physical machine.
Virtual PC also supports a number of features (as do all of our virtual machine technologies) including shared folders (which let you access folders on the host machine as mapped network drives on the guest machine), state save (which allows you to turn off the virtual machine, but save its current state. This means when you turn the machine back on, it doesn't boot up from scratch, but rather starts in the state you left it in, much like hibernation on Windows XP/Vista.), and the ability to roll back the machine to a previous state. (This means that you can create a machine, muck around with it (testing a new application or demoing a product, for instance), then roll it back to its previous configuration, as if none of the changes you just made ever happened.)
You can begin to see the implications here, right? Lab environments, for instance, can be used, then restored in seconds, greatly reducing the testing cycle. You could use Virtual PC running Windows XP to support that old legacy application which is preventing you from reaping the benefits of Vista in your organization. Classrooms can use Virtual PC to simplify the rebuilding of a machine once the class is over. Just revert back to the original state of the machine once the class is over and the machine is exactly the same as it was before the class started. No more reloading machines! And the list goes on and on.
Are you salivating yet? The truth is, this is only scratching the surface. Quite honestly, Virtual PC is the simplest of the virtual machine technologies both in terms of usability and feature set. Virtual Server and Hyper-V introduce even more dazzling features, making them perfect for more demanding applications. In my next post, I will cover Virtual Server 2005 before moving on to our latest introduction to the world of virtualization, Server 2008's Hyper-V.
I always expected that Virtual PC would support bidirectional parallel porst when the host used one.
For one one reason or another it is only a spp port that is emulated. Do you happen to knwo why?
I tried to trick it thru device manager by disabling the SPP port and enabling an ECP port to have it working. To no avail.
in another blog i posed a few questions:
is there a reason why only SPP is enabled?
do you intend to put ecp support in virtual pc in the near future?
is a workaround available (eg register changes?)
or do you have an experimental solution so that I could test that for you?
Could you shed some light on this issue?
wimkapteyn at hot mail dot com