去年微软宣布收购 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 应用。

©著作权归作者所有:来自51CTO博客作者mob604756fb8908的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Linus Torvalds 称英特尔的补丁为“垃圾”
  2. runC爆严重安全漏洞,主机可被***!使用容器的快打补丁
  3. 22.从0学ARM-移植uboot支持exynos4412
  4. DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)
  5. IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比
  6. FFmpeg编译4.1.4并移植到Android
  7. Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
  8. VMware ESXi 6.5补丁升级
  9. ESXI(VSphere)主机补丁离线升级(多图)

随机推荐

  1. Session和Cookies的基本原理
  2. Selenium的使用方法简介
  3. Scrapy-Redis分布式爬虫源码解析
  4. 10 个最受欢迎的JavaScript框架[每日前端
  5. 学习 Selenium 的十大理由[每日前端夜话0
  6. 【知识星球】:Python数据科学学习社区
  7. 分析Ajax爬取今日头条街拍美图
  8. Scrapy爬虫去重效率优化之Bloom Filter的
  9. 网络暴力有多可怕?
  10. P2P网贷信用评分项目分享(一)