作者
马超
责编
李雪敬
8月13日,银河麒麟操作系统V10正式发布,最大亮点是专门对国内自主研发的龙芯、飞腾、鲲鹏等芯片做优化。
这款操作系统得到我国基础软件领域的泰斗倪光南院士的青睐,他表示麒麟操作系统的安全性已是国内操作系统中的佼佼者,安全等级代表着国内最高等级水平。倪院士对麒麟系统充满信心,表示相信国产自研操作系统将会在三五年内打破国外垄断。
无独有偶,在8月13日的全国计算机体系结构学术年会(ACA)上,龙芯中科董事长胡伟武作了名为《指令系统的自主与兼容》的特邀报告,在报告中他宣布了龙芯的全新的LoongArch指令集,LoongArch可深度兼容Windows、Linux、Android程序,可谓一举多得。
近期,华为宣布最早在9月发布搭建鸿蒙2.0系统的MateWatch。国内著名的芯片公司全志科技宣布与平头哥全面合作基于玄铁IP的AIoT系列芯片,国内装机量最大的国产物联网操作系统RT-Thread,针对玄铁的RISC-V指令集做出优化。
如果把操作系统比作管家,芯片指令集就是芯片的语言,操作系统需要把用户的指令,翻译成芯片的语言交由芯片执行,正如此,芯片和操作系统一般会搭档联盟共同构建生态。目前看来,鸿蒙加海思,玄铁加IoT,麒麟加龙芯的联盟已经初见雏形。
但我们的芯片、操作系统在自主道路上依旧行程漫漫、困难重重,要把完全自主的芯片造出来就非常难,从现实的角度来讲,我国没有重点发展芯片设计软件及芯片制造产业,关于这点笔者在国产芯回忆录:造光刻的去卖早点,搞EDA的去组装电脑曾经提到过,二十几年前搞EDA的程序员改行去组装电脑,搞光刻掩膜的工程师改行去卖早点……这样的例子不罕见,想在工业软件和光刻技术方面快速突破,这显然不符合一般的科研规律。
即使芯片造出来很可能面对生态、体验等问题,目前桌面类的操作系统基本上被Windows+Intel的Wintel联盟所把持,市场份额占比高达85%。在移动桌面Arm+Android或者iOS的AAI联盟市场份额占比几乎是%,由于芯片加操作系统的组合直接将应用软件的可执行文件进行了深层的锁定,如果想对应用进行跨操作系统的迁移,需要投入巨大的移植费用。
一般应用软件只支持主流的操作系统平台,其它小众平台基本不会考虑,因此即使造出了自研芯片与操作系统后,将面临没有软件可用的情形,或者在生态成型之前直接被扼杀,这方面教训是相当深刻。
欲成器先渡劫
近10年,银河麒麟操作系统一直是我国Linux发布版本,市场占有率的第一,而在20年前这个第一的位置属于红旗Linux。
红旗Linux——没有生态的悲剧:在众多国产操作系统中,红旗Linux是非常具有代表性的一个。红旗Linux诞生于年,主打安全特性,供政府机关事业单位使用。在年北京市政府桌面操作系统产品软件采购招标中,年轻的红旗Linux,虎口拨牙从微软的Windows手中抢到了订单,成功中标。
除了政府订单,在本世纪初IBM、惠普等厂商,曾在其笔记本产品中预装过红旗Linux,到了年7月,红旗的OEM订单超过万套,红旗Linux成为国产操作系统的一哥,不过幸福来得太快让红旗Linux团队完全没有意识到生态的重要性,虽然稳定性、安全性都没有什么问题,但是一台没有Office,不能玩游戏的电脑对于用户来说是没有价值的。
当时将预装红旗Linux的电脑格式化后重装Windows系统已经成为了一项标准动作了,甚至还很多电脑专卖店还将能为客户重装操作系统为自己的卖点。与拥有成熟生态的Windows相比,红旗Linux甘败下风。虽然红旗还是推出了一些经典的版本,不能阻挡其下滑的趋势。
年,中科红旗发布清算公告,这宣告红旗Linux正式解散。所以操作系统的竞争并不单单是操作系统层面的竞争,即使我们比Windows做得更好,也很难动摇Windows的地位。我们不但要做好操作系统,更要运用智慧,吸引全球的开发者加入我们的生态体系中来,唯有这样才能对传统强者发起挑战。
TRON——扼杀的惨案:上个世纪80年代,美国对日本的半导体行业痛下杀手,在同一时期日本操作系统TRON也被美国封杀。
TRON最初是东京大学教授坂村健发起的一个项目,旨在“为社会的需要创造一套独立自主的计算机结构和网络操作系统。TRON的创始人坂村健能够在30多年前就认识到互联网可能会成为未来社会的新的发展极,也可谓是俊杰人物。
上世纪80年代中期,TRON内核的操作系统日趋成熟,从桌面系统BTRON,用于嵌入式操作系统CTRON,再到汽车操作系统ITRON,当时TRON的生态也已经基本完备了。正因如此,TRON被日本寄予摆脱微软垄断的厚望。
TRON是开源的,这意味着其生态建立速度很快,一旦形成气候,未来还有没有微软的Windows王朝都是未知数。
令人遗憾的恰恰是TRON的开源,美国认识到其巨大的潜力,因此TRONVSMSDOS乃至Windows的局面并没有出现,美国政府直接在TRON发展壮大之前,以“不公平贸易“为由将其扼杀在摇篮中。所有采用TRON的美国企业都将受到制裁,TRON遗憾退出PC市场。这套路似曾相识?30年前的TRON像不像目前中国科技企业在美不公平待遇的翻版?所以我们需要对于未来的趋势抱有清醒的认识。
从这个角度上来看,我国自主的操作系统鸿蒙、银河等没有完全开源,可能也有一定道理,毕竟源代码是底牌,没必要上来就明牌打。
他山之石,可以攻玉
做出一款能用的操作系统容易,但做出一整套的生态难,因此如果操作系统能直接兼容已有的成熟生态,可能是最佳的解决方案。
银河麒麟提出的kydroid技术,笔者感觉kydroid技术可能受到QEUM虚拟化技术的启发,而成的一项模拟执行方案,其技术细节并没有完全公开,笔者不敢加以妄言。龙芯在这方面应该有所突破的,龙芯开发了一套翻译软件,可以将其它指令集翻译成LOONGARCH的指令。
目前计算机上运行的应用程序主要分为两大类型,一部分是基于虚拟机的托管类程序,另一部分则是直接运行在操作系统上的本地化程序,动态翻译虚拟机方面龙芯支持Java、JavaScript、.NET三大虚拟机无须修改代码。
在二进制翻译本地程序方面,刚刚提到的QEUM可实现针对X86、ARM及MIPS的翻译。龙芯还专门提供了条二进制翻译扩展指令对于此方面进行优化。
龙芯的二进制翻译系统名为LAT(LoongsonArchitectureTranslator)。根据最新的结果看,对于Linux进程级X86指令集的二进制翻译结果,是整形性能达到原生程序的44.4%,浮点性能达到原生程序的58.5%。虽然,相较QEMU这个成绩提升非常大,但是其中的性能损失依旧不小。据说龙芯内部将此翻译性能的目标定在了原生性能的80%,笔者认为这如果达到了原生程序性能的80%,其用户体验是基本可以接受的。那么生态问题可通过这种途径迎刃而解。
华为的大招
鸿蒙操作系统一“出生”就伴随争议,有人说鸿蒙将是民族的希望,也有人说鸿蒙只是个PPT操作系统,有网友在购买了搭载鸿蒙OS1.0智慧屏产品之后,通过软件助手等工具发现内核是Linux,其操作系统标示的是安卓,这与配置信息中显示的HarmonyOS并不一致。鸿蒙一直以来都声称自己是一款微内核操作系统,而Linux又是典型的宏内核,所以鸿蒙1.0如果真是以Linux为内核,那么就不可能是一款微内核的操作系统,而这一信息一经公布就在全网引发热议。
从华为的角度来讲,想建立一个完全独立于安卓的生态实在太难了,因此兼容安卓才是最好的选择,华为作为AOSP(AndroidOpen-SourceProject)的成员之一,为安卓贡献了很多代码,如果美国通过政府行政手段,强行安卓去华为化,势必引起其它AOSP成员的反弹,不过一旦这样的情况发生,那么华为手中再有一套兼容安卓,内核又与安卓完全不同的鸿蒙操作系统,这对于我们争取开源社区的支持,将十分有利。
鸿蒙的另一个特性微内核的情况笔者在去年的文章《鸿蒙OS的微内核技术究竟是什么》已经介绍得比较详细,宏内核将内核的功能组合在一个内核态进程中完成,微内核将许多在宏内核中的模块移出内核,使之运行于用户模式。宏内核的好处是各功能模块处于同一个地址空间,相互调用效率很高,弊端是体积太大,不利于在移动设备上进行部署。微内核的好处是功能模块各自独立,体积较少,方便进行移植也方便对其它体系的兼容。弊端是功能模块之间变进程间通信,CPU上下文切换代价很大,执行效率较低。
因此从鸿蒙微内核与安卓兼容两个关键信息结合,笔者这里猜想鸿蒙可能会利用其微内核架构,对于安卓生态的应用进行全面的继承与兼容。同时突破微内核的性能瓶颈,而软硬件协同来实现高性能IPC,恰恰是华为所擅长的领域。没准海思可能正在研发一款支持高性能IPC的芯片,这也类似于阿里云的MOC卡,使用硬件来使不同生态之间翻译转换的开销降到最低。
没有一个冬天不会过去,也没有一个春天不会到来,最近我们基础软件行业虽然好消息不断,鸿蒙加海思,玄铁加IoT,麒麟加龙芯均已问世。
笔者这里要指出两个隐忧,目前在全球最大的开源网站Github上,其新增用户中来自于我国的开发者占比超过40%,我国的开发者大多参与的是人工智能或者中间件类的项目,参与到基础软件的人并不多,笔者查询了今年以来的PatchList,我国开发者对于Linux社区的贡献在这段时间并没有增多,这里笔者必须再次向业界说明,争取Linux社区的支持,是我们自主指令集、操作系统获得成功的关键因素,无论怎么强调也不为过。因此还需要大家齐心协力,共同维护我们在开源社区的形象,才能在这场竞争中占据不败之地。