A "computer running in a computer"
In computing, virtualization is a broad term that usually refers to the abstraction of resources on a computer. Usually this is accomplished using either a virtual machine or an operating system that has tools to enable virtual environments to run inside it.
A simple way of looking at virtualization is that you run a "computer in a computer." As a simple example of this, you can run a Nintendo emulator on a computer running Linux, Windows or Mac OS, allowing you to play games originally designed to run on a Nintendo Entertainment System (NES) on your computer. This is one example of virtualization - you're running a "virtual" NES on your (Intel x86) computer.
Terms used in this article refer to guests and a host. The host system is what runs the software that makes virtualization possible. A guest an operating system that runs inside a host. Another term used is instance, which is the combination of a guest operating system and a specific client application context using it. The terms are blurred; a host can itself be a virtual machine.
Reasons for virtualization
Please see the Virtual server article.
Using virtualization in a desktop environment, one PC can run applications for multiple operating systems. Microsoft, for example, has an XP Pro compatibility mode for Windows 7, which runs in Virtual PC. Concurrent LINUX and Windows is useful in many situations.
It can be useful to run multiple instances of the same operating system. A developer might want to run a testing instance while running a general office productivity application on another.
For backwards compatibility, newer operating systems use virtualization to support older software products that otherwise would have to be rewritten in order to run.
Newer versions of Microsoft Windows (those based on the Windows NT Core) automatically start a behind-the-scenes built-in virtual machine called NTVDM (the NT Virtual DOS Machine) when DOS programs are run. The NTVDM runs DOS in a virtual machine on top of Windows. This can be observed by going to Start -> Run, typing in command.com and hitting "OK". If you run Task Manager, you can also see the
NTVDM.EXE process running.
Another example of virtual machine implementation is in versions of Apple's Mac OS X. As with Windows NT, OS X was a complete redesign from scratch, and programs written for its predecessor OS 9 could not run natively. A virtual machine called the Blue box was created to run a full copy of OS 9 on top of OS X, in order to allow older programs to execute. When Apple changed their hardware from the PowerPC architecture to an Intel x86-based system architecture, the blue box was deprecated.