Virtual-machine schemes come in two varieties, but each variety comes with its own variants
A primer on the varieties of virtualization.
The first variety -- sometimes referred to as native virtualization -- occurs when a hypervisor (also called a microkernel) directly virtualizes all host resources to multiple guest operating systems. That translates instructions that need systems resources on the fly via direct hardware-virtualization/system-instruction translation.
Direct translation presents a discrete virtual-machine appearance to each guest operating system and the applications riding on top of it.
Guest operating systems in this scheme don't need to be modified or be aware of the virtualized representation state of the hardware platform, because their resource needs are managed by the microkernel. VMware's ESX platform is a prime example of a direct hardware-virtualization system.
1a. Client direct-processor emulation
A variant of native virtualization is a process called client direct-processor emulation, where applications of another operating system are given operating-system resource-emulation capability. This scheme lets applications native to Windows XP work on Apple's Macintosh OS 10.4 using products from Parallels or Microsoft.
This is a scheme typically associated with desktop virtualization.
The second variety, called paravirtualization, also uses a hypervisor host operating system, but it presents hardware resources to "aware" kernel versions of guest operating systems. Virtual Iron Software uses a branch of the Xen open source project in its virtual-machine platform and management products that approach virtualization in this manner.
Hypervisors of the first variety translate instructions on the fly, remapping resources directly or to arbitration code (instruction-translation routines) for all guest operating-system requests. Paravirtualized systems don't need to go that far, because the instructions needed for guest operating systems have been made "aware" that resources are to be directed to a paravirtualized kernel instance underneath. In turn, the paravirtualized services are offered in a way that links to guest operating systems efficiently. Or so the argument goes. There is much contention about which virtualization method is more efficient, and for what server roles.
A variant of paravirtualization is a container, also known as a sandbox or application partition. Generally, containers provide additional application isolation from the misbehavior of other applications (and perhaps system events) to provide isolation, application behavior control, instance monitoring, higher availability or other administration needs.
To one degree or another, containers make a logical element of an application and often represent system resources to the application as though the application were the only one living on the host. Championed by Sun, containers can be found in Solaris, but other forms of containers are offered by Microsoft in SoftGrid, Red Hat Linux in SELinux and by Symantec/Altiris in SVE -- a sandbox for applications used in Windows 2000/XP/Vista/2003 platforms.
Learn more about this topic
Bryan Lunduke talks with Martin Wimpress—the man behind Ubuntu MATE—about why he decided to make his...
I love my iPhone 6 Plus—and that’s Apple’s problem.
The Internet of Things is predicted to grow to a $1.4 trillion market by 2020, which means there are...
The website of toy maker Maisto was infected with malicious code that distributed CryptXXX, a new and...
Follow these steps to reap the benefits of SDN without disrupting your IT environment
Three ways to respond to demands for a fast, iterative, rapid-feedback monitoring solution
Flame wars in the bug tracker might be exactly the right (harsh) feedback your code needs