<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
          "http://www.w3.org/TR/html4/strict.dtd">
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <title>"VMKit" JVM and .Net runtimes for LLVM</title>
  <link type="text/css" rel="stylesheet" href="menu.css" />
  <link type="text/css" rel="stylesheet" href="content.css" />
</head>
<body>
<!--#include virtual="menu.html.incl"-->
<div id="content">
  <!--*********************************************************************-->
  <h1>VMKit: JVM and .Net runtimes for LLVM</h1>
  <!--*********************************************************************-->
  
  <p>The VMKit project is an implementation of a JVM and CLI virtual machine
  (.Net is an implementation of the CLI). It translates Java bytecode and
  MSIL in the LLVM IR and uses the <a href="http://llvm.org">LLVM framework</a>
  for optimizations and compilation. For garbage collection, it uses
  <a href="http://jikesrvm.org/MMTk">MMTk</a>.
  You can <a href="get_started.html">get and build</a> the
  source today.</p>
  
  <!--=====================================================================-->
  <h2 id="goals">Features</h2>
  <!--=====================================================================-->
  
  <p>VMKit provides the following features:</p>
  
  <p><b>End-User Features</a></b>:</p>
  
  <ul>
  <li>Runs any Java and .Net applications on MacOSX and Unix-based systems.</li>
  <li>Precise garbage collection.</li>
  <li>Just-in-Time and Ahead-of-Time compilation.</li>
  <li>Portable on many architectures (x86, x64, ppc32, ppc64, arm).</li>
  </ul>

  <p><b>Developer Features</a></b>:</p>

  <ul>
    <li>Relatively small code base (~ 20k loc per VM)</li>
    <li>Infrastructure for running multiple VM/applications in a single
        process</li>
    <li>Infrastructure for virtual machine research and development</li>
  </ul>

  <!--=====================================================================-->
  <h2>Why?</h2>
  <!--=====================================================================-->
  
  <p>The development of VMKit was started out of a need to factorize virtual
     machine development. The JVM and CLI virtual machine have many 
     similarities, but are too high-level to be the basis of a "universal"
     virtual machine. The LLVM IR on the opposite is low-level enough to be 
     able to execute these VMs. VMKit is a proof of concept implementation
     towards that direction.</p>
     
  <p>The PhD thesis that initiated VMKit:
  <ul>
    <li><a href="publications/thesis.html">Nicolas Geoffray's PhD thesis</a>
    </li>
  </ul>
     
  <p>An introduction to VMKit can be found in the following video lectures:
  <ul>
    <li><a href="http://llvm.org/devmtg/2009-10/Geoffray_GarbageCollectionVMKit-700kbps.mov">
        Presentation of VMKit/MMTk at the 2009 LLVM Developer's Meeting</a>
    </li>
    <li><a href="http://llvm.org/devmtg/2008-08/Geoffray_VMKitProject_Lo.3gp">
        Presentation of VMKit at the 2008 LLVM Developer's Meeting</a>
    </li>
  </ul> 
  </p>
     
  <!--=====================================================================-->
  <h2>Current Status</h2>
  <!--=====================================================================-->
  
  <p>VMKit is still in its early development stages. If you are looking to
     experiment virtual machine technologies, VMKit is probably a great solution
     for you.  If you want to use it as a drop in JVM or .Net, it is not yet
     ready.</p>

  <p>VMKit currently has a decent implementation of the JVM. It executes
     large projects (e.g. OSGi Felix, Tomcat, Eclipse) and the
     <a href="http://dacapobench.org">DaCapo benchmarks</a>.
     The CLI implementation is still in its early stages, but can execute
     simple applications.</p>
     
  <p>The JVM has been tested on Linux/x64, Linux/x86, Linux/ppc32, MacOSX/x64,
     MacOSX/x86, MacOSX/ppc32. The JVM may work on ppc64. Support for
     Windows has not been investigated
  </p>

  
  <!--=====================================================================-->
  <h2>Get it and get involved!</h2>
  <!--=====================================================================-->
  
  <p>Start by <a href="get_started.html">getting the code, building it, and
     playing with it</a>.  This will show you the sorts of things we can do
     today.</p>
  
  <p>Once you've done that, please consider <a href="get_involved.html">getting
     involved in the VMKit community</a>. Currently, VMKit is tightly
     integrated into the LLVM community. You can sign up for the LLVM mailing
     list to ask and learn about how the project works.</p>
</div>
</body>
</html>
