查看原文
其他

关于华为鸿蒙系统的本格推理 | 跟陶叔学编程

风云之声 2022-05-18

The following article is from 跟陶叔学编程 Author 跟陶叔学编程

      


关注风云之声

提升思维层次



导读


鸿蒙是什么?鸿蒙在哪里?

  

在今年9月即将到来的华为开发者大会,华为自主研发的鸿蒙操作系统2.0版将会发布。作为身负国人期待的一款操作系统,一直带着神秘色彩。虽然在去年的华为开发者大会就发布了1.0版本,但是关于它的信息却总是语焉不详、扑朔迷离,不能解释对它的许多疑问。甚至有很多人认为所谓鸿蒙根本不存在,只是一种营销策略。

   为了解开这些谜题,我在日前拜访了业内专家冯南图先生,与他探讨了鸿蒙的问题。因为这个问题当前已经不单纯是一个技术问题,涉及的方面很多,存在许多疑点,而线索又错综复杂,我们的讨论成为了一场推理,以期拼接出一幅清晰的图景。


  本文分为七个部分:


一、三个前提

二、鸿蒙1.0是不是安卓?

三、鸿蒙规划的演进方向是什么?

四、华为手机会不会不能用安卓?

五、华为手机为什么不用鸿蒙?

六、鸿蒙是什么?鸿蒙在哪里?

七、结论


(文中冯为冯南图,陶为陶叔)


一、三个前提

 

     陶:冯老师,现在大家都非常关注华为鸿蒙系统,许多国人对它充满期待,把它作为民族精神的象征。但也有一些人对它态度很激烈,有不少质疑或挖苦的声音,甚至断言说鸿蒙并不真实存在,只是把安卓系统换了个品牌,你怎么看?


  冯:这个问题本身是一个技术问题,涉及到了操作系统软件的许多重要概念以及前沿技术的发展方向,需要耐心地进行一番梳理。但是它又已经超出了技术问题的范畴,因为鸿蒙系统是产生于中美科技战的背景之下,双方的激烈斗争使许多人带着非常重的情绪参与这个问题的讨论,对于不同的观点难以理性对待,所以围绕这个问题产生了大量的争执甚至争吵。我曾仔细查看过很多关于这个问题的讨论,发现了一个重要的特点:有的人虽然提出了事实与依据,却有意无意地犯了两个错误,导致他们的判断出现了偏差。


  陶:哦?是哪两个错误?


  冯:一是概念不清,二是判断标准不一致。如果我们把问题进行简化,就是“鸿蒙是不是安卓”,也就是“A是不是B”。它由两个概念与一个判断组成。如果参与讨论的提问人、回答者、听众三方,提问人说的是A与B,判断标准是X,回答者说的C与D,判断标准是Y,听众以为是E与F,判断标准是Z。概念混淆不清,标准莫衷一是,每个人说的根本不是一回事却又言之凿凿,争得面红耳赤,又能得到什么正确结论呢?


  陶:那能否就这两个错误举出更具体的例子?


  冯:概念不清的例子比比皆是。就拿人们在网上相互攻击的用词来说,经常会说别人“蠢”、“愚”、“傻”、“笨”,请问你是否分得清这四个字具体指的是什么呢?


  陶:……


  冯:这四个字虽然大家经常在用,但是各有所指,意义完全不同。而且我相信绝大部分人其实是不明白自己到底是在骂别人什么的,只是随口一说,可能你骂人的用字根本就不能精准匹配他所表现出来的那种问题。蠢的本义是冬眠的虫蛇在回暖的春天苏醒、蠕动,所谓蠢蠢欲动,引申为一个人不讲方法胡乱行动。愚是形声字,心是形旁,指的是心智与性格,禺是声旁兼表意,本义是指角落,引申为不通达、孤僻,形与声合起来就是性格孤僻,爱钻牛角尖。傻字中带一个囟,这是指婴儿的头骨没有发育完全时的囟门,就是说一个人的智力像婴儿一样低下。笨也是一个形声字,形旁是竹,指的是一个人头脑里就像竹子里面一样空空荡荡,引申为没知识、没见识。


  陶:哦……确实,我们在平时生活中哪会注意这几个字的区别,都是胡乱用的。那判断标准不一致又有什么表现呢?


  冯:你有没有发现每当新闻宣布中国在高科技领域有新的突破,打破了西方的技术垄断时,马上就会有人断言这根本不算突破,因为这类技术在西方早就落后了。是否属于高科技的判断标准并不是客观一致的,而是取决于中国是否掌握。中国掌握前高不可攀,掌握以后低贱如泥。当判断标准变得从心所欲的时候,讨论也就没有意义了。


  陶:明白了。你的意思是只有以明确的概念与一致的标准作为前提,我们的讨论才会有清晰扎实的逻辑,得出正确的结论,也就不会陷入无谓的争吵。


  冯:是的。华为鸿蒙系统提出了许多的新概念,又因为其出现的背景是中美正在高科技领域进行激烈的斗争,早已偏离了原有的技术发展规划。我们还需要结合这个背景去理解概念,加上一致的标准进行判断,甚至要更深入一层,推测动机与目的,也就是要运用推理的手段,才能全面而且准确地回答这个问题。


  陶:用推理的手段来找出华为鸿蒙问题的答案,倒是很新鲜的想法,想必过程会比较有趣。


  冯:应该是的。



