cross-platform virtualization

{{Short description|Type of computer virtualisation}}

Cross-platform virtualization is a form of computer virtualization that allows software compiled for a specific instruction set 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. Alternatively, cross-platform virtualization may be used to support legacy code, which running on a newer and faster machine still maintains adequate performance even with virtualization overhead.

By creating an abstraction layer capable of running software compiled for a different computer system, cross-platform virtualization characterizes the Popek and Goldberg virtualization requirements outlined by Gerald J. Popek and Robert P. Goldberg in their 1974 article "Formal Requirements for Virtualizable Third Generation Architectures".{{cite journal | author=Gerald J. Popek and Robert P. Goldberg | title=Formal Requirements for Virtualizable Third Generation Architectures | journal=Communications of the ACM | year=1974 | volume=17 | issue=7 | pages=412–421 | doi=10.1145/361011.361073 | s2cid=53302633 | doi-access=free }} Cross-platform virtualization is distinct from simple emulation and binary translation - which involve the direct translation of one 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 instruction set, such as x86 or Power ISA. Modern variants of cross-platform virtualisation may employ hardware acceleration techniques{{Cite journal|last1=Spink|first1=Tom|last2=Wagstaff|first2=Harry|last3=Franke|first3=Björn|date=2016-12-28|title=Hardware-Accelerated Cross-Architecture Full-System Virtualization|journal=ACM Transactions on Architecture and Code Optimization |volume=13|issue=4|pages=36|doi=10.1145/2996798|issn=1544-3566|doi-access=free|hdl=20.500.11820/ab3fccd9-365d-4757-8d2c-f62aaeb59791|hdl-access=free}} to offset some of the cost incurred in the guest-to-host system translation.

See also

References