Partial virtualization

From Wikipedia, the free encyclopedia

Main article: virtualization
See also: full virtualization
Note: The concept of partial virtualization is well established in the literature, but not always using this specific term. See virtualization regarding terminology.

Partial virtualization, in computer science, is a virtualization technique used to implement a certain kind of virtual machine environment: one that provides a partial simulation of the underlying hardware. Most but not all of the hardware features are simulated, yielding virtual machines in which some but not all software can be run without modification. Usually, this means that entire operating systems cannot run in the virtual machine – which would be the sign of full virtualization – but that many applications can run.

A key form of partial virtualization is "address space virtualization", in which each virtual machine consists of an independent address space. This capability requires address relocation hardware, and has been present in most practical examples of partial virtualization.

Partial virtualization was an important historical milestone on the way to full virtualization. It was used in the first-generation time-sharing system CTSS, and in the IBM M44/44X experimental paging system. The term could also be used to describe any operating system that provides separate address spaces for individual users or processes, including many that today would not be considered virtual machine systems. Experience with partial virtualization, and its limitations, led to the creation of the first full virtualization system (IBM's CP-40, the first iteration of CP/CMS which would eventually become IBM's VM family).

Partial virtualization is significantly easier to implement than full virtualization, for obvious reasons. It has often provided useful, robust virtual machines, capable of supporting important applications. Its drawback (compared with full virtualization) is in situations requiring backward compatibility or portability: If certain hardware features are not simulated, then any software using those features will fail. Moreover, it can be hard to anticipate precisely which features have been used by a given application.

Partial virtualization has proven highly successful for sharing computer resources among multiple users.

[edit] References

See specific sources listed under virtualization and (for historical sources) CP/CMS.