二、鸿蒙OS 1.0是不是安卓?


  陶:我发现对鸿蒙的质疑主要是针对已经应用在智慧屏产品上的鸿蒙OS 1.0。有人在购买了智慧屏之后,通过安装工具软件查看操作系统内核,发现内核是Linux,而操作系统标示的是安卓,这与配置信息中显示的HarmonyOS并不一致。这是不是说明智慧屏上的鸿蒙OS 1.0就是安卓呢?


  冯:要勇敢一点,相信自己的眼睛。并不是眼睛出了业障,而是鸿蒙OS 1.0就是安卓!


  陶:啊!那不正说明鸿蒙就是安卓套皮吗?


  冯:也不能这么快下结论。


  陶:这又是怎么说呢?你莫非要给华为洗地?


  冯:没有逻辑的硬拗才叫洗地,我只会按照前面说到的三个前提来进行推理。别忘了:概念清晰、标准一致、结合背景。下最终结论之前,我们还有很多信息没有考虑进去。如果以破案来类比的话,现在下的判断只是让我们获得了第一个嫌疑人,并不意味着这是最后的真相。即使我们最后得出的结论与现在的判断是相同的,也需要在推理过程中考虑过所有的信息之后才能进行确认。将所有能够获得的信息都纳入考虑,最终的结论不能与真实的信息相矛盾,这是推理的基本原则。


  陶:是。那请你继续。


  冯:我们先来看一下华为自己的解释。在2019年的华为开发者大会,余承东做了一个演讲,在他身后有一张幻灯片说明了鸿蒙发展的历程与路标。



在2019年鸿蒙OS 1.0这个部分,特意用橙色标明了“基于开源框架,关键模块自研”。这一句是什么意思呢?我们知道Linux内核是开源的,安卓也是开源的。结合前面你所说的情况,可以判断:智慧屏上的鸿蒙OS 1.0就是在这两者组成的框架上,替换了部分自研模块。


  陶:那这种替换是否够得上将其称为一种新的操作系统呢?


  冯:这个就要用一致的标准来判断。与谁一致呢?就是与安卓一致。我们知道安卓采用的是Linux内核,类似地我们可以提一个问题:安卓是不是一种Linux?无论答案为是还是否,将判断标准提取出来,同样用于审查鸿蒙1.0就可以了。


  陶:我知道有两种说法。一种是认为安卓基于Linux内核,只是对内核进行了裁剪,并在上层添加了自己的应用框架,但是并没有改变它是一种Linux的的性质,因此安卓应该被称为“安卓/Linux”,类似于“GNU/Linux”及其它Linux发行版。另一种说法认为安卓与Linux发行版存在本质的区别。因为安卓系统的应用场景不同于Linux系统原有的服务器与PC,是在手机上运行的操作系统并且形成了自己独特的生态,应该看作一种独立的操作系统。这就好比动物的进化一样,虽然各种动物的底层架构实际是相同的,但是因为生存环境不同就进化成了不同的动物种类。上了岸的鱼就不再是鱼了。


  冯:这两种说法其实就是两种判断标准。一种是只要用到了Linux内核,那就都是Linux。另一种是即使内核相同,应用于不同的场景形成了自己的生态就成为独立的操作系统。按照第一种标准来判断,鸿蒙是安卓的一种,并且因为安卓是Linux的一种,应该将其称为“鸿蒙/安卓/Linux”。按照这种判断标准,鸿蒙也好,安卓也罢,大家都是Linux,大哥别嫌二哥。而按照第二种标准,则要看鸿蒙1.0是否应用于新的场景,并且是否形成了自己的生态。


  陶:明白了。在发布鸿蒙系统时,华为有一个明确的定义,就是“基于微内核的全场景分布式OS”,应该就是想要扩大应用场景,并打造出自己的生态。


  冯:是的。那你觉得按第二种标准鸿蒙1.0能被称为新的操作系统吗?


  陶:鸿蒙1.0当前的应用场景只有智慧屏,而智慧屏并不是新的应用场景,安卓早已应用于智能电视。总不能因为把智能电视叫做智慧屏就当作新场景。场景没有变,鱼还是生活在水里,并没有上岸,因此这一条标准就不符合。鸿蒙1.0不能算是一种独立的操作系统,它还是安卓。


  冯:是的。而且我们可以更进一步。按照鸿蒙“基于微内核的全场景分布式OS”的定义,这个OS的核心特征是“基于微内核”、“全场景”与“分布式”。我们一个个地来看:1.0是基于Linux内核,这是宏内核,并不是微内核;只应用于智能电视这个安卓系统的已有场景,没有其它公开发布的落地产品,也谈不上全场景;路标PPT中明确1.0是“分布式架构”,这里就算作已经真实实现,三个特征中也有两个不符合。鸿蒙1.0不仅仅是安卓,而且按照华为自己的定义它也不能算是鸿蒙!



  陶:这个说法确实让人震惊。那华为为什么要把一个不是鸿蒙的系统称为鸿蒙呢?


  冯:要知道华为为什么这么做,也就是推测其行为的动机,就需要结合背景来回顾鸿蒙的出现过程。在2019年5月16日华为遭受美国第一波制裁以后,不仅芯片等硬件对华为限制供货,而且盛传华为手机将不能再使用安卓系统。作为应战措施,华为产品开始了“去美化”替代,许多备胎转正。现在看来,在硬件方面,特别是芯片上进展还是比较顺利的,华为产品基本不再依赖美系芯片。而在软件方面,制裁后不久就传出了华为拥有自研的操作系统“鸿蒙”,将可以作为安卓的备胎。这个消息立即引起了社会舆论的强烈关注。当时华为官方对于鸿蒙是如何回应的,你是否还有印象?


  陶:我记得最早是有一个流传很广的微信群讨论,时间是2019年5月21日,也就是华为被制裁的5天之后。余承东表达的意思是华为有自己的操作系统,并且这个系统“打通了手机、电脑、平板、电视、汽车、智能穿戴”等众多设备。我的理解是这个系统的目标就是全面取代安卓。


  

