Articulo de referencia

Máquina virtual Maxine

Douglas Simon ([[Sun Microsystems Laboratories|Sun Labs]], [[Oracle Corporation|Oracle]])"},"developer":{"wt":"[[University of Manchester]], Maxine team"},"platform":{"wt":"x64,...

La máquina virtual Maxine es una máquina virtual de código abierto desarrollada en la Universidad de Manchester. [ 2 ] Anteriormente fue desarrollada por Sun Microsystems Laboratories , [ 3 ] ahora llamada Oracle Labs. La arquitectura de software de Maxine se centra en el diseño modular y la reutilización de código para ofrecer flexibilidad, configurabilidad y productividad a los investigadores de máquinas virtuales, tanto industriales como académicos. Es una de las numerosas máquinas virtuales Java escritas completamente en Java con un estilo metacircular . Algunos ejemplos son Squawk y Jikes RVM .

Arquitectura

La máquina virtual Maxine se caracteriza internamente por el uso intensivo de funciones avanzadas del lenguaje en Java 1.5 y 1.6, por subsistemas modulares coordinados a través de interfaces Java, por la ausencia de un intérprete y por una herramienta de depuración y visualización estrechamente integrada para el desarrollo de máquinas virtuales.

Compatibilidad

Maxine es compatible mediante plug-in con un kit de desarrollo de Java (JDK) sin modificar. Maxine se puede desarrollar, compilar y ejecutar en entornos de desarrollo integrados (IDE) estándar de Java, como NetBeans , Eclipse e IntelliJ IDEA .

Programación de sistemas en Java

Un objetivo secundario del proyecto es desarrollar métodos y herramientas para la programación de sistemas en Java. Las extensiones del compilador , configuradas en el código fuente de la máquina virtual mediante anotaciones de Java , permiten el uso, sin penalización de rendimiento, de operaciones de bajo nivel que de otro modo estarían prohibidas en Java. Estas extensiones sentaron las bases del compilador Graal .

La inspectora Maxine

Maxine Inspector proporciona soporte especializado para la depuración de la máquina virtual Maxine: una herramienta complementaria que funciona como un explorador combinado de objetos, clases y métodos, y como un depurador a nivel de código máquina y de bytecode. [ 4 ] Inspector se ejecuta fuera del proceso, no necesita soporte activo de la máquina virtual y aprovecha el código compartido con la máquina virtual para servicios especializados para desarrolladores que explotan el conocimiento detallado de la distribución de la memoria y el diseño de la máquina virtual. [ 5 ] Entre los servicios más destacados se incluyen:

  • múltiples vistas de modo del código [ 6 ] (fuente, bytecode, [ 7 ] código máquina desensamblado [ 8 ] ) con puntos de interrupción multimodo [ 9 ] y paso a paso;
  • hilo, [ 10 ] pila, [ 11 ] registro, [ 12 ] e inspección de variables locales del hilo;
  • visualización de memoria de bajo nivel flexible [ 13 ] con interpretación dinámica y vinculación de valores de memoria, por ejemplo, como ubicaciones de código, referencias de objetos;
  • visualización dinámica de campos de objetos y metadatos; [ 14 ]
  • detalles de configuración de la imagen de arranque; [ 15 ] y
  • Soporte especializado y específico para algoritmos para la depuración durante la recolección de basura.

Historia

Maxine fue creada por Bernd Mathiske en Sun Labs a principios de 2005. Lideró su desarrollo junto a un equipo cada vez mayor hasta finales de 2008, cuando dejó Sun Microsystems y cedió el proyecto a Doug Simon, quien había sido el primer ingeniero en unirse al mismo. Doug Simon continuó desempeñando este cargo durante la adquisición de Sun por parte de Oracle Corporation .

La versión estática (inspección de montón) del Maxine Inspector fue creada por Bernd Mathiske en 2006. Michael Van De Vanter asumió el desarrollo del Inspector en 2007, añadiendo soporte dinámico a medida que la máquina virtual se volvía ejecutable y continuó evolucionando durante la adquisición de Sun por parte de Oracle Corporation .

Oracle continuó el desarrollo de Maxine hasta el lanzamiento de Maxine 2.0. [ 16 ] La Universidad de Manchester está desarrollando Maxine a partir de la versión 2.1. [ 17 ]

Véase también

Referencias

Notas

  1. «Maxine VM: Una VM metacircular para Java en Java» . GitHub . 18 de noviembre de 2021.
  2. Wimmer et al. 2013 , pág. 1.
  3. "Oracle Labs – Acerca de" . Labs.oracle.com . Consultado el 25 de junio de 2017 .
  4. "El proyecto Maxine: El inspector Maxine" . community.oracle.com . Consultado el 8 de abril de 2019 .
  5. "Introducción al Inspector Maxine (Demostración)" . youtube.com . 5 de abril de 2010. Consultado el 8 de abril de 2019 .
  6. "Maxine Inspector Mini-Demo 6 de 10 (2008): Vistas de métodos de código múltiple" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  7. "Maxine Inspector Mini-Demo 5 de 10 (2008): Código de bytes desensamblado" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  8. "Maxine Inspector Mini-Demo 4 de 10 (2008): Código máquina desensamblado" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  9. "Maxine Inspector Mini-Demo 10 de 10 (2008): Breakpoints" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  10. "Maxine Inspector Mini-Demo 7 de 10 (2008): Hilos" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  11. "Maxine Inspector Mini-Demo 9 de 10 (2008): Pilas" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  12. "Maxine Inspector Mini-Demo 8 de 10 (2008): Registros" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  13. "Maxine Inspector Mini-Demo 2 de 10 (2008): Memoria" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  14. "Maxine Inspector Mini-Demo 3 de 10 (2008): Objetos Heap" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  15. "Maxine Inspector Mini-Demo 1 de 10 (2008): Configuración de la imagen de arranque" . youtube.com . 28 de agosto de 2010. Consultado el 8 de abril de 2019 .
  16. "Copia archivada" . Archivado del original el 4 de marzo de 2016. Consultado el 18 de septiembre de 2013 .{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
  17. "Maxine-VM: Maxine VM: Una máquina virtual de investigación metacircular" . GitHub. 21 de junio de 2017. Recuperado el 25 de junio de 2017 .

Bibliografía

  • Kotselidis, Christos; Clarkson, James; Rodchenko, Andrey; Nisbet, Andy; Mawer, John; Luján, Mikel (2017). «Sistemas de tiempo de ejecución gestionados heterogéneos». Actas de la 13.ª Conferencia Internacional ACM SIGPLAN/SIGOPS sobre Entornos de Ejecución Virtual . VEE 2017. págs. 74–82 . doi : 10.1145/3050748.3050764 . ISBN  978-1-4503-4948-2.
  • Wimmer, Christian; Haupt, Michael; Van De Vanter, Michael L.; Jordan, Mick; Daynès, Laurent; Simon, Douglas (enero de 2013). "Maxine: una máquina virtual accesible para y en Java" . ACM Transactions on Architecture and Code Optimization . 9 (4). art. 30. doi : 10.1145/2400682.2400689 . ISSN 1544-3566 .