November 07, 2004

Virtual PC 2004

I'm playing around with Microsoft's Virtual PC 2004 tonight. You can download a 45-day Free Trial Edition and play around with it yourself.

I was kind of amazed at how well it works, but before I go into that let me explain what it is. VPC is an emulator for an entire computer. If you create a brand new VPC and you "start" it, you get a boot screen complete with hard disk detection, memory counting, etc. Of course, you can set all of these parameters and any drives you create are merely files on your hard drive.

Having a virtual computer like this has a few obvious benefits and a few more subtle ones. These are:

  • You can install multiple OS's on your machine and the management of them is far easier to understand and less risky than granting the Windows bootloader or GRUB the privilege of managing real OS installations on your real drive.
  • You can clone an OS install and evolve it separately from the original. This allows you to create a clean system and save that in case you want to go back to it.
  • You can work with an OS and when you're done, you can discard any changes you may have made to it. This allows, for instance, installation writers to test installation script against a clean system again and again.

The VPC you create is a real machine for all intents and purposes and this means that you need to physically install the hosted OS into the VPC. This means you have to "activate" Windows XP, for instance. The VPC 2004 license explicitly states that you need to purchase OS licenses appropriately.

Of course, once you "activate" a copy of Windows XP you can clone the installation as many times as your disk space will allow and no further activations will be necessary. I'm not sure how OS licensing applies at that point so tread carefully.

The performance of a VPC is better than I would have expected. I'd say a VPC runs at 50% to 75% of a real machine. For web browsing, e-mail reading, rss aggregation, general code editing, even light compiling the VPC speed is completely normal. Installations tend to drag on a bit and anything that is very disk intensive suffers more than tasks that are memory-based.

In the screenshot below, you can see that I'm installing Mandrake Linux 10.1.

Installation of OS's is supported by the ability to "claim" your real CD or DVD drive for use in the VM. It's basically mounted and used by the VPC. You can also mount an ISO image if you have one on your real disk. For the Mandrake installation above I had to pull down the CD menu and mount three separate ISO images as the installation required them.

The default VPC creates a virtual 16GB hard drive, creates a PC that reports 128MB of memory, and emulates a network connection, video, mouse, keyboard, COM ports, etc. The recommended memory allocation is only 128MB and I'm sure this is not too important a setting as your host OS' virtual memory system probably manages things better than you could. I should experiment with higher settings, but I feel this will only be necessary... when it's necessary and the reason is clear.

On your real drive, the VPC is a small file with a vmc file extension. The virtual hard drive file is the big one but is only as big as what you put into it. For instance, although the drive is 16GB, the on-disk utilization is only 1GB for a fresh XP install.

Once booted, a VPC can be pinged, connected to over TCP, shut down, suspended, and can do just about anything else you can think of.

The VPC isn't perfect. I failed to install Suse due to a hard disk error. I also failed to install Fedora Core 2 because I got a strange error that read as follows: "An internal virtual machine error (13) has occurred". Google says that others have experienced this error so I just moved onto Mandrake which was known to work well with VPC 2004. I'm not a real Linux user, so I had no allegiance to a particular distribution.

All in all, VPC seems like a good bargain at $120 list and a great way to geek out with alternative OS's.

 

Posted by Nick Codignotto at November 7, 2004 01:20 AM | TrackBack
Posted to General
Comments
Post a comment









Remember personal info?






Valid XHTML 1.0!   Valid CSS!