冯:你有没有注意到余承东用的是“打通了”,而不是“运行在”?

  陶:这个……我理解的“打通了”就是“都能运行”的意思。


  冯:再看一遍这段话“我们的OS打通了手机、电脑、平板、电视、汽车、智能穿戴,统一成一个操作系统”。确实有很多人理解成这些设备都将运行一个相同的操作系统。你再想想,能将二者直接等价吗?


  陶:这个……确实是有问题。


  冯:我再说一个线索。在去年华为开发者大会,余承东提出了一个产品架构,叫做“1+8+N”。1是智能手机,8是华为纳入研制范围的8种产品类型包括PC、平板、车机等,N是各种物联网设备。


  

陶:是的。这个产品架构对华为生产什么不生产什么进行了界定,让许多友商放了心。

  冯:可以看出这个架构是以手机为核心建立的。但是我们再回过头去看鸿蒙路标的那个幻灯片,你可发现其中落地产品包括手机了吗?


  陶:确实没有!这有点奇怪了。按余承东的意思,鸿蒙应该是可以运行在手机上的呀。


  冯:余承东的说法确实是容易让人产生误解,那我们再看看任总的说法。在2019年6月24日任正非接受英国《金融时报》采访时提到了鸿蒙。任总当时的原话是“首先,鸿蒙系统的产生,本身并不是为了手机用,而是为了做物联网来用的,比如自动驾驶、工业自动化,因为它能够精确控制时延在五毫秒以下,甚至达到毫秒级到亚毫秒级。第二,我们希望继续使用全球公用开放的手机操作系统和生态,但是如果美国限制我们使用,我们也会发展自己的操作系统。”这段话除了表明鸿蒙本身不是用于手机的操作系统,另一个意思是如果华为真要被逼得不能在手机上使用安卓,就会用鸿蒙代替安卓。


  陶:任总的说法与余承东的说法就有明显的区别。


  冯:按任总的说法,鸿蒙并不是给手机用的。而余承东只说“打通了”手机,并没有说“运行在”手机。


  陶:但是任总也说了如果华为被逼得不能在手机上用安卓,就要用鸿蒙代替安卓。


  冯:任总这个表态很重要,这表明了华为坚持与美国政府进行斗争的决心。为了佐证决心,在2019年推出鸿蒙就是必须的,而且让它有第一个落地产品也是必须的。智慧屏上的鸿蒙1.0系统就是这么来的。


  陶:可按照你刚才的分析。智慧屏上的系统明明是安卓,搞成了“不是鸿蒙的鸿蒙”,这不正说明鸿蒙并不存在,只不过是营销手段吗?


  冯:如果只是为了营销,就要符合营销的一般规律,就是什么量级的产品对应什么量级的营销手段。智慧屏是华为新推出的一个产品品类,而且智能电视的竞争已经非常激烈,华为不太可能把它的销售期望拉得太高。对于一个明显并不占有决定地位的产品,用一个全国都瞩目的自研系统的名义来造势,这合理吗?


  陶:确实也是说不过去。华为的决策者应该不会犯这样低级的错误。


  冯:遇到走不通的地方,我们当然要掉头回去。排除掉营销手段的判断,我们先假定鸿蒙系统真实存在,再顺着这个逻辑往下走,看是否会出现矛盾。


  陶:明白。应该是这么推理。


