Vx32
   HOME

TheInfoList



OR:

{{Infobox software , name = Vx32 , title = Vx32 , logo = , screenshot = , caption = , collapsible = , author = , developer = Bryan Ford, Russ Cox , released = , discontinued = , latest release version = 0.12 , latest release date = , latest preview version = , latest preview date = , frequently updated = , programming language = , operating system =
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
, platform = , size = , language = , status = , genre = Application-level virtual machine , license = , website = http://pdos.csail.mit.edu/~baford/vm/ The Vx32 virtual extension environment is an application-level virtual machine implemented as an ordinary user-mode library and designed to run native
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
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 A hypervisor (also known as a virtual machine monitor, VMM, or virtualizer) is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called ...
run in the context of the application process itself, but the Vx32 library uses
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. By compiling during execution, the system can tailor the generated code to r ...
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 In computing, a system call (commonly abbreviated to syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, acc ...
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 An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
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 A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
(JVM) or the
Common Language Runtime The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instructio ...
(CLR), but with less overhead and with the ability to run code written in ''any'' language,
safe A safe (also called a strongbox or coffer) is a secure lockable box used for securing valuable objects against theft or fire. A safe is usually a hollow cuboid or cylinder, with one face being removable or hinged to form a door. The body and ...
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
- Paper presented at USENIX 2008
9vx
- A port of
Plan 9 from Bell Labs Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has be ...
to vx32.
vx32 for Win32
Virtualization software Virtualization software for Linux X86 emulators