05:23 PM
Fred Langa
Fred Langa

Langa Letter: Virtual Excellence: Microsoft's 'Virtual PC' Is Too Good Not To Check Out

In this introduction to the technology, Fred Langa says Microsoft Virtual PC provides a viable alternative to dual booting and should be a solid choice for software testing, evaluation, and support.

Late last year, Microsoft quietly rolled out its entry into the "virtual PC" arena--Microsoft Virtual PC 2004--and delivered its offering at about half the price of competing commercial products. What's more, Microsoft even offers a 100% free, 45-day trial of the software.

I've recently experimented with the software and think it deserves a close look by anyone seeking an alternative to dual-booting (say, to run Linux on a Windows PC); as well as by those involved in the traditional uses of virtual PCs, including software testing, evaluation, and support.

What follows isn't a formal software review, but rather an introduction to a technology you may not be familiar with--but that just might change the way you use your PC. While we'll focus on Microsoft Virtual PC, the concepts explained here also apply to other virtualization products, some of which we'll discuss later.

What It Is
A virtual PC is a standard desktop computer emulated in software. You can install an operating system, applications, or utilities on a virtual PC and use it the same way you do on a standard PC. The installed software thinks it's running on a normal, physical system, but it's not: Instead, it's running inside a protected memory space on a host system, with special emulation software masquerading as a separate and standalone BIOS, motherboard, hard drive, floppy, CD drive, display adapter, network card, and so on. A virtual PC provides all the normal hardware of a standard PC, created entirely in software.

This concept may seem murky, but it becomes clearer when you see how it's set up and used.

For example, say you install Microsoft Virtual PC 2004 software on your existing PC: It installs just like any other utility onto any PC running XP Pro, Win2000 Pro, or XP Tablet Edition.

When you first run it, the VPC software creates a new empty virtual PC (at this point, mostly just a space in RAM) and a virtual hard drive (at this point, just an empty file). The amount of RAM and hard drive space is fully customizable, although the VPC software will offer reasonable defaults.

When you start the new virtual PC (via a click on a "Console" that controls the VPC operation), a window opens on your current desktop. As the VPC wakes up, the emulated hardware starts to work, and you'll see what looks like--and is--a normal boot process going on inside the window. Outside the VPC window, your original operating system continues to function normally. Your system isn't booting--only the virtualized hardware is.

As the virtual PC hardware wakes up, it discovers the virtual BIOS, virtual drives, and other virtual hardware, and appears to perform a completely normal hardware boot, just as if you'd fired up a factory-fresh, virgin PC with an unformatted and empty hard drive.

Because there's no operating system or other software yet installed on the virtual PC, the hardware boot process ends with a normal prompt to insert a bootable floppy or a setup CD. When you do so, you can either let the new operating system format the virtual drive itself (most modern operating systems are self-installing); or you can manually FDISK, partition and format the virtual drive; and then manually install and set up the operating system of your choice. All this takes place entirely inside the virtual PC, without touching your real setup, and without affecting your real hard drive.

The Microsoft VPC software can run just about any operating system that normally runs on standard Intel- or AMD-class systems: DOS, Windows 95/98/ME/NT/2000/XP, Linux; etc. The VPC software doesn't provide these operating systems, of course, it just provides a means to run them.

When you're done, you'll have your original, normal operating system running--in fact, it's been running all along--with a window open in which a separate operating system is running in safe isolation.

As far as the second operating system is concerned, it's the only operating system on the PC; it's normally prevented from seeing the host operating system, or the host operating system's files. That means the secondary system normally can't affect or crash the host operating system. Whatever happens inside the virtual space stays there.

But even though it's safely isolated, all the normal PC functions are emulated, so the secondary operating system can use the network, access printers, go online, and so on: It's a fully functional PC in essentially every way--but safely isolated inside your main operating system.

Many Benefits
Obviously, a VPC is a wonderful testing tool because any operating system, application, or utility crashes that occur in the VPC will be safely contained and won't affect the main operating system. You can even reboot the VPC and watch it go through what appears to be a complete "hardware" shutdown and restart while you continue to use the real, physical PC and its main operating system, uninterrupted.