三、鸿蒙规划的演进方向是什么?


  冯:如果鸿蒙真实存在,智慧屏上出现的却是安卓。我们可以推测鸿蒙是基于安卓进行改造,将其朝“微内核”、“全场景”、“分布式”的方向进行改造。这里我们就需要对这三个概念进行理解。请你先讲一讲。


  陶:我对这三个概念还是下了一点工夫的,基本上说得清。微内核是相对于宏内核的一种内核架构。二者最主要的区别在于,宏内核将内核的功能都组合在一个进程中完成,而微内核将许多在宏内核中的模块移出内核,并且这些模块成为各自独立的进程,运行于用户模式。它们各有利弊。宏内核的好处是各功能模块处于同一个地址空间,相互调用效率很高,弊端是体积臃肿不利于在资源较少的设备上进行部署。微内核的好处是功能模块各自独立,减少相互之间的耦合,可以视需要组合、裁剪各功能模块,方便进行移植。弊端是功能模块之间变为IPC(Inter-Process Communication,进程间通信),代价大大增加,效率大打折扣。


宏内核、微内核与混合内核的区别

  

冯:你刚才说的微内核相对宏内核移植性强,适应场景更多。这一点,在余承东的演讲中也重点介绍了。他说平常真正用到的只有安卓内核8%的代码,但是其它一般用不到的内核部分又不得不一起部署,使得安卓手机至少需要3G以上的内存才能跑得顺畅。很多物联网设备内存非常小,不可能采用宏内核的架构。所以从宏内核向微内核改造,目标就是为了全场景,也就是为了能在物联网设备中进行部署。这一点与前面任总的说法是一致的,鸿蒙是特意为物联网打造的。

  陶:但是微内核有一个无法从根本上解决的问题,就是性能。本来在同一个进程中,可以用内部调用解决的事,现在变成了进程间通信,这个代价是非常大的。


  冯:但是在一种情况下,这种代价却变得无足轻重了。


  陶:哪一种情况?


  冯:当要使用网络上另一台设备资源的时候。


  陶:也就是分布式应用的情况?


  冯:是的。按前面任总的说法“能够精确控制时延在五毫秒以下,甚至达到毫秒级到亚毫秒级”,如果是一台机器内部的功能模块的响应速度,根本不可能用毫秒与亚毫秒这样的单位,但在物联网的场景中就是非常高的效率。所以微内核的进程间通信带来的效率损失就可以忽略不计了。


  陶:我明白了!“微内核”、“全场景”、“分布式”这三个概念只有组合在一起才能成为这个操作系统的完整特征,微内核是为全场景准备的,而分布式才能扬长避短,将其优势展现出来。


  冯:在去年华为开发者大会上,余承东演讲完之后,华为消费者业务软件总裁王成录也做了演讲,中间有一段演示,是说明分布式的具体应用。这个演示是用两个华为手机进行视频通话,但其中一个手机传过来的画面并不是本机摄像头的,而是来自一台大疆无人机上的摄像头。无人机升空以后传过来的是在空中拍到的景象。也就是说通过分布式的架构,可以将其它终端上的硬件能力当作本机的能力,华为称其为“分布式硬件能力虚拟化”。其实这个演示非常重要,但是受到的关注却很少,可能因为王总的演讲没有余总的那么吸引眼球。


  

陶:这段演示我有印象。很多人可能只是把它当作了普通的视频通话,当时现场的反应也并没有很热烈。可是因为我早就关注分布式的应用,所以明白这个演示想表达的意思。其实分布式应用平时最常接触到的就是投屏功能,把手机或PC上的内容投到投影仪或智能电视上。现在很多软件都可以通过网络连接实现投屏功能,不再需要视频线。投屏就是通过分布式应用把投影仪或电视机整合成本机的显示能力。另外,在汽车上通过蓝牙连接车机,也是分布式的应用。在车机上播放手机上的音乐时,如果操作方向盘上的按钮,手机上的音乐软件就会同步进行动作。这也同样是把车机的硬件整合成了手机的硬件。但这些都不是新概念,能实现分布式应用的软硬件都已经太多了。

  冯:你说的是对的。但是同样的功能,如果底层架构不同,提供给用户的体验感也不同,由此形成一种更新换代的解决方案,就会发生质的变化。比如2007年苹果推出自己的智能手机,其中的触摸屏、手机应用软件、移动互联网都不是新概念,但苹果的解决方案有优势,这才引爆智能手机的大发展。就以你所说的投屏功能为例,相信许多人都有这类软件的连接、使用非常繁琐的感觉,而且经常会发生莫名其妙的错误造成连接断开。如果华为拿出的方案能够彻底解决这些问题,让手机调用其它终端的硬件能力就像调用本机硬件一样快捷方便,这未尝不能成为鸿蒙的突破口。


  陶:但我记得这段演示并不是用来说明鸿蒙的能力的,而是在介绍EMUI 10的时候做的。


  冯:你说的没错,确实是在介绍EMUI 10新功能时的演示。


  陶:据我的观察,华为在手机系统上更多的精力是放在不断升级EMUI上,去年推出了EMUI 10,今年据说是EMUI 11。继续大力投入基于安卓魔改的EMUI,华为不担心不让用安卓以后这些努力都白费了吗?何不现在就开始推动将手机系统转换为鸿蒙呢?


  冯:华为在手机系统上的实际动作确实是继续在EMUI上投入,还没有看到要切换成鸿蒙的迹象。这自然会让人们产生一个疑问:华为手机会不会不能用安卓?


