For a few years I have been experimenting with virtualization software and technology. Virtualization is not new, and chances are that some of the programs you use on a daily basis using simulation. Manufacturers want to pack as many features as possible into their products and virtualization allows them to create more attractive offerings to purchasers.
It has been only recently, however, that virtualization has caught the public eye as software has evolved to the level where entire operating systems can now be virtualized. Thanks to virtualization Macs can now run Windows, PC's can run Linux and a single computer can run several systems simultaneously. For Killswitch, virtualization means the ability to assess our development solutions in different computing environments without incurring the overhead of purchasing new machines.
Pros and Cons of Virtualization
Here are some possible benefits of integrating virtualization into your workflow:
- It allows businesses and power users to test and assess solutions in different environments and configurations on a single machine.
- It gives businesses the ability to test out a new system without having to purchase dedicated hardware for it.
- It gives power users and businesses the flexibility to switch between different operational environments (for example, between desktop work and local server environments).
- It saves money because a system can run on pre-existing hardware.
There can, however, be certain drawbacks:
- Older hardware may not have the processing power to successfully run the native system, virtualization and the guest system.
- Some functions and features may not work correctly if there are system incompatibilities with the hardware.
- Memory limitations may prohibit the environment you are trying to test from properly installing.
Overcoming Obstacles
In my opinion, the biggest obstacles to widespread virtualization are memory limitations and company end user policies. We are barely breaking out of the 4 GB memory limitation that has plagued the computing world for the past several years. Finally there are motherboards that allow users to upgrade from the 4 gigabyte limit to 8 or 16 GB, provided you use the right processor and operating system. The more memory available on a system, the better a computer running virtual systems can handle errors and bottlenecks.
The other problem, which is progressively getting more annoying, is a company's EULA. I understand a company's need to protect its profit margin, but that should not come at the cost of consumer satisfaction. Allowing virtualization of a product does not take away from it; in fact, if the product in question is stable and user friendly, that product will fly off the shelves!
Let's say that your computer is running Ubuntu, but a piece of software you need is available for Windows only, there simply is no equivalent for the Ubuntu platform. What's a user to do? Obviously, you could go out, spend a lot of money and buy a new Windows machine to that one program. Thanks to virtualization, however, you can now load a copy of Parallels Linux on your machine and install Windows XP or Vista. Note: Virtualizing Vista Business and Ultimate violates the software's EULA. If anything goes wrong, you are on your own.
Here at Killswitch we primarily use Macintosh computers, so virtualizing Windows XP has come in handy. At one point we had a client who misplaced some Flash source files that were used to create a .swf file on their site. Wanting to change the content in this .swf file, we needed a SWF decompiler (and we needed it fast). Though we were concerned when we found out the program we needed was Windows only, we were quickly relieved as it ran perfectly on our Macs using Parallels.
Based on my personal experience, here are some software virtualization solutions that I would recommend:
Mac Software
Parallels: This is one of the premiere software packages that you can use to emulate another computing environment. The interface is clear and everything is well explained. I use this both in the office and personally at home.
VMware: I have used VMware and it is right up there with Parallels. Some of the more advanced functions are a little complicated, but there are several tutorials online that can help clear up confusion.
Windows Software
Virtual PC: This software is a veteran commercial product and is a leading virtualization program for PCs with a robust feature set.
Virtual Box: This program is free and very straight forward. You can load Windows, Linux and other operating systems, as well as server environments.

