如何在RISC-V芯片上运行安卓系统?

1月23日消息 , 平头哥芯片开放社区本周四公布的一段视频显示 , 安卓10系统(代号Android10系统)顺畅运行在平头哥玄铁910RISC-V处理器上 。
如何在RISC-V芯片上运行安卓系统?
文章插图
【如何在RISC-V芯片上运行安卓系统?】
这对RISC-V生态来说是一个里程碑意义的进展 , 对Arm和安卓的联盟可能是一个坏消息 , 因为基于RISC-V64架构的安卓开源仓库已在平头哥芯片开放社区上线 。随着更高性能RISC-V芯片的推出以及软件的移植 , RISC-V将对Arm带来更大挑战 。
经过几年的快速发展 , RISC-V芯片已经在对生态要求比较低的物联网市场取得了不错的成绩 , RISC-V芯片对低性能ArmCortex-M系列芯片带来了一定冲击 。如今 , RISC-V能够流畅安卓系统 , 将可能进一步冲击Arm统治的移动终端市场 。
安卓与Arm的组合支撑了全球十亿部智能手机、电视与可穿戴设备 , 为众多智能设备带来更好的体验 , 吸引了数百万应用开发者 , 这是一个复杂的生态 , 想要取得突破的难度巨大 , 在RISC-V芯片上运行安卓系统面临着至少三个明显的挑战:
第一 , 将安卓生态移植到RISC-V代码量大 , 涉及模块多 , 整个工程包含727个子工程和多个预编译工程;
第二 , 架构级优化难度大 , 为了让安卓系统可以更加流畅的运行在RISC-V芯片上 , 需要在汇编指令层面实现对本地方法库、音视频库、加解密库等的性能优化;
第三 , 安卓系统的开发语言多种多样 , 包括C++/C++ , 汇编 , JAVA , go , RS , rust等 。
据悉 , 安卓软件栈主要包括系统内核、硬件抽象、运行时、框架层、应用五个层次的近千个软件包 , 其中涉及到处理器架构相关移植工作主要包含本地库与ART支持、Linux内核支持、build系统支持三大部分 。
在本地库与ART支持方面 , 平头哥基于安卓开源项目(AOSP)完成bionic、ART、Clang/LLVM、V8、NDK、VNDK、OpenGL等软件包的RISC-V架构支持:为bionic添加动态链接、系统调用、浮点数学库的支持 。另外 , 基于ART实现了RISC-V架构的DEX实时解释执行、dex2oat、JNI调用以及JIT编译优化 , 极大地提高了JAVA程序在RISC-V平台上执行的效率 。
Linux内核支持方面 , 首次将RISC-V架构的Linux内核与安卓系统进行了适配 , 完善了Clang/LLVM对Linux内核的编译支持 , 修复了大量Clang/LLVM的问题 。
Build系统支持方面 , 安卓的编译框架主要由blueprint和soong构成 , 平头哥整合编译框架、预编译的工具链、本地方法库、模拟器 , 应用和服务等模块 , 首次实现了RISC-V架构对安卓build系统的支持 。
除了软件层面大量的移植工作 , 在硬件层面也需要高性能处理器的支持 。此次运行安卓10系统的RISC-V芯片是平头哥在2019年发布的高性能处理器玄铁910 , 此次运行RISC-V版安卓系统的SoC集成3核玄铁910 , 以及单核GPU , 基于台积电28nm工艺 , CPU主频最高可达1.2GHz 。
需要指出 , 即便RISC-V可以流畅安卓10系统 , 但要撼动Arm在智能移动终端市场的优势还有很大的距离 。芯片性能提升以及软件生态的建设都还有很长的路要走 , RISC-V需要充分发挥开源的优势 。
雷锋网了解到 , 平头哥会将现有的工作成果开源全部的相关代码 , 基于RISC-V64架构的安卓开源仓库在其芯片开放社区上线 。
支持RISC-V的安卓系统已经开源 , 接下来更多基于RISC-V的物联网设备也会更快到来 。但我们更应该期待的是RISC-V在全新的应用市场带来许多意想不到的应用 , 在5GAI时代有Wintel、Arm和安卓之后的新组合 。
责任编辑:pj
.dfma {position: relative;width: 1000px;margin: 0 auto;}.dfma a::after {position: absolute;left: 0;bottom: 0;width: 30px;line-height: 1.4;text-align: center;background-color: rgba(0, 0, 0, .5);color: #fff;font-size: 12px;content: "广告";}.dfma img {display: block;}
如何在RISC-V芯片上运行安卓系统?
文章插图

    推荐阅读