VX32
Encyclopedia
The Vx32 virtual extension environment is an application-level virtual machine
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, OS
-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 recompilation
to prevent the "guest" plug-in code from accessing memory or jumping to instructions outside its designated sandbox. The Vx32 library redirects any system call
s the plug-in makes to the application itself rather than to the host operating system, thereby giving the application exclusive control over the API
and security environment in which the plug-in code executes.
Vx32 thus provides an application extension facility comparable in function to the Java virtual machine
(JVM) or the Common Language Runtime
(CLR), but with less overhead and with the ability to run code written in any language, safe
or unsafe. Vx32's primary disadvantage is that it is more difficult to make it run on non-x86 host processors.
Virtual machine
A 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, OS
Operating system
An 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 recompilation
Dynamic recompilation
In 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 call
System call
In 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 API
Application programming interface
An 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 machine
Java Virtual Machine
A 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 Runtime
Common Language Runtime
The 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, safe
Type safety
In 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
- The Vx32 Virtual Extension Environment
- Vx32: Lightweight User-level Sandboxing on the x86 - Paper presented at USENIX 2008
- 9vx - A port of Plan 9 from Bell LabsPlan 9 from Bell LabsPlan 9 from Bell Labs is a distributed operating system. It was developed primarily for research purposes as the successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...
to vx32. - vx32 for Win32