开启辅助访问 切换到窄版

打印 上一主题 下一主题

微软在ARM上成功移植OpenJDKforWindows10

[复制链接]
作者:JasonSWK 
版块:
MCU单片机技术 ARM 发布时间:2020-6-29 14:57:55
4870
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
去年微软宣布收购 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 应用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表