Oracle GraalVM Enterprise Edition Architecture Overview

Oracle GraalVM Enterprise Edition (GraalVM Enterprise) is a highly productive, multilingual runtime. It is designed to accelerate the execution of applications written in Java and other JVM languages while also providing a high-performance runtime for JavaScript, Ruby, 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, supported platforms, available distributions, core and additional functionalities, and support levels for various features. The conceptual overview and advantages of GraalVM Enterprise are described on the Solutions Overview page.

GraalVM Enterprise Architecture

Figure 1. GraalVM Enterprise Runtime

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

GraalVM Enterprise uses Java HotSpot Virtual Machine (VM) as a basis, but integrates an advanced just-in-time (JIT) optimizing compiler, written in Java - the GraalVM compiler. Any application that runs on Java HotSpot VM can run on GraalVM Enterprise. The same way GraalVM Enterprise can execute programs written in Java or JVM-based languages, it can also load and run the Truffle language implementation framework, which itself is a Java program. This framework enables running JavaScript, Ruby, Python, and a number of other popular languages on GraalM Enterprise. Likewise, a host JVM-based language and any of the 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 two modes of operation: JVM runtime mode and Native Image (the same Java applications can be run on either).

JVM Runtime Mode

When running programs in the JVM runtime mode, GraalVM Enterprise adds the GraalVM compiler as the top-tier JIT compiler. At runtime, an application is loaded and executed normally on the JVM. The JVM passes bytecode to the GraalVM compiler, which compiles that to the machine code and returns it to the JVM. In the same way GraalVM Enterprise can execute programs written in JVM-based languages, it can also run the Truffle language implementation framework and languages interpreters, which are all Java programs, and thus can run them on the JVM.

Native Image

Native Image is an innovative technology offered by GraalVM Enterprise that can ahead-of-time compile Java code to a standalone native executable, called a native image. The Java code that is processed during a native image build includes all application classes, dependencies, runtime library classes from JDK, and statically-linked native code from JDK. This self-contained native image is specific for individual operating systems and architectures, and may not require a JVM to run on.

Available Distributions

GraalVM Enterprise distributions are based on Oracle Java 8 and 11. The GraalVM Enterprise Java 8-based distribution is built on Oracle JDK 1.8.0_281. The GraalVM Enterprise Java 11-based distribution is built on Oracle JDK 11.0.10. GraalVM Enterprise releases include all Oracle Java critical patch updates (CPUs), which are released on a regular schedule to remedy defects and known vulnerabilities.

GraalVM Enterprise distributions are available for Linux, macOS, and Windows platforms on x86 64-bit systems, and for Linux on ARM 64-bit system. The base GraalVM binary including all components is experimental on Linux/ARM and Windows.

Supported Platforms

The following are the supported platforms for GraalVM Enterprise 20:

Operating System Version Architecture Installation Guide
Oracle Linux on OCI 6, 7, 8 x86 64-bit Oracle GraalVM Enterprise Edition Installation Guide on OCI
Oracle Linux 6, 7, 8 x86 64-bit, ARM 64-bit (experimental) Oracle GraalVM Enterprise Edition Installation Guide for Linux
Red Hat Enterprise Linux(RHEL) 6, 7, 8 x86 64-bit Oracle GraalVM Enterprise Edition Installation Guide for Linux
macOS 10.13 (High Sierra), 10.14 (Mojave), 10.15 (Catalina) x86 64-bit Oracle GraalVM Enterprise Edition Installation Guide for macOS
Windows 10 x86 64-bit Oracle GraalVM Enterprise Edition Installation Guide for Windows

Distribution Components List

GraalVM Enterprise consists of core and additional functionalities.

Core Components

Runtimes

Libraries (JAR files)

Utilities

Additional Functionalities

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

Tools/Utilities:

Language Runtimes:

Licensing and Support

Oracle GraalVM Enterprise Edition is licensed under the Oracle Technology Network License Agreement for GraalVM Enterprise Edition for developing, testing, prototyping, and demonstrating Your application.

For production use, GraalVM Enterprise is available as part of the Oracle Java SE Subscription which includes 24x7x365 Oracle premier support and the access to My Oracle Support (MOS).

Experimental and Early Adopter Features

Oracle GraalVM Enterprise Edition features are distributed as fully supported, early adopter, and experimental.

Experimental features are being considered for future versions of the product. They are not meant to be used in production and are not supported by Oracle. Oracle welcomes feedback on experimental features but users should be aware that experimental features might never be included in a production version, or might change significantly before being considered production-ready. The experimental features in GraalVM Enterprise can be unlocked using the --experimental-options option passed on the command line to the language launchers, or with ContextBuilder#allowExperimentalOptions and/or Engine.Builder#allowExperimentalOptions set in other scenarios.

Early adopter features are considered production-ready, but are subject to ongoing development, testing, and modification. The technology identified as “early adopter” may significantly change and future releases may include changes that are incompatible with the current version. For more information, check the License for Early Adopter Versions of Oracle Master Agreement.

The following table indicates the Experimental and Early Adopter features in GraalVM Enterprise 20.

Feature Linux macOS Windows
Native Image Early Adopter Early Adopter Early Adopter
LLVM runtime supported supported not available
LLVM toolchain supported supported not available
Python runtime experimental experimental not available
Ruby runtime experimental experimental not available
R runtime experimental experimental not available
WebAssembly runtime experimental experimental not available

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. We suggest you then look at more complex Examples Applications.

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.