APP下载

鸿蒙到底是什么?

2021-08-14伍健

微型计算机·Geek 2021年7期
关键词:鸿蒙源代码安迪

伍健

不久前华为正式发布鸿蒙系统2.0,并且同时公布了在上百款华为设备上升级鸿蒙的具体时间线,“鸿蒙”这一脱胎于神话的词语再次成为人们关注的焦点?为何网上有人发言攻击鸿蒙是“套壳版”的安卓?而安卓作为一个开源项目诞生的系统,又为何会对国产硬件厂商产生威胁?要弄清楚这个问题,其实说难也不难。

20世纪70年代初,伟大的UNIX系统问世了。在它之前,小型计算机和微型计算机上的系统在批处理作业时,响应速度已经远远无法满足彼时用户的需求了。于是有人提出了分时系统的概念。顾名思义,分时系统是将CPU的运行时间划分为若干个小片段,多个用户可以利用分时段这种形式,轮流使用CPU的算力,实现系统从单一用户/单一任务的交互形式,进化为多用户/多任务的交互形式。由于分时系统的时间片段切割得非常短小,因此用户实际上是感受不到自己在排队等待的。而UNIX系统也从汇编语言版本,过渡到了C语言版本UNIX VersionV后,具备了广泛应用的可能性。

发现了UNIX十分好用的IBM、惠普在内的各家商业公司,开始着手开发属于自家版本的UNIX系统。但各家公司开发的UNIX用于商业目的都是闭源的,也就是并不会轻易公布源代码。为了方便UNIX编程教学,荷兰阿姆斯特丹大学的教授Andrew Tanenbaum自己编写了一套UNIX系统,命名为Minix,也就是迷你版本UNIX的意思。基于微内核架构的Minix并不包含任何AT&T源代码,随后Andrew决定,将它全部开源给大学教学工作,并在2000年改为了BSD授权使用的形式,但同样保持了开源使用。当然开源的好处就是会有更多年轻人加入对这套系统的开发,随后还在上大二的Linus 基于Minix写出了Linux系统也就是安卓系统的内核。而我们熟悉的苹果iOS系统同样基于Minix的FreeBSD版本。因此你也发现了,开源的安卓也好,闭源的苹果也罢,他们其实都来自同一个祖先——UNIX。所以如果非要纠结所谓的“套壳”,UNIX老祖吐个唾沫星子,就能怼至你闭嘴。

法国作家利尔亚当曾在他的科幻小说《未来夏娃(Lève future)》中,为故事中外形像人的机器人起名Android。安卓Android系统最早并不是谷歌公司研发出来的。先后在苹果和微软工作过的安迪·鲁宾离职后和朋友一起研发出了一款名为Sidekick的掌中设备,并成立了两家开发智能手机操作系统的公司Danger和Android。随后Danger以5亿美元的价格被微软收购,而Android则卖给了谷歌,并且安迪本人成了谷歌的高级副总裁,继续负责Android项目的开发。两年后,也就是2007年,谷歌正式发布了安卓Android操作系统,并且宣布成立“开放手持设备联盟(Open Handset Alliance)”,邀请手机制造商、软件开发商、电信运营商和芯片制造商共同开发安卓系统。也就是从那时起,谷歌以Apache许可授权的方式发布了Android的源代码(Apache许可是Apache软件基金会发布的一个自由软件许可证,目前安卓开源项目使用的是最新的Apache 许可授权2.0版本)。而这个“安卓开发源代码项目(Android Open-Source Project)”也就是AOSP。而包括华为在内的众多厂商,本身也是这个开源项目的重度参与者。

我们日常手机中预装的安卓系统,其实这个操作系统已经进化了很多代,就像所有的老牌操作系统一样,它的组成很复杂。简单来说,它包含了开源代码部分、安卓自主知识产权代码部分以及谷歌移动服务(GMS)。其中谷歌移动服务GMS包含了Chrome浏览器、YouTube、谷歌Play商店,这也是谷歌为数不多的从安卓系统中获利的部分。因为任何厂商尤其是在国外,想要让一款手机拥有底层技术和API,即让手机不只是能上网打电话,就需要通过GMS商用授权实现移动支付、语音命令和云存储等功能。这也是华为最担心的——假如谷歌不再同意GMS授权,华为手机就会面临在需要用到GMS服务的国家或地区,无法拥有完整的谷歌生态的尴尬境地。简而言之,这是个别人卡住你脖子,不让你摆摊儿卖货的“生存问题”。

