El entorno de extensión virtual Vx32 es una máquina virtual a nivel de aplicación implementada como una biblioteca en modo de usuario ordinario y diseñada para ejecutar código x86 nativo . Las aplicaciones pueden vincularse con Vx32 y usarlo para crear entornos de ejecución seguros, independientes del sistema operativo, en los que ejecutar complementos no confiables u otras extensiones escritas en cualquier lenguaje que compile código x86.
Desarrollador (es) | Bryan Ford y Russ Cox |
---|---|
Lanzamiento estable | 0,12 |
Sistema operativo | FreeBSD , Linux , Mac OS X |
Tipo | Máquina virtual a nivel de aplicación |
Sitio web | http://pdos.csail.mit.edu/~baford/vm/ |
Desde el punto de vista del procesador host, los complementos que se ejecutan en el monitor de la máquina virtual Vx32 se ejecutan en el contexto del proceso de la aplicación en sí, pero la biblioteca Vx32 utiliza una recopilación dinámica para evitar que el código del complemento "invitado" acceda a la memoria o salte a las instrucciones. fuera de su caja de arena designada. La biblioteca Vx32 redirige las llamadas al sistema que realiza el complemento a la propia aplicación en lugar de al sistema operativo host, lo que le da a la aplicación control exclusivo sobre la API y el entorno de seguridad en el que se ejecuta el código del complemento.
Por lo tanto, Vx32 proporciona una instalación de extensión de aplicaciones comparable en función a la máquina virtual Java (JVM) o Common Language Runtime (CLR), pero con menos gastos generales y con la capacidad de ejecutar código escrito en cualquier idioma, seguro o inseguro. La principal desventaja de Vx32 es que es más difícil ejecutarlo en procesadores de host que no son x86.
Crítica
Hay algunas desventajas que han propuesto los críticos de Vx32:
- Vx32 está estrechamente vinculado al conjunto de instrucciones IA-32 , lo que dificulta su uso en arquitecturas que no son x86
- Los invitados no pueden usar el modo IA-32e (AMD64) (el host aún puede ejecutarse en modo de 64 bits), debido al uso de la segmentación que es inherente al diseño de Vx32
enlaces externos
- El entorno de extensión virtual Vx32
- Vx32: Sandboxing ligero a nivel de usuario en x86 - Documento presentado en USENIX 2008
- 9vx : un puerto de Plan 9 de Bell Labs a vx32.
- vx32 para Win32