微软在 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 應用。
總結
以上是生活随笔為你收集整理的微软在 ARM 上成功移植 OpenJDK for Windows 10的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fedora 开发者再次讨论使用 Nan
- 下一篇: Rs1805007头发颜色影响大吗?