Jikes Research Virtual Machine (Jikes RVM) is a mature
virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
that runs programs written for the
Java platform
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms fr ...
. Unlike most other
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
s (JVMs), it is written in the programming language
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, in a style of implementation termed
meta-circular. It is
free and open source software
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
released under an
Eclipse Public License
The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating t ...
.
History
* 1997 November, the Jalapeño project starts as an internal research project at
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
'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
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
.
* 2001 October, Jikes RVM version 2 is released as an
open-source model
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
project under the
Common Public License. The release supports PowerPC and Intel architectures and a range of different
garbage collection
Waste collection is a part of the process of waste management. It is the transfer of solid waste from the point of use and disposal to the point of treatment or landfill. Waste collection also includes the curbside collection of recyclable ...
algorithms.
* 2002, Jikes RVM 2.2 is released with the precise garbage collectors now
refactored
In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structure, ...
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
Apache Ant is a software tool for automating software build processes for Java applications which originated from the Apache Tomcat project in early 2000 as a replacement for the Make build tool of Unix. It is similar to Make, but is implement ...
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
The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating t ...
(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
The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional membe ...
(ACM)
Special Interest Group
A special interest group (SIG) is a community within a larger organization with a shared interest in advancing a specific area of knowledge, learning or technology where members cooperate to effect or to produce solutions within their particular f ...
on
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s (
SIGPLAN
SIGPLAN is the Association for Computing Machinery's Special Interest Group (SIG) on programming languages. This SIG explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are progra ...
) Software award, cited for its "high quality and modular design."
Bootstrap
Being
meta-circular, Jikes RVM requires a
bootstrapping
In general, bootstrapping usually refers to a self-starting process that is supposed to continue or grow without external input. Many analytical techniques are often called bootstrap methods in reference to their self-starting or self-supporting ...
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
VM Magic is where the
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
generates different code for a class than the
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normal ...
s 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
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, but the main dependence is on VM Magic.
Class libraries
Either
Apache Harmony
Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the board of directors voted to make Apache Harmony a top-level projec ...
or
GNU Classpath class
libraries
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
can be used with Jikes RVM, with experimental support for
OpenJDK
OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006, four years before the company was acquired by Oracle Corp ...
's class library.
Compilers
Jikes RVM uses a fast baseline
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
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.
Runtime
Jikes RVM's runtime has many innovative features including mechanisms for fast locking, collaborative scheduling, and support for fast exception gathering and dispatch.
Processors
Jikes RVM supports
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
(or ppc) and
IA-32
IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
(or Intel x86, 32-bit)
instruction set
In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
processor architectures.
Research
Since it is a research project, the emphasis of Jikes RVM is on researching new technologies, as is apparent from the scientific publications it has spawned – over 220 papers as of 2015.
Jikes RVM has also participated in the
Google Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
2007, 2008, 2010, 2011, and 2012.
See also
*
Jikes
*
List of Java virtual machines
*
Free Java implementations
*
Bootstrapping (compilers)
In computer science, bootstrapping is the technique for producing a Self-hosting (compilers), self-compiling compiler – that is, a compiler (or assembly language#Assembler, assembler) written in the source programming language that it intends to ...
*
Self-hosting
*
Self-interpreter
*
PyPy (Python implementation in Python)
*
Rubinius
Rubinius is an alternative Ruby implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 ''Blue Book'' design, Rubinius seeks to
"provide a rich, high-performance environment for running Ruby code."
Goals
Rubinius follows in t ...
(Ruby implementation in Ruby)
References
External links
*
JikesRVM GithubJikes RVM User GuideJikes RVM project page on SourceForgeDaCapo BenchmarksWALA
{{DEFAULTSORT:Jikes Rvm
Java virtual machine
Software using the Eclipse Public License
Stack-based virtual machines