Mandrel ist eine Downstream-Distribution der GraalVM-Community-Edition. Das Hauptziel von Mandrel besteht darin, eine native-image
Veröffentlichung speziell zur Unterstützung von Quarkus bereitzustellen. Ziel ist es, die native-image
Funktionen von GraalVM mit OpenJDK- und Red Hat Enterprise Linux-Bibliotheken abzugleichen, um die Wartbarkeit für native Quarkus-Anwendungen zu verbessern. Mandrel lässt sich am besten als Distribution eines regulären OpenJDK mit einem speziell gepackten GraalVM Native Image Builder ( native-image
) beschreiben.
Mandrel-Releases basieren auf einer Codebasis, die von der Upstream-GraalVM-Codebasis abgeleitet ist, mit nur geringfügigen Änderungen, aber einigen wesentlichen Ausschlüssen. Eine vollständige Distribution von GraalVM ist viel mehr als native-image
: Sie verfügt über mehrsprachige Unterstützung, das Truffle-Framework, das eine effiziente Implementierung von Interpretern ermöglicht, ein LLVM-Compiler-Backend für natives Image und den libgraal-JIT-Compiler als Ersatz für den C2-Server-Compiler von Hotspot und vieles mehr. Mandrel ist die kleine Teilmenge dieser Funktionalität, die wir für den Anwendungsfall native-image
unterstützen.
native-image
von Mandrel enthält außerdem nicht die folgenden Funktionen:
--experimental-build-server
.-H:CompilerBackend=llvm
.--libc=musl
.--static
.--language:
.Mandrel ist auch etwas anders aufgebaut als GraalVM und verwendet die Standard-OpenJDK-Projektversion von jdk17u. Das bedeutet, dass es nicht von einigen kleinen Verbesserungen profitiert, die Oracle der Version von OpenJDK hinzugefügt hat, die zum Erstellen eigener GraalVM-Downloads verwendet wird. Die meisten dieser Verbesserungen betreffen das JVMCI-Modul, das die Ausführung des Graal-Compilers innerhalb von OpenJDK ermöglicht. Bei den anderen handelt es sich um kleine kosmetische Verhaltensänderungen. Diese Verbesserungen können in einigen Fällen zu geringfügigen Unterschieden im Fortschritt der nativen Bildgenerierung führen. Sie sollten nicht dazu führen, dass die resultierenden Bilder selbst merklich anders ausgeführt werden.
#mandrel
-Kanal im Slack-Workspace von graalvm beiBitte melden Sie Sicherheitslücken gemäß dem Leitfaden zum Melden von Sicherheitslücken.
Mandrel-Distributionen können aus den Veröffentlichungen des Repositorys heruntergeladen werden und Container-Images sind unter quay.io verfügbar.
native-image
von Mandrel hängt von den folgenden Paketen ab:
Auf Fedora/CentOS/RHEL können sie installiert werden mit:
dnf install glibc-devel zlib-devel gcc freetype-devel libstdc++-static
Hinweis : Abhängig von Ihrem System heißt das Paket möglicherweise glibc-static
oder libstdc++-devel
anstelle von libstdc++-static
. Wenn auf dem System stdc++ fehlt, ist auch das Paket gcc-c++
erforderlich.
Auf Ubuntu-ähnlichen Systemen mit:
apt install g++ zlib1g-dev libfreetype6-dev
Informationen zum Erstellen von Mandrel aus dem Quellcode finden Sie in der Mandrel-Verpackung und konsultieren Sie die Repository-Struktur in CONTRIBUTING.md, um zu erfahren, welcher Mandrel-Zweig verwendet werden soll.
Stärkung der Softwareentwicklung mit der Works on Arm-Initiative Works on Arm ist eine strategische Initiative zur Aktivierung und Beschleunigung des Software-Ökosystems für Arm64.
Die Mandrel-Distribution von GraalVM, die Quarkus Native antreibt, zählt sich stolz zu den Bibliotheken und Tools, die die Ressourcen von Works on Arm erfolgreich genutzt haben.