描述
安卓上RISC-V,移植成最大阻碍
RISC-V作为一个开源架构,目前已经被诸多主流开源软件、系统所支持,不少RISC-V厂商都以支持Linux为宣传点。照理说同为开源的安卓系统(AOSP)应该也是RISC-V突破的重点之一,两者的结合可以进一步为RISC-V在消费级产品上扩张版图,如今却很少传出相关的消息。
安卓移植RISC-V
安卓作为全球最大的移动操作系统,已经覆盖了海量手机、电视、可穿戴设备和诸多物联网产品,开发者更是数不胜数,但RISC-V在安卓阵营的进展依旧缓慢,这又是为何呢?首先还是代码移植的问题,要想流畅运行安卓,做好兼容,就必须要移植大量代码,比如Clang/LLVM等工具链,并对音视频Codec以及一众第三方库做好优化。
早在今年年初,阿里巴巴旗下的平头哥就已经公布消息,成功将安卓10移植到自研的玄铁C910 RISC-V核心上,但这仅仅只是实现了系统启动和一些基本的系统操作。如今随着移植工作的进一步运行,平头哥在安卓NDK、Bionic、ART和Chrome上有了更多进展,实现了网页浏览、图片浏览、邮件、安卓10彩蛋和贪吃蛇apk的运行等等。
RVB-ICE主板 / 平头哥
移植开发人员选用的是平头哥的RVB-ICE开发板,该开发板采用了通用智能数字SoC芯片ICE,基于玄铁C910 RISC-V 64GC的架构打造,集成了两颗工作频率高达1.2GHz的C910核心。玄铁910作为一个13级流水线的RISC-V核心,过去就以7.1CoreMark/MHz的顶尖性能技惊四座。此外ICE芯片还集成了一个NPU和GPU单元。尽管RISC-V在GPU上也有发力,但目前尚不成熟,据了解该开发板使用的GPU可能为芯原的Vivante GC8000UL。
除了处理单元外,该开发板还配备了4GB的LDDR4内存,以及16GB的eMMC flash存储,足以满足安卓系统的基本要求。在连接性方面,RVB-ICE支持RJ45千兆以太网、蓝牙、WiFi连接,还附带了一个7英寸的1024x600的触摸电容屏。
今年6月公布之际,平头哥就开放了开发者对该开发板的申请。如今这块开发板也上线了矽速科技的海外商店,预售价为399美元,已被海外开发者抢购一空,足见安卓在RISC-V开发者社区中的吸引力。
RISC-V与Java
在安卓的软件开发生态中,Java是至关重要的一环。而过去在OpenJDK的upstream中,对RISC-V并不存在任何支持,但这一窘境即将出现转变。华为在今年已经基于RV64G完成了旗下毕昇JDK11的初步移植,而阿里巴巴也在内部开发中将华为的提交的patch应用至自家的Dragonwell 11上,后续也会推出对RISC-V的支持。
RVB-ICE与树莓派4B开发板的初期Java性能对比 / 阿里巴巴
今年9月底,来自华为的杨飞在OpenJDK社区发起倡议,提出将OpenJDK移植至RISC-V上。该项目名为“RISC-V移植”,目的就是为了在RISC-V平台上提供完全版的OpenJDK移植。此次移植将支持RV64GV ISA,与RISC-V ISA规范全面兼容,至于未来是否会支持RV32G之类的ISA将视社区态度而定。
华为已经基于JDK主线在今年5月10日的快照,做了一个完整的RISC-V移植(包含模板解释器、C1和C2 JIT),而且已经在QEMU虚拟机和HiFive Unleashed开发板上通过了JTReg测试。以现在的开发情况来看,已经可以运行多数Java程序了。但目前该移植尚不支持VectorAPI与ForeignAPI,向量运算的支持仍为实验性质,未来需要更多的测试。目前该项目成立提议处于投票状态,在被批准后,经历代码审查,很有可能赶上JDK 18的进程。RISC-V上的Java开发生态可以说是一片光明。
小结
虽然将安卓移植至RISC-V上已经有了喜人的进展,但这些离完整的生态依然有很大的差距,还有不少代码移植与优化工作需要完成。况且,即便拥抱了安卓软件生态,RISC-V现有的硬件尚不足以支持其成为手机处理器的可选架构。反观物联网领域,RISC-V+安卓很可能先一步落地。
打开APP阅读更多精彩内容