Listen...You Smell Something?

Mike Frank's blog
in

Virtual Machine Junkie

I'm a virtual machine junkie. I am always starting, stopping, creating, restoring, deleting, moving ,copying, and any other actions you can take with virtual machines (though they are difficult to throw out the window since they are virtual and all). Most of this activity happens because I like to play with Beta (or even CTP) software. Why would I install Beta software on a production machine when I can install it on a virtual one? In the past I used to re-pave (format, reinstall OS and all apps) my machines about once every 3 or 4 months. Part of this was necessary because I was running Windows 95, Windows 98, Windows NT, etc. but most of it was because I was constantly installing and removing software. I guess it's not even Beta software most of the time. I enjoy installing and playing with new software of all types. A couple of years ago I discovered the joy of virtual machines (I think it was a Citrix product that later became Virtual PC). Now I re-pave my machines once a year or less. Any apps usually have to get tested on a virtual machine before they make it onto the real deal. It really helps for all of the applications that I'm just curious about.

Before I really start gushing about virtual machines (too late) and the software to use them I feel I should take a moment and explain my take on what a virtual machine is and some of the terms that I'll be using. A virtual machine is an isolated environment on your PC that behaves as if it were it's own physical PC. The virtual machine thinks it has its own processor, memory, hard disk, video card, etc. The hardware is all simulated by the program running the virtual machine. It's that simple (I'm sure this is an awesome bit of engineering and software development under the covers but I like to leave that under the covers so I feel it is simple). I'll use terms like virtual machine or VM for the virtual machine. Host or Host OS for the physical machine and the operating system running on it. Guest or Guest OS for a virtual machine and the operating system running on it. You can have multiple guests running on one host.

Most of my VM's have been done with Microsoft's Virtual PC. Virtual PC is a very nice product that can do a lot and does not have a huge learning curve. It allows you to easily setup a new virtual machine with one or more virtual hard disks (files on the host machine) and network connectivity. You can turn on what they call Undo Disks and when you shut the machine off you can either commit changes to the virtual hard disk, delete changes and essentially act like you never did anything on the machine since changes were last committed, or just leave things as they are with the changes still there but uncommitted. This allows you to take a VM and install software on it (or do anything else you like), try it out and then discard changes and the VM never knows that you tried to install anything. Sweet!

As I mentioned, Virtual PC is a Microsoft product. This means that it officially only supports Microsoft operating systems as the host and the guest(s). This is just the official support. While I do believe that the host has to be a Microsoft OS, the guest can be many other things with Linux being the most popular (I think).

Before you create a new VM and install a guest OS it helps to take a peek around the menus and options available in Virtual PC. One of the more important ones to note is the Performance options (File->Options->Performance). This tells Virtual PC how to allocate the finite time of the real processor between the host and guest OS. I've known several people who have setup a VM and started a long install process (usually a hour or so) and gone to bed. They wake up in the morning to find the install still running. The culprit is one of the performance settings that says when the VM is running in the background then processes on the host have priority. What you want (especially when installing) is the option that says to run the VM at maximum speed. This can slow down your host processes but I find that when I'm working with a VM I am not doing much of anything on the host anyways.

This is running a little long and I've just given a basic introduction to using virtual machines. I have tons more to say on this topic (as anyone who knows me can tell you) so I'll create further posts. I definitely want to talk about VMWare Workstation as a better alternative (and more expensive) to Virtual PC.

Comments

No Comments