But the VPC also offers other benefits. For example, take ease of backup and recovery. Each VPC sees its own, separate hard drive, which behaves in almost every way as an utterly standard hard drive, even to the point of being able to be FDISKed, partitioned and formatted. But in reality, the "hard drive" is just a single file on the host operating system's real hard drive. That file is managed by the VPC software (running on the host operating system) which can grow and shrink the virtual hard drive file as needed. The VPC software also uses a form of compression to keep the file small. On my system, for example, a virtual drive that appears to be 18 Gbytes to the virtualized operating system is a single file on the host hard drive that actually occupies only about 1.25 Gbytes of real disk space.

Because each virtual hard drive resides in what is really just a file, backing up a virtual hard drive is simply a matter of copying that single file. For example, once a virtual PC is set up perfectly, just the way you want, you can shut it down and use your normal file tools to copy the virtual hard drive's file to a safe location or medium. Later, if the virtual PC gets fouled up beyond repair (through testing, user error, hacking, whatever) you can just copy back the stored hard drive file, and the virtual PC will instantly be restored to the way it was when you saved its perfect setup.

Suspend, "State Save," And More
When a VPC session is running, you can pause it at any point: When paused, the VPC session then gets no CPU cycles and remains frozen in time until it's un-paused. If you wish, you can even completely exit the VPC session; the Virtual PC Console will ask if you want to "save state" or simply exit. If you choose the former, the virtual hard drive is frozen, and the entire memory contents of the virtual PC session are saved to the host disk. This means you can restore the VPC session in the future to the exact point--even to the exact clock cycle--at which it was suspended.

This can be a huge time saver because you can restore a saved session far faster than a reboot. In fact, on my system, it takes only about 10 seconds to fully recover a saved VPC session!

This is wonderfully handy. For example, if you just need to check something out quickly in another operating system, instead of rebooting to a dual-boot setup or starting a second physical PC, a VPC lets you access a saved session in literally seconds. You can find your answer, and re-save the VCP (also just a few seconds) and you're done--all with essentially zero interruption of your normal operating system, which stays open and running the whole while.

Screen One

Screen One
(click image for larger view)

Enormous Power
Again, it can be easier to see what all this means than to read about it in the abstract, so let me demonstrate with screen shots captured from my personal PC:

Screen One is a capture of my standard XP Pro desktop; the Microsoft Virtual PC console is running. Several previous VPC sessions have been saved, but none are active at the moment.

Let's start with something simple: We'll restore a DOS session, shown in Screen Two.

Screen Two

Screen Two
(click image for larger view)
Note that this is not a "DOS window" or "Command window." Rather I've booted DOS on a full, independent, virtualized PC running inside XP. To give DOS something to do, I've run an ancient (1987!) version of the old "Microsoft System Diagnostics" to show some of the specs of the virtual PC; we'll come back to these specs later.

Installing Linux
Next, I'll run a popular Linux distribution, Lindows 4.0, in a separate virtual PC session, as you can see in Screen Three.

Screen Three

Screen Three
(click image for larger view)