四、华为手机会不会不能用安卓?

  

陶:是的。手机作为1+8+N产品架构的核心,为什么偏偏不使用鸿蒙,而是继续用安卓?莫非华为判断能够一直使用安卓下去?


  冯:安卓是开源软件,这个情况你应该了解。


  陶:我还是比较了解的,写过这方面的文章。安卓作为手机操作系统的后来者最后却成为王者,取胜之钥就是进行了开源——谷歌发起了“AOSP”(Android Open Source Project ,安卓开源项目)。因为安卓开源开放的优势,获得了手机生产商的广泛支持,最终夺取手机操作系统绝大多数的份额。


  冯:因为安卓是一个开源项目,所以它不是能由某一家公司控制的。谷歌只是AOSP的发起者,现在也不过是其源码的主要贡献者之一,全世界参与AOSP的开发者都对安卓源码做出了贡献,这其中也包括了华为。对于一个开源项目,正常情况下是很难让一个遵守其许可证规定的厂商无法使用源码的。


  陶:但是谷歌作为一家商业公司,不可能一直无偿做好事的发展安卓,所以早早就布下了先手,也就是GMS(Google Mobile Service,谷歌移动服务)。谷歌的盘算就是用开源的AOSP来扩大安卓阵营,同时又用闭源的GMS来获得利润。GMS包括Google Play、搜索、日历、消息、地图、Gmail、YouTube等基础服务,因为国内早已禁用GMS,我们对GMS基本没什么感觉,但海外对GMS却依赖极深。谷歌拥有GMS生杀予夺的大权。前几年阿里巴巴推出阿里云OS手机操作系统,谷歌认为这对安卓构成了威胁,就撤销了支持阿里云的设备商的GMS授权,使得这些设备商不得不放弃阿里的系统。这次谷歌对华为故技重施,也很快就产生了效果,华为手机在海外市场的销售受到非常大的打击。而且GMS并不仅仅是一些应用,同时也是开发框架。这些年谷歌很明显地把安卓系统的一些基础服务如搜索、日历、消息等逐渐停止开发,意图将开发者驱赶到GMS中的对应服务。而如其所愿,海外的很多安卓APP为了获得最新的功能支持,已经转成引用GMS的开发包。随着这个过程的推进,谷歌对安卓的控制力也就越来越强。华为手机被禁用GMS,不仅是谷歌本身提供的应用不能使用,而且大量基于GMS开发的第三方应用也无法运行。所以,并不能因为安卓是开源软件,华为手机就能安心地依托安卓生态继续发展。最后有可能华为手机上虽然是安卓系统,却因为大量依赖GMS的安卓APP不能运行,仍然被踢出安卓生态,只能被锁死在国内市场。


  冯:这也就是为什么华为要推出HMS(Huawei Mobile Service,华为移动服务)的原因。HMS的作用就是将被禁用的GMS中的各项服务进行逐个替代。除了GMS本身的应用有了对应项,GMS提供的基础开发框架也有了对应项。但是要让原本依托GMS开发的第三方应用开发者转到HMS,需要有一个过程。为了降低他们转换的代价,华为在方舟编译器上增加了新的功能,就是将源码中引用GMS的部分自动转换为引用HMS。所以方舟编译器在华为整个应战策略中占有关键地位。方舟编译器如果获得开发者的广泛支持,华为依旧可以牢牢扎根于安卓生态。当然,方舟原本并不是为了替换GMS而出现的,它是因为华为为了解决安卓系统卡顿的问题替换了底层模块(如文件系统与图形处理模块)之后推出的编译工具。反正同样干的是替换的活,方舟已经是熟门熟路了。HMS现在已经取得了不错的进展,减缓了华为手机在海外市场流失的速度,当然HMS如果要做到GMS那般强大的吸引力,还有很长的路要走。


EMUI系统架构图,蓝底部分是已经被替换的底层功能模块

  

