Jikes Research Virtual Machine (Jikes RVM) is a mature virtual machine that runs programs written for the Java platform. Unlike most other Java virtual machines (JVMs), it is written in the programming language Java, in a style of implementation termed meta-circular. It is free and open source software released under an Eclipse Public License.
|Developer(s)||Jikes RVM Team, contributors|
3.1.4 / February 18, 2016
|Type||Java virtual machine, library|
|License||Eclipse Public License|
- 1997 November, the Jalapeño project starts as an internal research project at IBM's Thomas J. Watson Research Center.
- 1999, 2000, research papers describing novel aspects of Jikes RVM are published by IBM researchers and several universities are given access to the source code.
- 2001 October, Jikes RVM version 2 is released as an open-source model project under the Common Public License. The release supports PowerPC and Intel architectures and a range of different garbage collection algorithms.
- 2002, Jikes RVM 2.2 is released with the precise garbage collectors now refactored into the popular Memory Management Toolkit precise collectors.
- 2004, Jikes RVM 2.4 is released with increased stability and performance partly, with special focus to run eclipse.
- 2007, Jikes RVM 2.9 development starts with the code base extensively refactored to use features of Java 5.0 and to use an Apache Ant build system.
- 2008, Jikes RVM 3.0 released marking the end of 2.9 development and new stability in the code base.
- 2009, Jikes RVM 3.1 released under the Eclipse Public License (EPL) with significant improvements over the performance of version 3.0.1 and a switch to native threading.
- 2012, Jikes RVM won the Association for Computing Machinery (ACM) Special Interest Group on programming languages (SIGPLAN) Software award, cited for its "high quality and modular design."
Being meta-circular, Jikes RVM requires a bootstrapping JVM to run upon to create a boot image. The boot image is a view of the objects Jikes RVM requires to boot created using reflection in the bootstrap JVM. A small C loader is responsible for loading the boot image at runtime.
VM Magic is where the compiler generates different code for a class than the bytecodes within that class should perform. VM Magic classes allow direct access to memory and are key to the Memory Management Toolkit's performance. The VM Magic classes reside in the org.vmmagic package and have been reused in other Java projects.
Memory Management Toolkit
The Memory Management Toolkit (MMTk) is a set of precise garbage collectors that have been used within Jikes RVM and other projects such as the Singularity operating system and the Shared Source Common Language Infrastructure (SSCLI, formerly named Rotor). As with the rest of the Jikes RVM, the implementation is in Java, but the main dependence is on VM Magic.
Jikes RVM uses a fast baseline compiler to quickly generate code for a given architecture. Adaptive compiling then recompiles code with an optimizing compiler with features such as on-stack replacement (OSR). The adaptive compiling system uses a cost-benefit analysis model.
Jikes RVM's runtime has many innovative features including mechanisms for fast locking, collaborative scheduling, and support for fast exception gathering and dispatch.
Jikes RVM has also participated in the Google Summer of Code 2007, 2008, 2010, 2011, and 2012.
- "Jikes RVM Team and Contributors".
- "Archived copy". Archived from the original on 2013-07-03. Retrieved 2013-06-21.CS1 maint: archived copy as title (link)
- "Jikes RVM Project Proposals 2009".
- "Jikes RVM research papers".
- "The Jikes Research Virtual Machine project: Building an open-source research community" (PDF). IBM Systems Journal. 44 (2). 2005.