Check out the new USENIX Web site. next up previous
Next: Threaded Interpreter Up: SableVM: A Research Framework Previous: Contribution


Framework Overview

As shown in Figure 1, the SableVM experimental framework is a virtual machine composed of five main components: interpreter, memory manager, verifier, class loader, and native interface. In addition, the virtual machine implements various services required by the class library (e.g.: synchronization and threads).

Figure 1: The SableVM experimental framework
\begin{figure*}\centerline{\ \psfig{figure=figures/framework.eps,width=90mm}}\end{figure*}

SableVM is entirely5 written in portable C. Thus, its source code is readable and simple to modify. This makes an ideal framework for testing new high-level implementation features or bytecode language extensions. For example, adding a new arithmetic bytecode instruction entails making a minor modification to the class loader, adding a few rules to the verifier, and finally adding the related interpreter code. This is pretty easy to do in SableVM, as compared to a virtual machine written in assembly language, or a virtual machine with an embedded compiler (e.g. JIT).

The current implementation of SableVM targets the Linux operating System on Intel x86 processors. It uses the GNU libc implementation of POSIX thre-
ads to provide preemptive operating system level threads.


next up previous
Next: Threaded Interpreter Up: SableVM: A Research Framework Previous: Contribution
2001-02-27