陶:就算HMS能取得成功,如果美国政府非要禁止华为使用安卓呢?现在美国政府的操作已经一次次突破底线了,以前哪敢想象他们居然会强迫TikTok卖给美国企业呢?再说,对于开源软件美国政府也不一定就不能伸手。比如,宣布安卓系统涉及美国国家安全,禁止列入“实体名单”企业使用安卓,如果违反禁令销售搭载安卓系统的华为手机,将受到美国制裁。

  冯:这种情况现在不敢说完全没有可能,但实施起来难度太高,他们的目的也不一定能达到。一来这对安卓系统将是一个毁灭性的打击,设备生产商将对安卓独立发展的未来丧失信心,必然开始各自准备自己的备胎,反而可能给鸿蒙机会。二来单纯打击华为手机的销售不是美国政府的重点,他们的重点还是瞄准华为的5G设备。可现实是就算他们上至总统、国务卿,下至驻外大使对华为设备不断攻击、喋喋不休,但明确表态禁止华为5G设备的国家也并没有多少啊!因此可以判断,华为手机用安卓问题还是不大的,只要把HMS真正搞起来就行。


  陶:那么,我们换一个角度思考。人类行为的动机有两种,一是压力,二是动力。华为不抛弃安卓,诚然因为压力还不够,是否同时因为采用鸿蒙的动力也还不足?是否鸿蒙要用于手机还面临解决不了的困难?虽然华为描述了鸿蒙美好的前景,但是鸿蒙在手机上其实并不具备挑战安卓的实力?


五、华为手机为什么不用鸿蒙?


  冯:要搞清这一点,就要知道鸿蒙最早是因为什么而来的。我们在路标幻灯片上可以发现最早的鸿蒙内核1.0是在2017年出现的。这个时间往前推一年,2016年谷歌启动了一个新的操作系统项目Fuchsia。如果你看Fuchsia的描述,会发现有趣的现象:它是基于微内核并且面向全场景的。也就是说谷歌在华为之前就已经规划要打通手机与各种物联网设备。而且有许多传闻说谷歌计划用Fuchsia代替安卓,即将推出搭载Fuchsia的手机等,但却总是“只闻楼梯响,不见人下来”。而在余承东的演讲中,直接给Fuchsia下了一个评语“性能较差”。性能差的原因是出在根子上:微内核的IPC代价太大。在手机这种特别讲究使用体验的场景中使用微内核系统,谁也没有把握用户能够接受。


  

陶:也就是说鸿蒙是对标Fuchsia的一个产品。Fuchsia没有解决性能问题,不敢在手机上应用,同样鸿蒙也不会冒这个险。但是按照计划,今年推出的鸿蒙OS 2.0的落地产品会有创新国产PC、手表/手环、车机,并且采用自研的通用微内核架构。在这些产品使用微内核系统,华为不担心性能问题吗?


  冯:手表/手环、车机这些产品还好说,性能问题不太敏感。但是PC对性能的要求非常高,鸿蒙不可能不考虑。现在推测有三种可能,第一种是在软件层面实现高性能IPC,使微内核突破性能瓶颈。但这种方案实现难度太大,现在也没有任何关于这种方案进展的消息。第二种是用软硬件协同来实现高性能IPC,这也是最优解。而华为比谷歌强的能力就是能够设计芯片。如果创新国产PC的“创新”一词是指一款支持高性能IPC的芯片,那就是一个革命性的技术进步,也是微内核系统咸鱼翻身的机会。第三种是在PC上采用混合内核架构。这是基于当前技术现实的妥协,谈不上“创新”,也与“通用微内核架构”的说法相矛盾。如果最终采用的是第三种解决方案,那就比较尴尬了。


  陶:这就要等到今年的大会揭晓答案了。我发现今年要推出的PC与去年的智慧屏一样都是华为新推出的品类,是否是要用新品类作为鸿蒙系统试水温的动作?一旦市场接受程度高,鸿蒙也不排除会应用于手机?


  冯:要回答清楚这个问题,就要探究到一个根本性的问题:鸿蒙到底是什么?


