When people talk about Virtualization, they are most of the time referring to either Machine Virtualization, or Application Virtualization.
When You Virtualize an application, you isolate the application to run it its own little world, sometimes called a Sand Box. By doing this you can get around application compatibility issues, and simplify application deployment.
These virtual applications appear to run as normal applications, but in reality, are running in a separate environment. I will go into more detail regarding virtual applications in a later article as it is a pretty big topic.
When you virtualize an entire machine, you logically separate multiple operating systems running simultaneously on the same hardware. There are many reasons to virtualize a machine; some do it to save on power and floor space, some do it to eliminate hardware dependencies, others do it to make testing easier.
In most instances, machine virtualization is done using something called a Hypervisor. The Hypervisor is a bit of software that runs on top of another operating system and emulates the hardware an operating system would normally run on. The machine running the hypervisor is called the Host Machine; whereas the machine running on top of the hypervisor is called the guest operating system, guest machine, or virtual machine.
When creating virtual machines and virtual applications you have many options including offerings from Oracle, VMWare, Citrix, and Microsoft. I personally prefer the VMWare’s offerings because they have the best feature set, unfortunately, they are also the most expensive; at least in upfront costs.