Mu is a micro-virtual-machine targeted at managed languages and intended as a verification target.
The Mu Micro-VM project is defining, developing, evaluating, and refining the essential components of a new foundation layer for managed language implementation. In doing so, it addresses a key source of systemic inefficiency, by pioneering micro virtual machines as an efficient high-performance substrate for managed language implementation. The relationship between a micro-VM and existing managed language implementations is analogous to the one between an operating system micro-kernel and monolithic operating systems such as Linux. A micro-VM captures the insight that there exists a well-defined foundation common to most modern languages that can take responsibility for fundamental abstractions over hardware, concurrency, and memory. By isolating and exposing this substrate, a micro-VM embodies state-of-the-art base technology available to language implementers while isolating them from the pernicious complexities of these abstractions, freeing them to focus on all-important language-specific optimizations. This project will enable more efficient software and a distinctly sharper focus for language implementation research and development.
One of the goals for our Mu prototype micro-VM is that aspects of its implementation be amenable to verification. For that reason, we have adopted a minimalist design and implementation for Mu. The Mu specification and prototype implementations can be found at http://microvm.org.
The Mu project is a collaboration among Data61, The Australian National University, Purdue University, and the University of Massachusetts at Amherst, supported by Data61, the Australian Research Council, and the US National Science Foundation.