上图为平头哥RISC-V软件生态。
YOC系统是基于 RTOS 的系统平台,除了 RTOS 外,平头哥在 Linux、Android等系统也有投入。三个系统从下至上均可分为Kernel&BSP、子系统和应用框架三个软件层面。
安全系统独立于以上三个系统存在,为其提供安全场景的支撑。三个系统通过提供语音、图形、视频、视觉等系统能力,为开发者提供应用方案,比如智能语音面板、边缘计算AI Box、智能支付面板、门铃门锁、可穿戴支付产品等解决方案。
YOC、Linux和Android三个系统在github和 gitee上均提供了开源仓库,同时我们也在积极地贡献相应的社区主线。
上图为平头哥团队过去一年在开源社区的贡献。
其中Compat模式能够支持 32 位应用程序在 64 位 RISC-V的 Linux 上运行,一方面可以保证 32 位应用程序的兼容性,同时也能有效降低系统内存和应用内存的占用。Svpbmt 是 MMU 页面管理的重要属性,能进一步加强 RISC-V对于 Linux 内存管理机制的支持。Crash是非常强大的调试工具,用于调试内核问题,长期以来 crash 社区一直未能支持RISC-V架构,严重影响了RISC-V平台的内核调试。因此,平头哥贡献了 crash 支持 RV64 架构的方案。
我们坚信,安全是未来云端一体的重要基础技术。平头哥从硬件安全到软件安全提供了全套安全体系方案,研发了全球首个支持兼容 GP 标准的 RISC-V芯片/平台,并因此获得了全球首个基于 RISC-V架构的GP TEE安全评估认证。
安全的重要特点是从处理器硬件到软件具备完整、全套的安全体系,我们实现了 OPTEE全栈的技术能力,可以帮助 RISC-V架构实现对现有安全软件生态的兼容。
该安全系统能够支持 RTOS、Linux和Android等多个主流操作系统,可以弹性地支持各种不同领域的安全终端产品,提供了标准的用户开发界面,保证安全应用的快速迁移。该安全框架已经实现了部分阿里的安全应用,可以无缝快速接入阿里巴巴生态,最大化有效复用现有的安全认证资源,减少安全认证的周期,加速产品上市速度。
YOC是一个RISC-V软硬融合端云一体的开源 AIoT 软件平台。通过高效的芯片对接、丰富的系统组件、简洁的应用框架,能够助力芯片到终端产品的快速落地。
针对不同的应用场景, YOC 可以提供接入语音、图形、视频视觉等各种系统能力,帮助开发者在各个领域快速构建自己的应用解决方案。
YOC 的最新版本 v7.6 已于近期同时在 github 和 gitee上做了开源发布。通过支持更多RISC-V芯片,提供了更多通用示例,进一步提高了开发者的开发效率。
YOC 的视频视觉子系统为需要低成本、高实时的 camera 场景提供了有竞争力的方案。它通过几个重要组件比如Media Entity、内存子系统、bind 子系统、profiling子系统提供多媒体场景需要的功能。同时能够提供硬件加速和软件处理的能力,支持 Linux 和RTOS 两个系统,可以实现跨系统的平滑迁移。
YOC 会持续在技术上深耕,进一步提高开发者的开发效率,为市场带来更多有竞争力的产品。
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芯片设计平台,并且基于平台提供了曳影1520。无剑 600 原生提供了Buildroot 和 Yocto等系统构建方式,并且我们也在探索寻求支持更多优秀的 Linux 发行版。
龙蜥社区本次推出了桌面版的开源系统,为RISC-V芯片未来在桌面生态的进展奠定了良好的基础。本次平头哥与开源操作系统龙蜥 OS 的合作既是平头哥对于进入桌面领域的重要举措,也是为RISC-V提供真正全面从硬件到基础软件到应用层软件的全面开放性能力的体现。
无剑600是一个软硬一体的全栈平台,不仅有硬件、有平台,也有软件包。基于无剑 600 的第一颗原型样片曳影1520与龙蜥社区\中科院软件所的 PLCT实验室联合打造了从底层的RISC-V芯片平台到龙蜥 OS 再到上层基础应用和桌面应用的全栈能力。中科院 PLCT实验室有着非常强的应用开发能力,为系统提供了 Libra office 、Firefox等大型软件的支持。
平头哥提供了无剑 600 的硬件平台,并且协助龙蜥社区做好了系统 bring up 。过程中,平头哥向龙蜥的内核提交了 120 多个关于RISC-V的 Arch 以及无剑 600相关驱动的 patch 贡献。同时密切配合龙蜥社区和 PLCT实验室适配相关软件,也搭建了曳影 1520 云上实验室,并开放了用户体验,用户可以通过远程访问实现真实的体验。
通过与龙蜥社区和PLCT实验室联合的技术攻关,我们已经成功在曳影1520上运行了龙蜥的桌面级操作系统。上图为相关实拍照片以及系统截图。
这是RISC-V架构第一次运行Libra office 等大型应用软件,对RISC-V进入未来桌面级领域运行大型复杂应用具有重要意义。此外,我们也成功运行了Hexo和OpenRocket这种基于 nodeJS 和 Java 的应用。
未来,我们希望与龙蜥社区一起为RISC-V架构运行更多不同种类的软件,也非常期望可以与龙蜥社区保持密切合作,一起取得更好的成绩。