Jikes Research Virtual Machine ( Jikes RVM ) es una máquina virtual madura que ejecuta programas escritos para la plataforma Java . A diferencia de la mayoría de las demás máquinas virtuales Java (JVM), está escrita en el lenguaje de programación Java , en un estilo de implementación denominado metacircular . Es un software libre y de código abierto publicado bajo una licencia pública Eclipse .
Al ser metacircular , Jikes RVM requiere una JVM de arranque para ejecutarse y crear una imagen de arranque. La imagen de arranque es una vista de los objetos que Jikes RVM requiere para arrancar, creados mediante la reflexión en la JVM de arranque. Un pequeño cargador de C es responsable de cargar la imagen de arranque en tiempo de ejecución.
VM Magic es donde el compilador genera un código diferente para una clase que el que deberían tener los códigos de bytes dentro de esa clase. Las clases de VM Magic permiten el acceso directo a la memoria y son clave para el rendimiento del kit de herramientas de administración de memoria. Las clases de VM Magic residen en el paquete org.vmmagic y se han reutilizado en otros proyectos de Java.
Memory Management Toolkit (MMTk) es un conjunto de recolectores de basura precisos que se han utilizado dentro de Jikes RVM y otros proyectos como el sistema operativo Singularity y Shared Source Common Language Infrastructure (SSCLI, anteriormente llamado Rotor). [4] Al igual que con el resto de Jikes RVM, la implementación está en Java , pero la dependencia principal está en VM Magic.
Se pueden utilizar las bibliotecas de clases Apache Harmony o GNU Classpath con Jikes RVM, con soporte experimental para la biblioteca de clases OpenJDK .
Jikes RVM utiliza un compilador de línea base rápido para generar rápidamente código para una arquitectura determinada. Luego, la compilación adaptativa vuelve a compilar el código con un compilador optimizador con funciones como reemplazo en pila (OSR). El sistema de compilación adaptativa utiliza un modelo de análisis de costo-beneficio.
El entorno de ejecución de Jikes RVM tiene muchas características innovadoras que incluyen mecanismos para bloqueo rápido, programación colaborativa y soporte para recopilación y envío rápidos de excepciones.
Jikes RVM admite arquitecturas de procesadores de conjuntos de instrucciones PowerPC (o ppc) e IA-32 (o Intel x86, 32 bits) .
Dado que se trata de un proyecto de investigación, el énfasis de Jikes RVM está en la investigación de nuevas tecnologías, como lo demuestran las publicaciones científicas que ha generado: más de 220 artículos en 2015. [5] [6]
Jikes RVM también participó en Google Summer of Code 2007, 2008, 2010, 2011 y 2012.