HOME

TheInfoList



OR:

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