近日,在 2022 云栖大会龙蜥峰会 RISC-V 专场上,来自平头哥 IoT 研发 OS 平台团队的负责人、资深技术专家熊健介绍了《平头哥在 RISC-V 软件生态的探索》,以下为本次演讲内容:
(图/平头哥资深技术专家熊健)
从底层软件的适配,语音、视频、安全等子系统的构建,各个操作系统的应用框架的搭建和支持,到上层应用方案设计,平头哥不断深耕 RISC-V 技术和生态,端云一体的丰富生态正在形成。
(图/平头哥RISC-V软件生态)
平头哥持续在开源社区贡献代码,在 Linux-5.19 中发布的 106 个 RISC-V patch 中,有 43 个与玄铁 CPU 相关,并贡献了 RV32 Compat 和 Svpbmt 两个重要功能。
通过下图看到,其中 Compat 模式能够支持 32 位应用程序在 64 位 RISC-V 的 Linux 上运行,一方面可以保证 32 位应用程序的兼容性,同时也能有效降低系统内存和应用内存的占用。Svpbmt 是 MMU 页面管理的重要属性,能进一步加强 RISC-V对于 Linux 内存管理机制的支持。Crash 是非常强大的调试工具,用于调试内核问题,长期以来 Crash 社区一直未能支持 RISC-V 架构,严重影响了 RISC-V 平台的内核调试。平头哥为 Crash 社区贡献了 RV 64 架构的支持方案,解决了多年来离线调试的短板,为 RISC-V 开发带来重要意义。
(图/平头哥团队过去一年在开源社区的贡献)
我们坚信,安全是未来云端一体的重要基础技术。平头哥从硬件安全到软件安全提供了全套安全体系方案,研发了全球首个支持兼容 GP 标准的 RISC-V 芯片/平台,并获得了全球首个基于 RISC-V 架构的 GP TEE 安全评估认证。
安全的重要特点是从处理器硬件到软件具备完整、全套的安全体系,我们实现了 OPTEE 全栈的技术能力,可以帮助 RISC-V 架构实现对现有安全软件生态的兼容。
该安全系统能够支持 RTOS、Linux 和 Android 等多个主流操作系统,可以弹性地支持各种不同领域的安全终端产品,提供了标准的用户开发界面,保证安全应用的快速迁移。该安全框架已经实现了部分阿里的安全应用,基于玄铁安全系统的产品可以无缝快速接入阿里巴巴生态,最大化有效复用现有的安全认证资源,减少安全认证的周期,加速产品上市速度。
YoC(Yun on Chip)是一个 RISC-V 软硬融合端云一体的开源 AIoT 软件平台。通过高效的芯片对接、丰富的系统组件、简洁的应用框架,能够助力芯片到终端产品的快速落地。
针对不同的应用场景, YoC 可以提供接入语音、图形、视频视觉等各种系统能力,帮助开发者在各个领域快速构建自己的应用解决方案。
YoC 的最新版本 v7.6 已于近期同时在 github 和 gitee 上做了开源发布。通过支持更多 RISC-V 芯片,提供更多通用示例,进一步提高了开发者的开发效率。
YoC 的视频视觉子系统为需要低成本、高实时的 camera 场景提供了有竞争力的方案。它通过几个重要组件比如 Media Entity、内存子系统、bind 子系统、Profiling 子系统提供多媒体场景需要的功能。同时能够提供硬件加速和软件处理的能力,支持 Linux 和 RTOS 两个系统,可以实现跨系统的平滑迁移。
未来平头哥会持续在 YoC 上深耕,进一步提高开发者的开发效率,为市场带来更多有竞争力的产品。
在端侧,平头哥引领 RISC-V 架构首次进入安卓开源生态体系,推动 RISC-V 正式与全球主流移动操作系统生态接轨。
2021 年 10 月,平头哥首次在玄铁处理器上成功运行了 Android 系统,并且运行了 Chrome 浏览器等大型应用,实现了业内首次 RISC-V 芯片上对 Android 的支持。今年 4 月份,进一步在 Android 系统上成功运行 TensorFlow Lite,首次实现了 RISC-V 架构对 Android AI 场景的支持。
平头哥持续推进 RISC-V 在 Android 系统的工作。截止到目前,平头哥已经在 Android 相关代码仓库做了 100 多处改动,修改或提交了 2000 多个文件,改动代码超过 12 万行。为 RISC-V 支持 Android 的生态作出了重要贡献,同时也为未来 RISC-V 支撑高性能软件栈的应用打下了基础。
近期,阿里巴巴平头哥提供的 RISC-V 兼容 Android 的代码补丁正式被谷歌 Android 的 AOSP 社区收录进系统源代码,这是全球首批 RISC-V 兼容 Android 的正式补丁。这意味着谷歌 Android 正式开启了对 RISC-V 架构官方原生的支持,RISC-V 和 Android 两大阵营的融合驶入了快车道。
Linux 系统平台也可以为开发者提供产品开发、验证以及构建产品的系统能力。Linux 系统平台的软件栈自底向上分为五个软件层面,分别是 Linux 内核、设备驱动、基础系统、核心组件和系统软件。
Linux 内核层,平头哥开源了各款玄铁处理器的 Arch 支持,为开发者提供最基础的系统支持。设备驱动层面,提供了无剑 600 平台的成熟设备驱动方案,并且提供了一套自动化验证平台。
基础系统层提供了 Buildroot 和 Yocto 两种系统构建方式。Buildroot 比较简单,容易上手;Yocto 能够更有效地帮助开发者构建更为复杂的系统,并支持安装包的管理,可以帮助开发者快速构建所需的 Linux 发行版。
核心组件层提供了可以体现产品核心竞争力的系统组件,包括诊断、图形、视频视觉、语音、安全等各种系统组件。在系统软件层,为了提高终端用户的使用体验,支持涉及 UI 交互的大型应用和多媒体应用,比如 Gnome、多媒体的 Gstreamere、Libra office、Firefox。
Linux 的系统平台已开源发布到 Gitee ,我们也会通过详尽的软件技术文档以及官网自动化 AI 机器人和客户线上支持来帮助客户和开发者快速上手 Linux 系统平台。
Anolis OS 是龙蜥社区的开源 Linux 发行版,已经较为成熟,支持多种 CPU 架构,但在此之前尚不支持 RISC-V 架构。平头哥在近日的 RISC-V 峰会上发布了无剑 600 高性能 RISC-V 芯片设计平台,并且基于平台提供了 SoC 原型曳影 1520。无剑 600 平台原生提供了 Buildroot 和 Yocto 等系统构建方式,我们也一直在探索寻求支持更多优秀的 Linux 发行版。
龙蜥社区本次推出了桌面版的开源系统,为 RISC-V 芯片未来在桌面生态的进展奠定了良好的基础。本次平头哥与开源操作系统龙蜥 OS 的合作既是平头哥对于进入桌面领域的重要举措,也是为 RISC-V 提供真正全面从硬件到基础软件到应用层软件的全面开放性能力的体现。
无剑 600 是一个软硬一体的全栈平台,不仅有硬件、有平台,也有软件包。基于无剑 600 的第一颗原型样片曳影 1520 与龙蜥社区、中科院软件所 PLCT 实验室联合打造了从底层的 RISC-V 芯片平台到龙蜥 OS 再到上层基础应用和桌面应用的全栈能力。中科院 PLCT 实验室有着非常强的应用开发能力,为系统提供了 Libre office 、Firefox 等大型软件的支持。
平头哥提供了无剑 600 的硬件平台,并且协助龙蜥社区做好了系统 bring up 。平头哥向龙蜥的内核提交了 120 多个关于 RISC-V 的 Arch 以及无剑 600 相关驱动的 patch 贡献。同时密切配合龙蜥社区和 PLCT 实验室适配相关软件,也搭建了曳影 1520 云上实验室,并开放了用户体验,用户可以通过远程访问实现真实的体验。
通过与龙蜥社区和 PLCT 实验室联合的技术攻关,我们已经成功在曳影 1520 上运行了龙蜥的桌面级操作系统,下图为相关实拍照片以及系统截图。
这是 RISC-V 架构第一次运行 Libre office 等大型应用软件,对 RISC-V 进入未来桌面级领域运行大型复杂应用具有重要意义。此外,我们也成功运行了 Hexo 和OpenRocket 这种基于 nodeJS 和 Java 的应用。
未来,我们希望与龙蜥社区一起为 RISC-V 架构运行更多不同种类的软件,也非常期望可以与龙蜥社区保持密切合作,一起取得更好的成绩。欢迎各位感兴趣的开发者扫描下方二维码入群交流。
相关链接地址:
RISC-V ARCH SIG 地址:
https://openanolis.cn/sig/RISC-V
曳影 1520 云上实验室地址:
https://occ.t-head.cn/community/cloudlab/index
关于龙蜥峰会 RISC-V 专场课件获取方式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。
【视频回放】:视频回放已上传至龙蜥官网 https://openanolis.cn/video 查看。
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!