Vx32
# Vx32

Vx32 è una libreria funzionante in spazio utente che crea un ambiente virtuale che permette di eseguire generico codice X86 all'interno di una sandbox funzionante in modalità utente. La libreria permette di sviluppare applicazioni funzionanti in uno spazio di memoria sicuro e indipendente dal sistema operativo. Questo permette di eseguire plug-in non verificati in sicurezza dato che il codice eseguito rimane vincolato alla sandbox creata dalla libreria e non può accedere alle risorse del sistema operativo che ospita la libreria.

Per il processore ospitante i plug-in sono eseguiti dalla macchina virtuale implementata dalla libreria Vx32. La libreria utilizza la ricompilazione dinamica per evitare che il plug-in acceda a locazioni di memoria fuori dalla sandbox. La libreria redirige le chiamate di sistema del plug-in verso il suo gestore controllando in modo esclusivo il plug-in.

Vx32 fornisce al programmatore un ambiente sicuro e protetto simile a quello fornito dalla macchina virtuale Java o dal Common Language Runtime, ma con un minore overhead e con la possibilità di eseguire qualsiasi linguaggio compilabile per architettura x86. Il principale svantaggio è che la libreria è difficilmente eseguibile su macchine non X86.

## Critiche

La particolarità della libreria impone delle limitazioni al programmatore, le principali sono:

* La libreria è legata strettamente all'architettura IA-32 e quindi è difficilmente portabile su macchine non x86.
* La modalità IA-32e (AMD64) non può essere utilizzata dato che la libreria usa la segmentazione per funzionare correttamente.
