(CWW)都说“万丈高楼平地起”,只有建立坚实的底座才能建设起信息基础设施的“万丈高楼”,只有把核心技术牢牢掌握在自己手中,才能在国际竞争中利于不败之地。但是在坚持自主的道路上也会遇到这样一道哲学问题:自主是否就意味着彻底抛弃已有体系,另起炉灶?兼容是否就意味着命脉依然掌握在别人手中,受制于人?自主与兼容,这二者的矛盾该如何调和呢?
面对这一长达十五年的争论,也许一千个人心中有一千个哈姆雷特。但是对于信息基础设施生态系统建设来说,也许兼容并包、平稳过渡不失为好的选择。面对指令系统自主与兼容的长期争论,6月6日,在“2022年LoongArch生态发展暨通明湖创新应用论坛”上,龙芯中科董事长胡伟武作出了他的回答:“自主有自主的好处,兼容有兼容的好处。龙芯在自研CPU的路上走了20年之后,开始思索未来生态发展方向,能不能做到既自主又兼容?”在推出多款自研软硬件产品平台并取得市场良好反响后,事实证明,龙芯做出了适合自己的选择。
三步走,建设既自主又兼容的软件生态
在过去的二十年里,龙芯坚持自研指令架构,于2021年正式发布具有完全自主知识产权的LoongArch指令系统(龙芯架构),并基于此指令集推出龙芯3A5000/3C5000系列处理器,由于其性能卓越、安全可靠,因此在关键信息基础设施领域得到了广泛的认可和应用。
在完成基础性能补课后,接下来要解决如何建设最高的性能、最低的成本、最好的生态的问题。随着应用场景大大拓展,大量X86/Windows应用迁移,而Linux平台本身的应用存在兼容性问题,因此龙芯基础软件工作重点就从操作系统与硬件结合部转向操作系统与应用结合部。
实现与既有硬件和操作系统兼容并非遥不可及。胡伟武认为,需要2+3+3+2十大基础软件能力即可实现在自主软硬件系统上兼容已有应用,即两大核心软件——BIOS、操作系统内核(含驱动和虚拟化),三大编译器——GCC、LLVM、GOLANG,三大虚拟机——Java、JavaScript、.NET,两大二进制翻译系统——X86、ARM。
关于如何建设这一既自主又兼容的软件生态体系,胡伟武讲道,基于LoongArch的软件生态思路分三步走。首先,提供基础版开源操作系统,即操作系统的Windows模式和Android模式,从而降低产业链门槛,规范硬件兼容性,实现应用兼容性;其次,通过高效二进制翻译系统消除指令系统壁垒,实现广泛兼容,作为过渡手段,在龙芯平台上运行X86/Windows应用,通过软硬件结合大幅提高二进制翻译效率;最后,形成自主编程语言和编程框架,如Windows、Android、IOS。
兼容三件套,全面支撑龙芯生态建设
随着LoongArch基础软件体系建设基本完成,LoongArch架构已得到国际开源软件界广泛认可与支持,LoongArch架构正成为与X86/ARM并列的顶层开源生态系统,原生支持Linux全部主流基础软件和应用环境。
龙芯兼容框架还可实现跨Linux版本应用兼容,能够实现Linux平台一次开发、各处使用的兼容性。源码、现有二进制程序均可支持,音频、视频、外设、打印、输入法等完全支持,保持Host应用100%性能,存储开销小。
为更好地实现提升兼容性,龙芯还推出了软件兼容“三件套”,即龙芯办公外设利旧通用解决方案、兼容IE的龙芯浏览器和dotnet生态建设。这是龙芯瞄准国产信息化建设的“堵点”的重要发力点,能够发挥龙芯自主化最强的优势,解决客户最紧要的需求,为推广龙芯生态的发展提供有力的支撑。
如今龙芯产品的兼容性能力已经取得显著提升,Wintel的应用软件可在龙芯Linux平台上快速应用,已验证数十款主流应用软件,2022年上半年实现基本可用,下半年实现可用。
两条腿走路,力求形成自主编程框架
要建设自主软件生态,除了有自主指令系统,还需要有自主编程框架,二者是自主软件生态的底座。自主编程框架是自主操作的重要特征,目前的国产操作系统都不是真正意义上的自主操作系统,只是开源操作系统的开源发行版,APP开发者使用自主编程框架进行编程才能彻底解决无休止的适配问题。
龙芯未来需要形成自主编程框架。基于自主编程框架的考虑,龙芯调研Windows、IOS、Android编程框架的特征,力求形成龙芯自主编程框架,争取2023/2024年推出,目标是手机APP有苹果版和安卓版,电脑应用有Windows版和龙芯版。
总得来说,自主软件生态正在告别“比烂”,走向“比好”,面向未来,龙芯对自主软件生态建设充满信心。“龙芯‘十四五’期间争取努力完成‘三个转变’,即从技术‘补课’到生态建设的转变,从政策性市场到开放市场的转变,从跟随性发展的‘必然王国’到自主发展的‘自由王国’的转变。”在演讲最后,胡伟武呼吁道:“我们正在前进,我们正在做我们的前人从来没有做过的极其光荣伟大的事业。我们的目的一定要达到。我们的目的一定能够达到。”