Mandrel هو توزيع نهائي لإصدار مجتمع GraalVM. الهدف الرئيسي لـ Mandrel هو توفير إصدار native-image
خصيصًا لدعم Quarkus. الهدف هو مواءمة إمكانات native-image
من GraalVM مع مكتبات OpenJDK وRed Hat Enterprise Linux لتحسين قابلية الصيانة لتطبيقات Quarkus الأصلية. أفضل وصف لشياق هو توزيع OpenJDK العادي مع منشئ الصور الأصلية GraalVM المعبأ خصيصًا ( native-image
).
تم إنشاء إصدارات الشياق من قاعدة تعليمات برمجية مشتقة من قاعدة تعليمات برمجية GraalVM الأولية، مع تغييرات طفيفة فقط ولكن بعض الاستثناءات المهمة. التوزيع الكامل لـ GraalVM هو أكثر بكثير من native-image
: فهو يتمتع بدعم متعدد اللغات، وإطار عمل Truffle الذي يسمح بالتنفيذ الفعال للمترجمين الفوريين، وواجهة خلفية لمترجم LLVM للصورة الأصلية، ومترجم libgraal JIT كبديل لمترجم خادم Hotspot's C2 وأكثر من ذلك بكثير. الشياق هو مجموعة فرعية صغيرة من تلك الوظيفة التي ندعمها لحالة استخدام native-image
.
لا تتضمن native-image
لـ Mandrel أيضًا الميزات التالية:
--experimental-build-server
.-H:CompilerBackend=llvm
.--libc=musl
.--static
.--language:
.تم أيضًا تصميم Mandrel بشكل مختلف قليلاً عن GraalVM، وذلك باستخدام إصدار مشروع OpenJDK القياسي لـ jdk17u. وهذا يعني أنها لا تستفيد من بعض التحسينات الصغيرة التي أضافتها Oracle إلى إصدار OpenJDK المستخدم لإنشاء تنزيلات GraalVM الخاصة بها. معظم هذه التحسينات مخصصة لوحدة JVMCI التي تسمح بتشغيل مترجم Graal داخل OpenJDK. والبعض الآخر عبارة عن تغييرات تجميلية صغيرة في السلوك. قد تتسبب هذه التحسينات في بعض الحالات في حدوث اختلافات طفيفة في تقدم إنشاء الصورة الأصلية. ويجب ألا تتسبب في تنفيذ الصور الناتجة بطريقة مختلفة بشكل ملحوظ.
#mandrel
في مساحة عمل graalvm's Slackيرجى الإبلاغ عن الثغرات الأمنية وفقًا لدليل الإبلاغ عن الثغرات الأمنية.
يمكن تنزيل توزيعات الشياق من إصدارات المستودع وتتوفر صور الحاويات على quay.io.
تعتمد native-image
لـ Mandrel على الحزم التالية:
يمكن تثبيتها على Fedora/CentOS/RHEL باستخدام:
dnf install glibc-devel zlib-devel gcc freetype-devel libstdc++-static
ملاحظة : قد يُطلق على الحزمة اسم glibc-static
أو libstdc++-devel
بدلاً من libstdc++-static
اعتمادًا على نظامك. إذا كان النظام يفتقد stdc++، فستكون هناك حاجة إلى حزمة gcc-c++
أيضًا.
على الأنظمة المشابهة لـ Ubuntu مع:
apt install g++ zlib1g-dev libfreetype6-dev
لبناء الشياق من المصدر، يرجى الاطلاع على تغليف الشياق واستشارة هيكل المستودع في CONTRIBUTING.md فيما يتعلق بفرع الشياق الذي سيتم استخدامه.
تمكين تطوير البرمجيات من خلال مبادرة Works on Arm Works on Arm هي مبادرة استراتيجية لتمكين وتسريع النظام البيئي للبرمجيات لـ Arm64.
يعد توزيع GraalVM's Mandrel الذي يدعم Quarkus Native بفخر من بين المكتبات والأدوات التي نجحت في الاستفادة من الموارد من Works on Arm.