Software Virtualization:
A virtual machine is an environment which appears to a "guest" operating system as hardware, but is simulated in a contained software environment by the host system. The simulation must be robust enough for hardware drivers in the guest system to work. The creation and management of virtual machines is often referred to as Server Virtualization. There are several approaches, including:
Emulation (or "full virtualization with dynamic recompilation") — the virtual machine simulates the complete hardware, allowing an unmodified OS for a completely different CPU to be run. (e.g. Bochs, PearPC, PPC version of Virtual PC, Qemu without acceleration)
Native virtualization and "full virtualization" — the virtual machine only partially simulates enough hardware to allow an unmodified OS to be run in isolation, but the guest OS must be designed for the same type of CPU. (e.g. VMware Workstation, VMware Server (formerly GSX Server), Parallels Desktop, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro)
Paravirtualization — the virtual machine does not simulate hardware but instead offers a special API that requires OS modifications. This system call to the hypervisor is called a "hypercall" in Xen and Parallels Workstation, and a "DIAGNOSE code" in IBM’s VM (e.g. VMware ESX Server, Win4Lin 9x).
Operating system-level virtualization — virtualizing a physical server at the operating system level, enabling multiple isolated and secure virtualized servers on a single physical server. The guest OS environments are the same OS as the host system, since the same OS kernel is used to implement the guest environments. Examples are Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers and FreeBSD Jails.
Application Virtualization involves the running of a desktop or server application locally, using local resources, without being installed (compare with Software installation and Terminal Services). A virtualized application runs in a small virtual environment that contains the registry entries, files, and other components that it needs to execute. This virtual environment acts as a layer between the application and the operating system, and eliminates application conflicts and application-OS conflicts. Examples are the Sun Java Virtual Machine, Softricity, Thinstall, Altiris, and Trigence.
From the above, a software developer would probably want to charge more for licensing. If Norton Anti-Virus (for example) could be "virtualized" on as many machines as one wants, how would Symantec (or any other company that’s in the business of making money) continue to survive?
From Wikipedia:
Software Virtualization:
A virtual machine is an environment which appears to a "guest" operating system as hardware, but is simulated in a contained software environment by the host system. The simulation must be robust enough for hardware drivers in the guest system to work. The creation and management of virtual machines is often referred to as Server Virtualization. There are several approaches, including:
Emulation (or "full virtualization with dynamic recompilation") — the virtual machine simulates the complete hardware, allowing an unmodified OS for a completely different CPU to be run. (e.g. Bochs, PearPC, PPC version of Virtual PC, Qemu without acceleration)
Native virtualization and "full virtualization" — the virtual machine only partially simulates enough hardware to allow an unmodified OS to be run in isolation, but the guest OS must be designed for the same type of CPU. (e.g. VMware Workstation, VMware Server (formerly GSX Server), Parallels Desktop, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro)
Paravirtualization — the virtual machine does not simulate hardware but instead offers a special API that requires OS modifications. This system call to the hypervisor is called a "hypercall" in Xen and Parallels Workstation, and a "DIAGNOSE code" in IBM’s VM (e.g. VMware ESX Server, Win4Lin 9x).
Operating system-level virtualization — virtualizing a physical server at the operating system level, enabling multiple isolated and secure virtualized servers on a single physical server. The guest OS environments are the same OS as the host system, since the same OS kernel is used to implement the guest environments. Examples are Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers and FreeBSD Jails.
Application Virtualization involves the running of a desktop or server application locally, using local resources, without being installed (compare with Software installation and Terminal Services). A virtualized application runs in a small virtual environment that contains the registry entries, files, and other components that it needs to execute. This virtual environment acts as a layer between the application and the operating system, and eliminates application conflicts and application-OS conflicts. Examples are the Sun Java Virtual Machine, Softricity, Thinstall, Altiris, and Trigence.
From the above, a software developer would probably want to charge more for licensing. If Norton Anti-Virus (for example) could be "virtualized" on as many machines as one wants, how would Symantec (or any other company that’s in the business of making money) continue to survive?
plrr