六、鸿蒙是什么?鸿蒙在哪里?


  陶:这个问题是要搞清楚,现在围绕鸿蒙产生这么多争议就是因为大家没有对鸿蒙统一的认识,各有各的理解。而华为对鸿蒙的介绍又云山雾罩、欲言又止。


  余承东在演讲中说“能不能用在手机上?当然能。大家问什么时候用,我随时可以用,但是因为考虑到生态原因,我们支持谷歌的Android生态,我们优先使用谷歌Android操作系统,如果Android操作系统无法使用了,我们就随时可以启用我们的鸿蒙。”这里说的意思是随时可用。而根据路标幻灯片中说是1.0“基于开源框架,关键模块自研”,2.0才是“内核及应用框架自研”以及“通用微内核架构”,这里又是未完成状态。一个随时能用的未完成系统?这是不是华为自相矛盾呢?


  冯:这要结合华为释放的其它信息一起来看。其实通过上面的讨论与推理,我们可以判断:鸿蒙实际上是准备不足,仓促上马。使这个系统能够成为一个更新换代的新系统的特征还处于规划状态,并不是现在时。但同时,这些特征也不能说是信口开河,而是基于华为已经在操作系统底层中所做的一些工作。包括三个部分:EMUI中为提升性能解决卡顿问题在安卓底层所做的模块替换,用于物联网终端的LiteOS以及分布式应用环境的通信协议与开发框架。其实将这三个部分组合起来,就已经是一个有一定技术优势的操作系统了。但这样还远远不够。我们知道,一个操作系统软件的成功并不仅仅取决于技术,而在于其是否能建立起自己强大的生态。历史的经验又证明,在已经成熟的应用领域推出一个新的操作系统,是一件成功概率非常低的事。新的操作系统生存与发展的机会在新的应用领域,只有找准了这个领域,鸿蒙才有赢的可能。


  陶:这个领域是指物联网设备?


  冯:物联网设备确实是新的领域,而且Fuchsia与鸿蒙都同时瞄准了这个领域。但是物联网设备设备种类众多,差别很大。而且许多设备的内存很小、计算能力很差,并不能提供给用户强大的功能。在这样的基础上如果不能给用户提供一种崭新的体验,新的操作系统也是难以成功的。但是华为显然找到了一个突破的方向。


  陶:你是指分布式?


  冯:正是。计算机基础架构的发展方向总的来说是两个:一个是算力更强,另一个是连接更快。不同的公司对发展方向会做出不同的研判。作为一个通信设备起家的公司,华为所理解的未来计算机发展的方向显然侧重于网络连接更快、更便利。华为所说的“1+8+N”产品架构实际上描述的图景就是一个具有中心节点的网络,而这个网络的中心就是手机。手机提供最完整的功能,以其强大的算力给用户带来最佳的体验。而8与N通过网络连接到中心节点后就成为其硬件能力的延伸。既然是延伸就不一定需要完整的系统功能(除了PC、智慧屏与车机),只需要在通用的微内核中裁剪出少量模块能把硬件管起来就行。最重要的是能够保证网络迅速连通,执行分布式应用的指令。比如一个音箱就不需要图形用户界面,有一个声控的用户界面就可以。而窗帘开关器、灯光开关器连声控用户界面都不需要,只要通信模块,连接上以后完全交给手机去控制。而智慧屏与车机这样的设备,虽然用户界面会丰富一些,但运算能力却不用太强。智慧屏的优势在于大屏幕与视频解码,车机的重点在于管理汽车上的各种硬件(空调、灯光、摄像头等),对于复杂的计算工作及丰富的功能也都交给手机来完成。这样各种设备各司其职,专注于自己的长处去发展,不需要做成大而全小而全,无谓地提高成本,同时又通过分布式的整合给用户提供更丰富的体验。


  以前我们看一些科幻片,会看到片中人物分别对着各种家用电器用语音进行操控,现在想来这种科幻没有考虑成本问题——每个家用电器都安装带语音识别功能的芯片成本又高又没有必要。你对着窗帘开关器大声喊叫有意思吗?而华为的解决方案则实用得多,只要每个电器带上通信模块,语音指令只发给手机,再由手机分别控制对应的电器,这种性价比强了太多。


  陶:但这样分布式的应用也不一定要用一个新操作系统来实现吧。只需要形成一个网络通信协议,再由各个设备产商进行支持,也同样能提供用户一个整体的分布式体验。


  冯:这就要说到通用系统架构的好处了。架构通用了,对于开发者就是福音,不需要为了开发分布式应用去学习各种各样的平台。而且完全可以在IDE(集成开发环境)的帮助下,实现用一套代码就生成在不同设备上运行的应用。提高开发效率、降低学习成本,当然会获得开发者的欢迎。用通用系统架构打造分布式应用,具有先天的竞争优势,将会加速物联网领域新生态的形成。


一次开发多端部署,同一个应用在不同设备上显示为不同的界面

  

