IBM has released the Jikes Research Virtual Machine (RVM) to provide the research community with a flexible open testbed to prototype virtual machine technologies and experiment with design alternatives.
The Jikes RVM runs on Linux/IA-32, AIX/PowerPC, and Linux/PowerPC platforms and includes state-of-the-art virtual machine technologies for dynamic compilation, adaptive optimization, garbage collection, thread scheduling, and synchronization. A distinguishing characteristic of the Jikes RVM is that it is implemented in the Java programming language and is self-hosted i.e., its Java code runs on itself without requiring a second virtual machine. In contrast, almost all other virtual machines for the Java platform are either written in native code (typically, C or C++) or written in the Java programming language with a reliance on a second underlying virtual machine to execute its Java code. A Java implementation provides ease of portability, and a seamless integration of virtual machine and application resources such as objects, threads, and operating-system interfaces.