The
Vx32 virtual extension environment is an
application-level virtual machineA virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
implemented as an ordinary user-mode library and designed to run native x86 code. Applications can link with and use Vx32 in order to create safe,
OSAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
-independent execution environments, in which to run untrusted plug-ins or other extensions written in any language that compiles to x86 code.
From the host processor's viewpoint, plug-ins running under the Vx32 virtual machine monitor run in the context of the application process itself, but the Vx32 library uses
dynamic recompilationIn computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution...
to prevent the "guest" plug-in code from accessing memory or jumping to instructions outside its designated sandbox. The Vx32 library redirects any
system callIn computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...
s the plug-in makes to the application itself rather than to the host operating system, thereby giving the application exclusive control over the
APIAn application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
and security environment in which the plug-in code executes.
Vx32 thus provides an application extension facility comparable in function to the
Java virtual machineA Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
(JVM) or the
Common Language RuntimeThe Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...
(CLR), but with less overhead and with the ability to run code written in
any language,
safeIn computer science, type safety is the extent to which a programming language discourages or prevents type errors. A type error is erroneous or undesirable program behaviour caused by a discrepancy between differing data types...
or unsafe. Vx32's primary disadvantage is that it is more difficult to make it run on non-x86 host processors.
Criticism
There are some disadvantages that have been proposed by critics of Vx32:
- Vx32 is closely tied to the IA-32 instruction set, which makes it difficult to use on non-x86 architectures
- The IA-32e (AMD64) mode cannot be used by guests (the host can still run in 64-bit mode), because of the use of segmentation which is inherent to Vx32's design
External links