The Maxine virtual machine is an open source
virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
that is developed at the University of Manchester. It was formerly developed by
Sun Microsystems Laboratories Oracle Labs (formerly Sun Microsystems Laboratories, or Sun Labs) is a research and development branch of Oracle Corporation. The labs were created when Oracle acquired Sun Microsystems. Sun Labs was established in 1990 by Ivan Sutherland and Rober ...
, since renamed Oracle Labs. The emphasis in Maxine's
software architecture
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
is on modular design and code reuse for flexibility, configurability, and productivity for industrial and academic virtual machine researchers. It is one of a growing number of
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
s written entirely in Java in a
meta-circular style. Examples include
Squawk and
Jikes RVM
Jikes Research Virtual Machine (Jikes RVM) is a mature virtual machine that runs programs written for the Java platform. Unlike most other Java virtual machines (JVMs), it is written in the programming language Java, in a style of implementation ...
.
Architecture
The Maxine VM is characterized internally by aggressive use of advanced language features in Java 1.5 and 1.6, by modular subsystems coordinated through Java interfaces, by the absence of an
interpreter
Interpreting is translation from a spoken or signed language into another language, usually in real time to facilitate live communication. It is distinguished from the translation of a written text, which can be more deliberative and make use o ...
, and by a tightly coupled debugger and visualization
tool
A tool is an Physical object, object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many Tool use by animals, animals use simple tools, only human bei ...
for VM development.
Compatibility
Maxine is
plug compatible
Plug compatible refers to " hardware that is designed to perform exactly like another vendor's product." The term PCM was originally applied to manufacturers who made replacements for IBM peripherals. Later this term was used to refer to IBM-com ...
with an unmodified
Java Development Kit
The Java Development Kit (JDK) is a distribution of Java technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
(JDK). Maxine can be developed, built, and run in standard Java
integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
s (IDEs), including
NetBeans
NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
,
Eclipse
An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
, and
IntelliJ IDEA
IntelliJ IDEA () is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is a ...
.
Systems programming in Java
A secondary goal of the project is to develop methods and tools for "systems programming in Java".
Compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
extensions, configured in VM
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
using
Java annotation
In the Java computer programming language, an annotation is a form of syntactic metadata that can be added to Java source code. Class (computer programming), Classes, Method (computer programming), methods, Variable (computer science), variables ...
s, allow use, with no performance penalty, of low-level operations otherwise disallowed in Java. These extensions provided the foundation for the
Graal compiler.
The Maxine Inspector
Specialized debugging support for the Maxine VM is provided by the Maxine Inspector: a companion tool that acts as a combined object, class, and method browser, and as a machine- and bytecode-level debugger.
The Inspector runs out-of-process, needs no active VM support, and leverages code shared with the VM for specialized developer services that exploit detailed knowledge of memory layout and VM design.
Notable services include:
* multiple mode views of code (source, bytecode, disassembled machine code) with multi-mode breakpoints and stepping;
* thread, stack, register, and thread local variable inspection;
* flexible low-level memory visualization with dynamic interpretation and linking of memory values, e.g. as code locations, object references;
* dynamic visualization of object fields and metadata;
* boot image configuration details; and
* specialized algorithm-specific support for debugging during GC.
History
Maxine was created by Bernd Mathiske at Sun Labs in early 2005. He led its development among a growing team until late 2008 when he left
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
and handed the project over to Doug Simon who had been the first engineer to join it. Doug Simon continued in this role throughout the acquisition of Sun by
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
.
The static (heap inspection) version of the Maxine Inspector was created by Bernd Mathiske in 2006. Michael Van De Vanter assumed development of the Inspector in 2007, adding dynamic support as the VM became executable and continued to evolve throughout the acquisition of Sun by
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
.
Oracle continued development of Maxine until the release of Maxine 2.0. The University of Manchester is developing Maxine as of release 2.1.
See also
*
List of Java virtual machines
This article provides non-exhaustive lists of Java SE Java virtual machines (JVMs). It does not include every Java ME vendor. Note that Jakarta EE runs on the standard Java SE JVM but that some vendors specialize in providing a modified JVM optimi ...
*
Squawk virtual machine
Squawk is a Java micro edition virtual machine for embedded system and small devices. Most virtual machines for the Java platform are written in low level native languages such as C/ C++ and assembler; what makes Squawk different is that Squaw ...
*
Jikes RVM
Jikes Research Virtual Machine (Jikes RVM) is a mature virtual machine that runs programs written for the Java platform. Unlike most other Java virtual machines (JVMs), it is written in the programming language Java, in a style of implementation ...
References
Notes
Bibliography
*
*
External links
*
Maxine VM projectat
Read the Docs
{{Oracle FOSS
Java virtual machine
Oracle software
Free and open source interpreters