Cross-platform virtualization

From Wikipedia, the free encyclopedia

Cross-platform virtualization is a form of computer virtualization that allows software compiled for a specific CPU and operating system to run unmodified on computers with different CPUs and/or operating systems, through a combination of dynamic binary translation and operating system call mapping.

Since the software runs on a virtualized equivalent of the original computer, it does not require recompilation or porting, thus saving time and development resources. However, the processing overhead of binary translation and call mapping imposes a performance penalty, when compared to natively-compiled software. For this reason, cross-platform virtualization may be used as a temporary solution until resources are available to port the software.

By creating an abstraction layer capable of running software compiled for a different computer system, cross-platform virtualization characterizes the behavior outlined by Gerald J. Popek and Robert P. Goldberg in their 1974 article "Formal Requirements for Virtualizable Third Generation Architectures"[1]. Cross-platform virtualization is distinct from emulation and binary translation - which involve the direct translation of one CPU instruction set to another - since the inclusion of operating system call mapping provides a more complete virtualized environment. Cross-platform virtualization is also complementary to server virtualization and desktop virtualization solutions, since these are typically constrained to a single CPU type, such as x86 or POWER.

[edit] See also

[edit] References

  1. ^ Gerald J. Popek and Robert P. Goldberg (1974). "Formal Requirements for Virtualizable Third Generation Architectures". Communications of the ACM 17 (7): 412 –421. doi:10.1145/361011.361073.