Oracle GraalVM Enterprise Edition Architecture Overview

Oracle GraalVM Enterprise Edition (GraalVM Enterprise) is a high performance JDK distribution, built on the global standard for application development. It is designed to accelerate the execution of applications written in Java and other JVM languages while also providing runtimes for JavaScript, Python, and a number of other popular languages. GraalVM Enterprise’s polyglot capabilities make it possible to mix multiple programming languages in a single application while eliminating any foreign language call costs.

This page provides developers, solution architects, and infrastructure architects with an architectural overview of GraalVM Enterprise, as well as information about runtime modes, certified platforms, available distributions, core and additional components, and support levels for various features. The conceptual overview and advantages of GraalVM Enterprise are described on the Solutions Overview page.

Architecture

Figure 1. GraalVM Enterprise Runtime

The preceding diagram illustrates a complete high-level architecture of GraalVM Enterprise.

GraalVM adds an advanced just-in-time (JIT) optimizing compiler, which is written in Java, to the HotSpot Java Virtual Machine.

In addition to running Java and JVM-based languages, GraalVM’s language implementation framework (Truffle), makes it possible to run JavaScript, Ruby, Python, and a number of other popular languages on the JVM. With Truffle, Java and other supported languages can directly interoperate with each other and pass data back and forth in the same memory space.

Runtime Modes

GraalVM Enterprise is unique as a runtime environment offering several modes of operation: JVM runtime mode, Native Image, Java on Truffle (the same Java application can be run on either).

JVM Runtime Mode

When running programs on the HotSpot JVM, GraalVM defaults to the Graal compiler as the top-tier JIT compiler. At runtime, an application is loaded and executed normally on the JVM. The JVM passes bytecodes for Java or any other JVM-native language to the compiler, which compiles that to the machine code and returns it to the JVM. Interpreters for supported languages, written on top of the Truffle framework, are themselves Java programs that run on the JVM.

Native Image

Native Image is an innovative technology that compiles Java code into a standalone binary executable or a native shared library. The Java bytecode that is processed when building a native executable includes all application classes, dependencies, third party dependent libraries, and any JDK classes that are required. A generated self-contained native executable is specific to each individual operating systems and machine architecture that does not require a JVM.

Java on Truffle

Java on Truffle is an implementation of the Java Virtual Machine Specification, built with the Truffle framework. It is a complete Java VM that includes all core components, implements the same API as the Java Runtime Environment library, and reuses all JARs and native libraries from GraalVM.

Distribution Components List

GraalVM Enterprise consists of core and additional functionalities.

Core Components

Additional Functionalities

GraalVM Enterprise JDK installation can be extended with more languages runtimes and utilities.

Tools/Utilities:

Runtimes:

Users who are new to GraalVM Enterprise or have little experience using it, continue to Getting Started with GraalVM Enterprise. Download and install GraalVM Enterprise on your local machine, try running the examples provided in the guide, or test GraalVM Enterprise with your workload.

Developers, who have GraalVM Enterprise already installed or have experience using it in the past, can skip the getting started guide and proceed to the Reference Manuals for in-depth coverage of GraalVM Enterprise technologies.