Why Virtualization
In addition to energy savings and lower capital expenses due to more efficient use of your hardware resources, you get high availability of resources, better desktop management, increased security, and improved disaster recovery processes when you build a virtual infrastructure.
The developer's point of view:
If you are a developer, VM allows you to program in one OS, while loading up 1 or more target OS's (eg: 98, XP) to run your software in a completly isolated environment.
This saves you time in several ways:
- You do not have to create complicated DualBoot scenarios and boot out of your dev OS to reboot back into your target OS
- If you encounter a bug in the target OS, you can switch views back to your dev OS, fix the bug, and transmit the app back to the target OS -- all without exiting either the dev or taget OS.
- If your application causes a serious exception in the target OS, you don't have to reboot the computer, or even your dev OS -- you just close the target VM.
If you have enough resources (usually dictacted by the amount of memory you have available) you can simulate a virtual network of VM/stations in order to practice software rollouts or client/server interaction in a networked environment, all without putting live production equipment in jeopardy.
Hardware Management:
One compelling feature of VM is the ability to move a VM's image from one server to another with great ease.
Since the OS (and its apps) within the VM are completly isolated and abstracted from any true hardware, the switch can be performed between machines with different motherboards, and NICs -- something you can't do with Microsoft OS's without VM.
Experimentation:
You can also use a VM to try out alternative OS's without having to dedicate one or more partitions to it, or prepare a Dual Boot startup.
Since VMs can use virtual partitions (a partition that lives inside a file of dynamic or fixed size), you don't have to worry about reclaiming any hard drive space lost to experimentation.