近日,在openGauss RISC-V SIG 的持续推动下,openGauss 7.0.0-RC1 全量版成功实现对 RISC-V 架构的适配。该成果由中国科学院软件研究所的工程师黄吉主导完成,标志着国产开源数据库在RISC-V生态建设上迈出了关键一步,丰富了RISC-V基础软件生态版图,为新兴场景提供了企业级数据库支撑能力。
此次突破建立在openGauss RISC-V SIG 的技术积累之上。自SIG组成立以来,团队先后进行了基于openEuler RISC-V和Fedora的 openGauss 6.0.0 轻量版适配,实现了小规模场景的快速部署能力。而本次适配的 openGauss 7.0.0-RC1 全量版,是首次基于openGauss 原生编译链完成对 RISC-V 架构的适配,完整保留了企业级的核心功能。
适配思路:由局部到整体
为高效推进RISC-V 架构适配,openGauss RISC-V SIG 采用了由局部到整体的适配思路。
1.第三方软件包先行突破:聚焦于openGauss-thirdparty 的最小依赖集,针对 openEuler 系统缺失或集成自定义功能补丁的第三方软件包进行编译,其余依赖则复用系统软件包,降低初期工作量。
2.核心源码适配:安装打包好编译的openGauss-thirdparty软件包,进一步对 openGauss-server 源码进行深度调整,添加相关的 RISC-V 平台代码,涵盖编译选项、汇编代码、RISCV Vector扩展指令集、RISCV ZBC扩展指令集等代码适配。
3.兼容性适配:针对openGauss-thirdparty和openGauss-server中的相关代码进行兼容性适配,确保 openGauss 既能兼容旧版 OpenSSL 1.x,也能使用OpenSSL 3.x版本编译运行,为未来生态演进奠定基础。
核心挑战与成果
团队累计向openGauss社区提交了 24 个 commit,新增2327 行代码,删除 81 行代码,重点突破以下技术难点:
1.RISC-V 汇编代码适配
基于RISC-V 官方指令集规范,结合 GCC 嵌入汇编语法特性,openGauss RISC-V SIG 重构底层汇编代码,通过反复验证与调试,确保汇编代码在 RISC-V 硬件上的高效运行。
2.RISC-V Vector 指令集集成
遵循RISC-V Vector扩展规范中的函数定义,深入研究向量长度及向量化运算指令集等相关文档,结合支持向量扩展的 CPU 硬件环境,实现了数据库底层算法的向量化加速,为后续性能优化提供技术储备。
3.OpenSSL 3.x 兼容性适配
面对OpenSSL 1.x 接口逐步废弃的现状,openGauss RISC-V SIG 梳理了官方文档,确保 openGauss 在 OpenSSL 3.x 环境下稳定编译与运行,避免因依赖版本迭代导致的兼容性风险。
适配后的openGauss-server 代码已开源,开发者可通过以下地址获取并参与共建:
https://gitee.com/XiaoXiaoXiaoJi/openGauss-server/tree/add-riscv64-support/


在荔枝派LicheePi 4A 上运行的截图
未来规划:持续深化RISC-V 性能优化
从指令集适配到性能优化,openGauss 与 RISC-V 的每一次碰撞,都在为开源生态开辟新的可能。这不仅是代码的移植,更是开放协作的生动实践。未来,openGauss RISC-V SIG将持续推进以下方向:
基于RISC-V ZBC 扩展实现 LLVM-Codegen 的 CRC 计算函数优化,探索向量化查表法替代方案。
利用不依赖架构的常规CRC查表法实现 LLVM-Codegen 的CRC计算函数提升存储效率与查询性能。
利用RISCV Vector 扩展集适配 openGauss 内部的页面压缩算法以提高数据库效率。
加入我们,探索RISC-V的未来!
openGauss RISC-V SIG 目前长期招募相关实习生,如果您对 RISC-V 生态感兴趣,欢迎扫描二维码加入 RISC-V SIG 交流群,我们期待与您共同探讨更多关于 RISC-V 的技术话题!

请备注 OGRV
详细情况见:甲辰计划开源实习生联合招聘及培养计划(阅读原文)
关于作者
杨延玲,中国科学院软件研究所PLCT 实验室社区运营经理,openGauss RISC-V SIG 成员,负责 Gleam 光灵小队和 openGauss RISC-V SIG 的运营。