陶:我注意到在鸿蒙之前,华为早在2012年就开始了一款微内核操作系统的开发,也就是你刚提到的LiteOS。那又为什么要再做一个微内核的系统呢?仅仅为了一个好听的名字吗?

  冯:LiteOS是微内核架构,但却做得太微了,最小可以裁剪为10KB。相应地这款系统的功能太过简单。而在谷歌Fuchsia系统发布后,相信华为受到了某些启发,意识到微内核具有向上攻的潜质,可以运行于车机、手表、智能电视等更复杂的设备,因此规划了鸿蒙项目。而华为也已经明确表示LiteOS未来将整合进鸿蒙系统,共同成为“8+N”产品的通用系统架构。


  陶:但是依然没有包括手机。余承东所说的手机要用鸿蒙随时都可以,是吹牛吧?


  冯:从前面一路的推理来看,鸿蒙要用于手机,必须突破微内核IPC性能的瓶颈,这个需要今年华为开发者大会揭晓答案。在这之前,华为手机都会用EMUI,也就是安卓。而根据传出的消息,今年会出EMUI 11,也就是继续使用安卓。如果鸿蒙随时可以出现在手机上,只有一种可能:将EMUI改名为鸿蒙!


  陶:将EMUI改名?!那不是跟在智慧屏上的一样?这样能够服众吗?


  冯:这种做法我可以接受。


  陶:为什么?


  冯:因为按照前面判断是否为独立的操作系统的标准,EMUI已经可以称为新的操作系统了,甚至连智慧屏上的鸿蒙OS 1.0都可以称为新的操作系统。


  陶:这简直是大逆转啊!这判断标准还一致吗?


  冯:标准还是那个,只是看待这个系统的角度发生了变化。原来我们是从单个设备的角度来看这个系统,手机、智能电视都是旧有的场景,基于安卓的鸿蒙当然不能算是新系统。但是现在已经不是单个设备的场景了,是由多个设备组成的分布式的网络。这个网络的每个节点可能具体运行的系统是安卓、鸿蒙或LiteOS,但它们都一起构成了整个分布式网络的物理底层,都受到一个操作系统的统一管理与资源调度,而这个系统就是鸿蒙,或者称其为大鸿蒙。大鸿蒙是运行在分布式网络这个新场景的系统,并且正在形成自己独有的生态,当然有资格被称为新的操作系统。EMUI是大鸿蒙系统在单个节点设备上的支撑系统,是其组成部分,也可以被称为鸿蒙,或者叫小鸿蒙。这也就是鸿蒙OS当前架构与未来架构对比的那张幻灯片要表达的意思。华为不好明确说EMUI就是鸿蒙,但是我认为可以把它清楚地说出来。


  

陶:呃……这个还真是需要花点时间去理解和接受。

  冯:以我的理解,在分布式网络层面的鸿蒙系统已经基本成型,而在单个设备上的鸿蒙则需要继续发展。主要是将LiteOS与鸿蒙进行整合,同时在攻克微内核性能瓶颈之后取代Linux内核。至于EMUI,并没有改名的紧迫性,同时也为了坚守安卓生态,通过兼容安卓应用将开发者逐步吸引过来。只有当微内核架构真正成熟可用,并且全球的开发者普遍接受这个新系统,鸿蒙的“正名”也就顺理成章了。


  陶:也就是说鸿蒙其实已经运行在华为及其伙伴公司出品的设备之上了,但是这个进化还没有完全完成。


  冯:是的。


七、结论


  陶:非常感谢你对鸿蒙一番细致严密的推理与分析。能不能最后进行一下总结?


  冯:好的。我的结论就是:鸿蒙显然是真实存在的。华为对鸿蒙的相关描述从技术逻辑上完全说得通,也符合计算机技术的发展趋势,因此是可信的。同时,鸿蒙是在华为多年探索改进系统底层取得的成果之上所进行的整合,也是有迹可循、脉络清晰的。但是因为中美科技战的爆发,尚未开发完成的鸿蒙系统仓促上马,自然有许多不完善之处,需要新的技术突破来助其完成最终的蜕变。但作为中国公司在基础软件领域的积极努力,还是非常值得我们支持与期待的。


  以上是与冯南图先生对谈的记录。这次对谈成了一次有趣的推理过程,虽然其中的观点带着个人理解的成分,但过程中的每一步都有着真实的信息与清晰的逻辑作为依据,并不是闭目塞听的固执己见,更不是某种信条崇拜的热血上涌。我们需要这样冷静的思考。


  在中国发展进步的历史进程中,必然需要科技进步的支撑。许多人也非常关心中国的科技进步,热烈地参与科技话题的讨论。同时,我们也应该用一个更宽广的视野去看待和理解中国科技进步的不易,要通过细心地收集信息、全面客观地分析来形成自己的观点,再以理性的态度参与讨论,这样才是真正地实践科学精神,形成科学素养。


扩展阅读:

  禁用Matlab,美国又给我们创造一次机会?(下)法道 | 跟陶叔学编程

禁用Matlab,美国又给我们创造一次机会?(上)破局 | 跟陶叔学编程

禁用Matlab,美国又给我们创造一次机会?(中)顺势 | 跟陶叔学编程

那些关于编程语言的互黑(注释版) |  跟陶叔学编程

中国芯能否登顶?从芯片产业发展史找答案 |  跟陶叔学编程



背景简介:本文作者陶卓彬,毕业于解放军理工大学,曾在军队技术部门从事软件开发十余年,并多次获得军队科技进步奖。现在北京某大学校企从事教育开发工作。长期关注互联网、软件领域课题。本文于2020年8月18日年发表于微信公众号 跟陶叔学编程 关于华为鸿蒙系统的本格推理,风云之声获授权转载。

责任编辑杨娜

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存