
作者|郑孝林策划|凌敏背景介绍1 AlibabaDragonwell发行版AlibabaDragonwell是一款免费的OpenJDK发行版。它
InfoQ 2023-04-24 22:56:17
作者 | 郑孝林
【资料图】
策划 | 凌敏
Alibaba Dragonwell是一款免费的 OpenJDK 发行版。它提供了长期支持,包括性能增强、安全修复以及 Dragonwell 上专有的一些特性,比如 Wisp 协程、多租户、JWarmup、G1 elastic heap 以及 serviceability 上的特性等等。Dragonwell 包括 8、11、17 三个版本,而每个版本又包括 standard (和 OpenJDK 基本保持一致) 和 extended (基于 OpenJDK,搭载了 Dragonwell 的各种专有特性) 两个子版本。而我们当前介绍的 RISC-V 后端支持是在 Dragonwell11 上的 extended 版本上,已在 2023 年 2 月正式 release,其中 Dragonwell11 上的特性如 Wisp 暂时还不支持。
RISC-V 是一个基于 RISC (精简指令集) 的指令集架构。 它主要的特性是开源、模块化、可扩展性以及非常精简的指令集 。当前的 RISC-V 主要应用于物联网;而后续进入服务器领域也是未来可期的。同时,得到 Arm 等商业芯片指令集的授权都需要支付高额的商业费用,而 RISC-V 是完全开源的指令集架构,芯片厂商可以根据自己的需要做定制化。当前的商业 RISC-V 处理器有如 Alibaba 玄铁 C910 处理器、SiFive 的 RISC-V 半导体 IP 核等。从开发的角度而言,它们也都是使用体验很好的处理器/设备。
在 2020 年的年末,华为的 Bisheng JDK 团队开源了基于 OpenJDK 的 RISC-V (64 位) 后端实现,约 6w 行代码的 initial load。Alibaba Dragonwell 团队也同期参与到了 RISC-V 后端研发当中。
从 Alibaba Dragonwell 团队的角度,在去年社区成立 openjdk/riscv-port repo,随后 RISC-V 后端正式合并到上游 openjdk/jdk repo 到现在,我们对 OpenJDK RISC-V 后端的贡献包括在 OpenJDK 上的 RISC-V "C" 压缩指令扩展这个特性的实现;20 余个 bug fixes;部分 enhancements 和 refactoring;以及部分 Loom (协程) RISC-V port 的支持等。其中 C 扩展的实现已经在 OpenJDK 20 上的 RISC-V 后端中默认开启,可以减小 ~20% 的后端 Java compiled code 的 code size footprint。
JDK11 是当前的主流版本。国内的 Java 客户大多都在使用 JDK8,但现在已经有越来越多升级到 JDK11 的趋势了。默认的 G1 GC (CMS 在后面 JDK 版本中已经弃用)、更好的性能、AArch64 后端更好的支持、AppCDS 特性、Safepoint 的 Threadlocal Handshake、能提升代码性能的 Segmented Code Cache 特性等都可以让 JDK11 相比于 JDK8 有更多的优势,也是用户升级 JDK 的动力所在。
虽然 JDK11 的确是当下的主流版本,但是社区上的 RISC-V 后端是在 19/20 这两个版本中支持的,因此这对于很多 Java 应用的维护者来说,升级到这么高的版本的确是略有些遥远且工作量颇高的事情。所以,如果要尝试在 RISC-V 上开发 Java 应用的话, 能继续使用 JDK11 应该是一个比较好的选择 。
因此,Alibaba Dragonwell 团队将 OpenJDK 上游的 RISC-V 后端移植回了 Dragonwell11上,我们会长期维护 Dragonwell11 的版本和后端,同步上游社区的 bug fixes 保证用户的使用体验。从兼容性的角度上讲,我们完成了 QEMU / SiFive 开发板 / 平头哥开发板 上的验证,以及 JCK / jtreg / SPECjbb2015 等各种 benchmark 的支持。Dragonwell11 上的 RISC-V 和上游大部分保持一致;包括基础的 RVI 指令集支持的同时,我们还支持一部分平头哥芯片专有的指令集和其生态,如果在平头哥的硬件上如 C910,则可以使用 -XX:+UseCSky 开启相关的支持。
与此同时,我们还支持一些基于 RVV(RISC-V 的向量指令扩展)-0.7.1 的 vector intrinsic 的向量化,在支持 RVV-0.7.1 版本的(如平头哥的一些 RISC-V 芯片,如开启 vector 支持的 C910 等)开发板上可以自动开启。由于搭载 RVV-1.0 版本的芯片现阶段实际上很少,所以 Dragonwell 可能是目前唯一能够在硬件上运行 RVV 的 JDK。
二进制版本下载
Dragonwell11 的二进制版本已经于二月份发布,有兴趣的开发者可以直接从 Github 链接下载。
此外,Dragonwell11 的 RISC-V 版本已经集成进龙蜥的 Anolis 源中,如果是使用 Anolis OS 的用户可以直接使用 yum 源来安装 Dragonwell11 JDK。
RISC-V 现在还在快速发展阶段中。因此面临着硬件资源有限的问题: 开发者有时并不容易得到硬件设备;拿到硬件设备之后还面临着需要搭建环境、初始化网络等比较麻烦的操作 。在这种情况下,有一个模拟器就是非常有必要的了。主流的模拟器是 QEMU,如果把 QEMU 内置在 Docker 镜像当中,用户就可以得到最大程度上的使用便利:用户可以直接在 x86 机器上一键模拟 RISC-V 程序。并且,镜像是 portable 的:因为容器镜像可以随时迁移到其他机器上去。
我们维护了一个 RISC-V QEMU Docker 镜像的仓库,使用 Debian 的 RISC-V 源。用户可以直接查看 README 手动构建一个 QEMU Docker。省力一些的话,用户也可以直接将镜像 pull 下来:
# 现只支持 x86 宿主机docker pull multiarch/qemu-user-static && \docker run --rm --privileged --net host multiarch/qemu-user-static --resetdocker pull alibabadragonwelljdk/riscv-qemu && \docker run -it --rm alibabadragonwelljdk/riscv-qemu /bin/bash
复制代码
SpringBoot 是非常优秀的 Java 应用框架,我们可以从官网上下载其 Hello World demo 并使用 maven 构建。
我们也提供了一个预编译好的 SpringBoot demo 以供演示用:
https://dragonwell.oss-cn-shanghai.aliyuncs.com/demo-0.0.1-SNAPSHOT.jar
我们可以在实际的物理开发板上启动 Java 程序;也可以在上述的 QEMU Docker 中用同样的命令启动:
图/启动一个简单的 SpringBoot Hello World 程序 (实际启动时间可能与图片上有差别)
RISC-V 是一个有前景的指令集,中立和开放是它的两大优势。在成立了 Datacenter (数据中心) SIG 和 HPC (高性能计算) SIG 之后,RISC-V 也开始逐渐向高性能方向逐渐演进。除此之外,就 RISC-V 的软件生态而言,RISC-V 上的各种 toolchain (GCC、GDB 等) 的支持也已经十分完备,各种操作系统 (Ubuntu、Debian) 等都已经支持了 RISC-V 指令集,各种开源社区对相关软件的移植的支持也非常积极。Debian-port 上大约 95% 的软件包都可以在 RISC-V 上使用,因此用户的开发流程是比较流畅的。
相比于 x86 平台的一些复杂指令及一些历史包袱,RISC-V 具有着较新、指令集简单、较强的拓展性等特性,已经 ratify 了多个指令集扩展。随着社区的蓬勃发展,我们相信 RISC-V 架构有着光明的前景。
致谢
感谢华为 Bisheng JDK 团队的开发同学们的工作,感谢中科院软件所 PLCT 实验室团队对硬件设施方面给予的帮助。感谢社区 RISC-V 后端的 reviewers 的各种帮助。我们也会持续输出并不断反馈社区,在社区的维护上贡献我们的力量。
本文转载来源:
https://www.infoq.cn/article/aqLULmKMHK4NEA8rfgHy
作者|郑孝林策划|凌敏背景介绍1 AlibabaDragonwell发行版AlibabaDragonwell是一款免费的OpenJDK发行版。它
今天(4月23日),浙萧山货13196航行至京杭运河杭州段建北桥水域时,船舶破损进水沉没。事故发生后,杭州市
2023年五一假期,成都欢乐有两个大型活动哦!活动一【成都欢乐谷国风潮玩节】活动时间:2023年3月24日至5月
近日,美国食品药品监督管理局(FDA)局长RobertCaliff博士在国会听证会上表示,基因和细胞疗法领域应有更
玉米不同阶段需要的温度环境玉米是喜温作物,所以它生长的温度不能太低,一般玉米在温度在22-30℃的条件下
进入四月,各单位结合上级明确的年度任务部署调整本单位工作计划,制订各类方案措施,无不体现一个单位的抓
4月24日,央行官网发布2023年一季度小额贷款公司统计数据报告。截至2023年3月末,全国共有小额贷款公司5801
1 湖北神农架在哪个位置湖北神农架平均海拔1700米。山峰多在1500米以上,其中海拔3000米以上的山峰有6座,海
记者从广西壮族自治区水文中心了解到,受4月23日以来降雨影响,郁江支流猪儿河港南区桥圩镇桥圩水文站于4月
沪指4月24日下跌0 78%,申万所属行业中,今日上涨的有4个,涨幅居前的行业为传媒、通信,涨幅为3 64%、2 16%
1、近日,有网友注意到曾因戴3万元耳钉引发关注的女副局长李少莉已公开露面,但尚未回复耳钉问题。2、对此
1、中文输入法,比如搜狗拼音输入法,点击回车键上的括号即可。2、 中文状态【】 英文状态 [ ] 还可
2023太平岁寿年丰终身寿险投保有哪些亮点?怎么购买?2023太平岁寿年丰终身寿险承保的一款人寿保障产品,最
交易商品牌 产地交货地最新报价缝纫线硅油 外观:无色透明粘稠液体粘度:500cs-1000cs折光指数:1 3980-1
崇明公安分局向化派出所接到陆女士报警称,其哥哥与她在赡养年迈父母时发生争执,希望民警到场主持公道。民