微軟在 ARM 上成功移植 OpenJDK for Windows 10

去年微軟宣佈收購 jClarity,用在了 Azure 上的 Java 工作負載,以平臺之勢加大了對 Java 的支持,而近期,開發團隊完成了在基於 Arm(AArch64)的設備上移植適用於 Windows 10 的 OpenJDK 的第一階段。同時該工作正在與 Red Hat 合作提交給 OpenJDK 項目。

微軟 Java 工程組首席程序經理 Bruno Borges 介紹,憑藉更高的能源效率,使用 ARM64 可以大大降低數據中心的成本並延長個人設備的電池壽命,而“對於許多工作負載和用戶首選項,Windows 是首選的操作系統”,因此 Java 工程組藉助此移植版以支持這一類用戶。

目前微軟在該項目上提供了 2 個補丁,第一個補丁 Webrev P1 有助於在 Linux + AArch64 上集成對 Windows(LLP64)的支持;第二個補丁 Webrev P2 在 os_cpu 中添加了對 windows-aarch64 的支持。過程中還必須修改共享代碼,具體細節包括:

  • 在 Windows_x86 中,例如在 os_windows_x86.cpp 中的 get_frame_at_stack_banging_point,
  • os/windows os_windows.cpp 中,使其知曉 Windows + Arm64
  • threadCritical_windows.cpp 中的 os/windows,
  • Windbg 支持
  • share/utilities 中的 globalDefinitions_visCPP.hpp
  • 還向 P2 添加了向量異常處理(Vectored Exception Handling,VEH),這是 Windows + Arm64 上的要求(由於 ABI 規範)。

另外,Webrev P2 中還對 cpu/aarch64 進行了一些重要的更改,因爲在 Windows + Arm64 上,將 R18 點指向 TEB。

目前已經成功移植了 C2,並且可以構建服務器版本(交叉編譯環境),同時另外兩個補丁也正在開發中:

  • Webrev P3:在 Windows 上將 VEH 擴展到 x86-64。
  • Webrev P4:Windows 上共享跨平臺代碼的改進,將會盡快發送單獨的補丁。

儘管仍未 100% 完成功能,但是此移植版本基於 OpenJDK tip branch(16+),可以運行大多數工作負載,包括 SPEC SERT 以及所有 SPEC Java 套件。開發人員可以開始使用最近發佈的  Visual Studio Code for Windows ARM64 中添加的核心 Java 擴展,以及 Apache Maven、Gradle 等工具在 Windows 10 ARM64 兼容筆記本電腦上開發 Java 應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章