VXA: Virtual eXecutable Archives

Bryan Ford
Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology

Introduction

VXA is an architecture for self-decoding active archives. When creating an archive, a VXA archiver embeds executable decoders for the compression schemes it uses in the archive along with the compressed file data itself. An archive reader can later extract the compressed data without any knowledge of the specific compression schemes the archiver used, by running the embedded decoders in a specialized virtual machine. In this way VXA allows archivers to evolve their compression schemes frequently, and use specialized schemes for particular data types such as multimedia, without forcing readers of the data into a constant upgrade cycle.

VXA is built on the VX32 virtual environment. VXA uses VX32 to run decoders safely at data extraction time, while isolating the decoders from the host operating system and preventing buggy or malicious decoders from compromising the host. The VX32 virtual machine runs standard x86 code that can be compiled by ordinary tools from any language, including C and assembly language, and decoders can take advantage of advanced processor features such as SSE/SSE2 vector processing instructions.

For more information about VXA and VX32 please see this paper:

Full code release of VXA coming soon! A preliminary code release of VX32 only is already available on the VX32 page.

Contact Info

For questions, comments, or improvements, contact Bryan Ford, baford (at) mit (dot) edu.

Related Links