In this screen, you can see the previous MS-DOS VPC is still running (I've moved its window to the lower right) with Lindows in the foreground. Each VPC thinks it's alone; each thinks it has a PC all to itself.

You also can see the Mozilla browser running inside Lindows; Mozilla is connected to the Lindows home site. Lindows thinks it has a direct connection to the internet via a unique and unshared network card. In reality, it's using a virtualized network card, supplied by the VPC software, which in turn accesses the real network card via XP, the host operating system.

Screen Four

Screen Four
(click image for larger view)
In Screen Four, you can see we've left the Lindows and DOS VPCs running--they're alive and fully functional, and any active tasks there continue to run normally. But we've also added a new VPC running Windows ME.

Note that the Device/Hardware Manager is open inside WinME: all the hardware shown there is virtualized, provided solely in software by the VPC.

Next, in Screen Five, you can see I've started a separate Linux session, this time running Xandros 2.0 Deluxe.

Screen Five

Screen Five
(click image for larger view)

As with Lindows, I've launched a browser to connect to the operating system's home page. And as before, all the other VPCs and the host XP system continue to run normally. That means that both Xandros and Lindows are online simultaneously through their virtualized network cards; both are really using the single real network card in the XP host system.

One more to go: Screen Six shows a separate installation of Windows XP Home running in its own VPC.

Screen Six

Screen Six
(click image for larger view)
At this point, there are six separate operating systems running: one copy of XP Pro is running Microsoft Virtual PC, which in turn is hosting separate, independent, and active instances of DOS, Lindows, WinME, Xandros, and XP Home. Although the XP Pro host system "sees" all the virtualized sessions, each session still thinks it exists alone, on its own private PC.

This is powerful stuff, and seeing six operating systems running at once speaks far more eloquently than mere words!

The Virtualized Hardware
The VPC's hardware emulation is impressively complete, from the BIOS on down. I ran a hardware-reporting tool on the host system and on three different operating systems running on virtual PCs to compare what was really on the host system to what each of the virtualized operating systems saw.

Table One shows the results: The VPC software thoroughly masks the hardware of the host machine, and provides emulations of fairly common, well-supported hardware that should work with almost any operating system. Not only does this help to make the host machine uncrashable by whatever goes on inside the virtual PC, it also means that the VPC software provides an easy way to create a standardized, widely compatible environment in which to test operating systems and other software. This can remove or reduce one of the biggest headaches in software validation and evaluation.

All virtualization/emulation software exacts a performance penalty: Any time you run two operating systems (or three, or four...) instead of one, you'll get less performance than if you ran each operating system alone.

And, as with any multitasking, the more you want to do at one time, the more horsepower you'll need. Microsoft says the minimum for its VPC software is a 400-MHz PC, but recommends 1-GHz. I found the VPC software slow but usable on an 800-MHz box (the slowest I tested it on), but better on faster systems.

On my primary 3.2-GHz machine, I was able to stream video in background VPC windows with very few dropped frames; and foreground VPCs ran as smoothly as most standard desktop systems I've used. Everything simply felt normal.

In case you think I'm being too generous, check this final screen shot:

Screen Seven
(click image for larger view)

It's the same setup as in Screen Six, except that I've opened the performance monitors in XP Home (in the upper left) and XP Pro (lower right).

With all six operating systems active and running simultaneously, the host system (XP Pro) is using only about 40% of its CPU cycles. XP Home, running on its virtual PC, is using about 18% of the cycles of its virtualized CPU.

Yes, the host machine is a fast one, but being able to run six operating systems simultaneously with 60% of the CPU still available is pretty impressive. Clearly the Virtual PC Software is well made, and makes good use of XP's strong native multitasking.

Other Factors
The Microsoft VPC site lists all the specifics and tech details, so I won't repeat them here; links appear below. Please also remember that this isn't intended as a formal product review but rather as an introduction to what's probably unfamiliar but potentially very useful technology.

As such, please note that there are other VPC tools available, too, including the free, open-source Bochs (pronounced "box") project: By all means, try out different tools.

And when you do, take advantage of the 45-day free trial of Microsoft Virtual PC. It's definitely worth a look. Although Microsoft's Virtual PC isn't free (it's available from many online merchants for $100-$110), and it requires XP to run, I find it a better fit for my needs than the other options I've looked at. (For example, the Bochs site states that it only supports Windows through Win95; I need something that can work with all current Windows.) But as with all things, the final "best" choice is whatever suits you own work style and preferences.

In any case, if you have an interest in running more than one operating system on your system; or if you need to run multiple operating systems for testing, support, or evaluation purposes, a virtual PC solution--and perhaps specifically, the Microsoft Virtual PC--merits a test drive.

As always, your comments, questions, and observations are welcome in the discussion area.

More info:

  • Virtual PC Home Page
  • Online Demo (select "virtual pc in action")
  • Virtual PC Overview
  • Microsoft Virtual PC 2004 Evaluation Guide
  • Virtual PC 2004 Product Overview
  • Microsoft Virtual PC 2004 Technical Overview

  • To discuss this column with other readers, please visit Fred Langa's forum on the Listening Post.

    To find out more about Fred Langa, please visit his page on the Listening Post.

    We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
    Comment  | 
    Email This  | 
    Print  | 
    More Insights
    Copyright © 2020 UBM Electronics, A UBM company, All rights reserved. Privacy Policy | Terms of Service