190 likes | 290 Views
The Jikes RVM. Dr. Ian Rogers Jikes RVM Core Team Member Research Fellow, Advanced Processor Technologies Group, The University of Manchester. What is the Jikes RVM?. An open source JVM project Released under the CPL license Written in Java
E N D
The Jikes RVM Dr. Ian Rogers Jikes RVM Core Team Member Research Fellow, Advanced Processor Technologies Group, The University of Manchester
What is the Jikes RVM? • An open source JVM project • Released under the CPL license • Written in Java • Started as a closed source IBM research project calledJalapeño in December 1997
Some of the major components • Runtime system • Dynamic linking and class loader • Thread support • Garbage collector - MMTk • Copying and noncopying, generational and nongenerational, hybrids • Type accurate - used in other projects rotor, ovm • Baseline compiler – fast 1st compilation • Optimizing compiler • HIR → LIR → MIR conversion with optimisation at each level • Extended Array SSA form phases; BURS based instruction selector • On stack replacement, allows backing out of compiler decisions • Adaptive optimization system • Cost/benefit model to decide when and what to recompile • Boot image writer/runner
Why write a JVM in Java? • Most parts of the JVM don’t need to know about pointers • For the parts that don’t we use compiler magic: • Pragmas – tell the compiler not to emit the normal code sequence • Unboxed – special types that behave more like primitive types (e.g. Address) • There are potential benefits: • Compilation ahead of time of libraries into the boot image • No barriers to method inlining (other than JNI) • Reuse of Java tools • Platform independence • There are potential problems: • GC has to handle the application and the JVM • Boot strapping issues (e.g. class initializers)
Other Java in Java VMs • JavaInJava – Sun Microsystems 1998 • Squawk – Sun Microsystems 2002 • Ovm – Purdue 2004 • Rivet – MIT 1999 • Joeq – Stanford 2001 • Moxie – Intel 2006 And OS projects: • JNode – Prengsma 2003 • JX OS – Erlangen 2001 • JANOS – Utah 1999
Some early project highlights • Nov ‘97: project initiated • Mar ‘98: opt compiler, • Jan ‘00: adaptive system • 2000: Port to Linux/PPC (UMass) • Jan ‘01 – 10/01: university releases to 16 universities via IP agreements • Not open source, can’t collaborate, can’t use for teaching • Oct ’01: Open source release (CPL) • “Jalapeno” “Jikes RVM” • Used non-open source libraries from OTI • Dec ‘02: Switched to Classpath (mostly) • Apr ’03: Full switch to Classpath, runs Eclipse • Dec ’03: MacOS/PPC32 • Nov ’04: AIX/PPC64
Since then… • Regression testing infrastructure • Constant improvements throughout the VM • Move to make source editable in Eclipse • Switch to ant based build system • Support for Java 5.0 • Rewrite of portions of the VM to use Java 5.0 language features
Related research • Lots of garbage collection papers! • Dynamic parallelization • Manchester, Toronto • Transactional memories • Stanford • Distributed JVM • ANU • Aspects • Steamloom – open source VM with dynamic aspects - Darmstadt • Machine learning for GC, dynamic compilation, … • Binary translation • PearColator – open source x86 and PPC binary translator - Manchester • Dynamically typed language support • Parakeet – open source Parrot VM - Manchester
Hopefully coming soon.. • Interpreter • JDWP support • x86 64 support • JNode integration
Thanks Please visit us at: http://www.jikesrvm.org/