但由于安卓的演化过于复杂,一则谷歌保留了安卓系统部分产权代码和谷歌移动服务,二则安卓系统也是来自更古老的开源系统——整个代码库的版权归属问题更像是一笔烂账。比如拥有Java软件知识产权的甲骨文公司,就曾一直主张安卓侵犯了Java的知识产权代码,过去十年间反复指控称安卓抄袭了Java超过一万行的API源代码,一直到今年4月甲骨文在终审判决中败诉,整个官司维持了十年之久。其实甲骨文的做法,就是想把原本应该开源的API代码,通过申诉版权的形式独占。这和安卓以开源代码为基础,逐渐建立自己生态体系的半开源护城河玩法,在某种意义上也是类似。只不过这么多年过去,谷歌已经摸索出了一套在免费开源和商业授权之间平衡的机制,让同盟者随之获益良多,因此大家对于这种模式也就没多说什么。

但是没办法再一起好好玩耍又该怎么办呢?其实在鸿蒙之前,这种事有过类似的先例。2012年9月13日,阿里云与宏碁原定于上海举办的发布会突然宣布取消。随后阿里云方面称,合作伙伴宏碁收到了来自谷歌安卓方面的压力。此前安卓系统创始人安迪·鲁宾就多次和阿里巴巴隔空喊话,安迪强调阿里云OS很明显是从Android修改得来,但阿里巴巴否认这一说法,称阿里云OS使用了安卓框架和工具。而令谷歌恼火的地方,可能是阿里云OS拥有了自成体系的生态系统,绕开了谷歌GMS。彼时高调的阿里巴巴也没能从这场风波中占得上风。

但是这次鸿蒙的出现,和刚刚列举的事件在出发点上又完全不相同。说得更直白点,华为手机已经被禁用了GMS服务,因此一个新的、可代替的系统方案,就变成了势在必行的开发任务。鸿蒙这次的思路,显然高明得多。简单来说,鸿蒙的开发思路是更有意思的“万物互联”,而不仅仅把自己局限为操作系统的层面。鸿蒙的出现也不是一蹴而就的。在华为EMUI时代,华为的开发团队就已经开始尝试如何从一个UI转变为一个平台。在EMUI 5.0以上版本,华为完成了对安卓系统垃圾回收机制、AOT、数据库优化的关键进展,并且推出了可以减少运存依赖的UltraMemory,对安卓底层技术模块进行了各项深度开发,对外就构成了EMUI"18个月不卡顿”的豪言壮语。而到了EMUI 8.0时代,华为再次强调GPU Turbo,对安卓系统全站图形模块尝试修改,并在接下来推出了GPU Turbo2.0、CPU Turbo、LinkTurbo等多个关键系统性能优化技术。2019年,华为首次提出了“1+8+N”智慧全场景战略,也就是万物互联的前身。而随着鸿蒙2.0的到来,华为HMS成了谷歌GMS的代替服务方案,成功解决在没有GMS服务支持情况下,消费者的手机软件服务支持问题。从HDC 2019公布的鴻蒙时间线规划也可以看出,鸿蒙OS 3.0在通用微框架基础上,正在向着软硬协同高性能IPC迈进,也就是为“万物互联”提供更强的性能支撑。设想一下,你可以在熄火下车后,将车载通话或者地图导航的步行部分转移到手机,或者将外出智能手环或者手机正在运行的应用转移到电视上,这些已经并不遥远。面对外界种种猜测,华为鸿蒙负责人王成录称:

“HarmonyOS的定位一直很清晰,它瞄准的从来不是安卓或iOS,这是面向万物互联时代的操作系统。”

那么,鸿蒙系统除了刚刚提到的万物互联核心玩法,又该如何去准确定义?首先要强调,Harmony OS是新一代的智能终端操作系统,智能化和协同性构成了鸿蒙的底色,因此从本质上它与安卓这种强调“宏内核”的系统有着本质的不同。“宏内核”也就是打包式内核,无论你用不用得到的功能,类似Windows、安卓都是用打包的形式一股脑丢给你,虽然这个包就像汉语大词典一样大而全,厚重的分量,势必会让“背书包”的硬件占用到很多不必要的资源。而鸿蒙的思路恰恰相反—把庞大的复杂的操作系统,从根本上解构成为一个又一个的模块化功能,也就是我们说的“微内核”,那么它还是“一个”操作系统么?很多人困惑的地方也正是在此处。华为手机上的鸿蒙系统和刚刚发布的用于IoT设备上的Harmony OS看起来还是有很大差异,但这正是鸿蒙的高明之处,因为它们都构成了“万物互联”新生态下终端可以联系起来的关键。

猜你喜欢

鸿蒙源代码安迪
奇思妙想(4)
鸿蒙:打破安卓垄断 所有权归属国家
你好,鸿蒙!
基于TXL的源代码插桩技术研究
华为一大批鸿蒙商标等待审查
保护好自己的“源代码”
解密别克安全“源代码”
机器人安迪
看电影
手机不通