Esto tiene algunas propiedades muy interesantes: desde la propia JVM es parte de la base de código que la JVM interpreta, la misma base de código que el código de usuario pertenece a, esto significa que se puede hacer optimizaciones tales como procesos en línea a través del límite VM. IOW: puede alinear código de VM en el código de usuario y viceversa. También significa que la máquina virtual está sujeta al mismo perfil de tiempo de ejecución y optimizaciones dinámicas que – en otras máquinas virtuales (incluso incluyendo Jikes) – solo el código de usuario es, lo que significa que la máquina virtual constantemente se vuelve a compilar y volver a compilar. optimizado para adaptarse a cargas cambiantes, cargar nuevas clases, cambiar perfiles, cambiar patrones de uso, etc.
En máquinas virtuales como HotSpot, JRockit, J9 y otras, estas optimizaciones son imposibles, por la sencilla razón de que la JVM solo sabe cómo optimizar el bytecode JVML, pero la VM no está escrita en Java. Pero incluso en Jikes, esto no es posible porque, mientras la VM está escrita en Java, se compila estáticamente en el código nativo antes de que se ejecute, y el código de la VM no es parte del código que la VM "ve ".
La Squawk VM también es una JVM desarrollada por Sun Labs, ahora Oracle Labs. A diferencia de Maxine, que es más o menos similar a J9, HotSpot o JRockit en su público objetivo, Squawk es más análogo al KVM (originalmente desarrollado por Sun, ahora Oracle), es decir, dirigido a dispositivos integrados con recursos limitados. Squawk también está inspirado por Klein. A diferencia de Maxine, tiene una pequeña capa de abstracción escrita en C. Pero tenga en cuenta que Maxine necesita un sistema operativo para ejecutarse, mientras que Squawk se ejecuta sin un sistema operativo. Entonces, en cierto sentido, Squawk es incluso más puro que Maxine, porque muchas partes que no son parte de Maxine pero que forman parte del sistema operativo (donde a menudo se implementan en C, C++ u otros lenguajes de bajo nivel), en realidad son parte de Squawk. sí mismo. Los controladores de dispositivos, por ejemplo, están escritos en Java. Solo una pequeña capa de abstracción de hardware y bibliotecas de E/S se escriben en C.
He encontrado proyectos similares siguiendo los enlaces de la página de preguntas frecuentes de Maxine VM: Joeq, OVM y Moxie. Joeq hace referencia a JavaInJava y Rivet System, a su vez. Muchas gracias por tu respuesta. – mschonaker
Squawk acciona el SunSPOT –