Mandrel เป็นการเผยแพร่แบบดาวน์สตรีมของรุ่นชุมชน GraalVM เป้าหมายหลักของ Mandrel คือการจัดทำ native-image
เพื่อรองรับ Quarkus โดยเฉพาะ จุดมุ่งหมายคือเพื่อจัดตำแหน่งความสามารถ native-image
จาก GraalVM เข้ากับไลบรารี OpenJDK และ Red Hat Enterprise Linux เพื่อปรับปรุงความสามารถในการบำรุงรักษาสำหรับแอปพลิเคชัน Quarkus ดั้งเดิม Mandrel สามารถอธิบายได้ดีที่สุดว่าเป็นการกระจายของ OpenJDK ปกติด้วย GraalVM Native Image builder ที่แพ็กเกจพิเศษ ( native-image
)
Mandrel releases ถูกสร้างขึ้นจากฐานรหัสที่ได้มาจากฐานรหัส upstream GraalVM โดยมีการเปลี่ยนแปลงเพียงเล็กน้อย แต่มีข้อยกเว้นที่สำคัญบางประการ การกระจายแบบเต็มของ GraalVM เป็นมากกว่า native-image
: มีการรองรับหลายภาษา, เฟรมเวิร์ก Truffle ซึ่งช่วยให้ใช้งานล่ามได้อย่างมีประสิทธิภาพ, แบ็คเอนด์คอมไพเลอร์ LLVM สำหรับอิมเมจเนทิฟ, คอมไพเลอร์ libgraal JIT เพื่อทดแทนคอมไพเลอร์เซิร์ฟเวอร์ C2 ของ Hotspot และอีกมากมาย Mandrel เป็นชุดย่อยเล็กๆ ของฟังก์ชันการทำงานที่เรารองรับสำหรับกรณีการใช้งาน 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
channel ในพื้นที่ทำงาน slack ของ graalvmโปรดรายงานช่องโหว่ด้านความปลอดภัยตามคู่มือการรายงานช่องโหว่
สามารถดาวน์โหลด Mandrel distribution ได้จากรีลีสของพื้นที่เก็บข้อมูล และมีรูปภาพคอนเทนเนอร์อยู่ที่ 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
สำหรับการสร้าง Mandrel จากแหล่งที่มา โปรดดูบรรจุภัณฑ์จาก Mandrel และปรึกษาโครงสร้างพื้นที่เก็บข้อมูลใน CONTRIBUTING.md เกี่ยวกับสาขาของ Mandrel ที่จะใช้
เสริมศักยภาพการพัฒนาซอฟต์แวร์ด้วย Works on Arm Initiative Works on Arm เป็นความคิดริเริ่มเชิงกลยุทธ์ในการเปิดใช้งานและเร่งระบบนิเวศซอฟต์แวร์สำหรับ Arm64
การจัดจำหน่าย Mandrel ของ GraalVM ที่ขับเคลื่อน Quarkus Native นับว่าเป็นหนึ่งในห้องสมุดและเครื่องมือที่ใช้ประโยชน์จากทรัพยากรจาก Works on Arm อย่างภาคภูมิใจ