SDI Seminar

Speaker: Ali-Reza Adl-Tabatabai, CMU

A Lean, Mean Virtual Machine

Date: October 26, 1995

Abstract: In this talk, we describe the design and implementation of Omniware: a safe, efficient and language-independent system for executing mobile program modules. Previous approaches to implementing mobile code rely on either language semantics or abstract machine interpretation to enforce safety. In the former case, the mobile code system sacrifices universality to gain safety by dictating a particular source language or type system. In the latter case, the mobile code system sacrifices performance to gain safety through abstract machine interpretation.

Our approach uses software fault isolation, a technology developed to provide safe extension code for databases and operating systems, to achieve a unique combination of language-independence and excellent performance. Software fault isolation uses only the semantics of the underlying processor to determine whether a mobile code module can corrupt its execution environment. This separation of programming language implementation from program module safety enables our mobile code system to use a radically simplified virtual machine as its basis for portability. We used CISC instruction traces to augment the design of our RISC virtual machine, OmniVM. We measured the performance of the resulting system using a suite of four specmark programs on the Pentium, PowerPC, Mips and Sparc processor architectures. Including the overhead for enforcing safety on all four processors, OmniVM executed the benchmark programs within 21% as fast as the optimized, unsafe code produced by the vendor-supplied compiler.