JikesRVM
Encyclopedia
Jikes RVM is a mature open source virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 that runs Java programs. Unlike most other JVMs it is written in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, a style of implementation termed meta-circular.

History

  • 1997 November, the Jalapeño project starts as an internal research project at IBM
    IBM
    International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

    '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 project under the Common Public License
    Common Public License
    In computing, the CPL is a free software / open-source software license published by IBM. The Free Software Foundation and Open Source Initiative have approved the license terms of the CPL....

    . The release supports PowerPC and Intel architectures and a range of different garbage collection
    Garbage collection (computer science)
    In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

     algorithms.
  • 2002, Jikes RVM 2.2 is released with the precise garbage collectors now refactored into the popular Memory Management Toolkit precise garbage collectors.
  • 2004, Jikes RVM 2.4 is released with increased stability and performance partly, particular focus was made of running 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 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
    Eclipse Public License
    The Eclipse Public License is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License and removes certain terms relating to litigations related to patents....

     (EPL) with significant improvements over the performance of version 3.0.1 and a switch to native threading.

Bootstrap

Being meta-circular Jikes RVM requires a bootstrap 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
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 loader is responsible for loading the boot image at runtime.

VM Magic

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 Toolkits 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 collection of precise garbage collectors that have been used within Jikes RVM and other projects such as the Singularity
Singularity (operating system)
Singularity is an experimental operating system being built by Microsoft Research since 2003. It is intended as a highly-dependable OS in which the kernel, device drivers, and applications are all written in managed code.- Workings :...

 operating system and the Rotor software project. As with the rest of the Jikes RVM the implementation is in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, but the main dependence is on VM Magic.

Class Libraries

Either Apache Harmony
Apache Harmony
Apache Harmony was an 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 project...

 or GNU Classpath
GNU Classpath
GNU Classpath is a project aiming to create a free software implementation of the standard class library for the Java programming language. Despite the massive size of the library to be created, the majority of the task is already done, including Swing, CORBA, and other major parts. The Classpath...

 class libraries can be used with Jikes RVM, with experimental support for OpenJDK
OpenJDK
OpenJDK is a free and open source implementation of the Java programming language. It is the result of an effort Sun Microsystems began in 2006...

's class library.

Compilers

Jikes RVM uses a fast baseline compiler to quickly generate code for a particular architecture. Adaptive compilation then recompiles code with an optimizing compiler with features such as on stack replacement. The adaptive compilation system uses a cost-benefit analysis model.

Runtime

Jikes RVM's runtime has many innovative features including mechanisms for fast locking, a collaborative scheduling mechanism and support for fast exception gathering and dispatch.

Processors

The PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 (or ppc) and IA-32
IA-32
IA-32 , also known as x86-32, i386 or x86, is the CISC instruction-set architecture of Intel's most commercially successful microprocessors, and was first implemented in the Intel 80386 as a 32-bit extension of x86 architecture...

 (or Intel x86, 32-bit) instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

 architectures are supported by Jikes RVM.

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 190 papers as of 2008.

Jikes RVM has also appeared in the Google Summer of Code
Google Summer of Code
The Google Summer of Code is an annual program, first held from May to August 2005, in which Google awards stipends to hundreds of students who successfully complete a requested free or open-source software coding project during the summer...

 2007, 2008, 2010 and 2011.

See also

  • Jikes
    Jikes
    Jikes is an open source Java compiler written in C++. It is no longer being updated.The original version was developed by David L. "Dave" Shields and Philippe Charles at IBM but was quickly transformed into an open source project contributed to by an active community of developers. Initially hosted...

  • List of Java virtual machines
  • Free Java implementations
    Free Java implementations
    Free Java implementations are software projects that implement Oracle's Java technologies and are distributed under free software licences, thus making them free software...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK