The Aegis VM Project
Last modified: $Date: 2004/06/26 04:54:05 $
The Aegis VM Project is an on-going, open source effort to develop
a lightweight, secure virtual machine for executing Java bytecode.
The VM is intended to be an extension framework for applications or
devices to dynamically load and execute untrusted software extensions.
The current goal is to make the Aegis VM conform to the Foundation
Profile of the J2ME Connection Device Configuration.
What differentiates the Aegis VM from other JVM implementations is
its modular bytecode verification architecture, Proof
Linking. Under this architecture, application-specific
verification technologies can be easily integrated into the dynamic
linking process of the VM as Pluggable Verification Modules (PVM).
The PVM facility has been fully implemented, and is
available in the latest release.
The Aegis VM software is composed of 3 packages:
- aegisvm (LGPL):
The Aegis VM will be distributed under the GNU Lesser Public License
as a C library. Programmers interact with the VM through the Java
Native Interface (JNI) API. This makes it easy for users to integrate
the VM into an application or a device as an extension framework.
A command line wrapper is also available.
- prelude (LGPL):
The Prelude library offers utilities for developing pluggable
verification modules and other bytecode analyzers. Specifically,
it provides functions for parsing, analyzing and
annotating Java classfiles. Also comes with the package is
a number of command line utilities that PVM developers will
- libjpr (MIT):
Both the Aegis VM and the Prelude library are written into
a portability layer, the J Portable Runtime (JPR) API,
which shields the two libraries from platform-dependent features.
The package libjpr is a reference implementation of
the JPR API on Linux (x86). Theoretically, porting the two
libraries into alternative platforms involve only rewriting
Unlike libaegisvm and libprelude,
libjpr is distributed under the MIT license. The
rationale for this choice of license is that, in case you
want to port Aegis VM or Prelude to some proprietary platforms,
you may do so without disclosing proprietary information.
The project is in its pre-alpha development stage. The latest
development release of the Aegis VM is 0.2.0. This release requires
Prelude 0.2.0 and libjpr
Previous releases can be found here.
Contributing to the Project
We do welcome developers to contribute to the development of Aegis VM.
Contact the project maintainer if you are interested in helping.
You will find the following helpful:
The Aegis VM Project implements the Proof Linking verification
architecture. Technical papers about this architecture can be found