简体
  • 简体中文
  • 繁体中文

原创精选> 正文

一文读懂华为创世“鸿蒙”与救世“方舟”

2019-08-09 18:09

作者:华盛学院Oliver

今天华为CEO余承东正式公布了鸿蒙系统,并畅想了基于方舟编译器与鸿蒙系统的新手机系统,这样的新系统可能完爆“安卓”系统,也可能是人工智能时代的新式系统!这些新产品有可能被历史铭记。

一、鸿蒙与方舟名称的由来

“鸿蒙”这个饱含中国意蕴的词,来源于中国神话传说,大气且寓意深远,彰显着纯纯粹粹的中国血统。“云将东游,过扶摇之枝,而适遭鸿蒙。”《庄子·在宥》,万物生于无极,无极即是传说在盘古开天辟地之前,世界是一团混沌的元气,这种自然的元气叫做鸿蒙。

上帝因世人行恶,突然 猛降洪水,以达消灭人类之目的。但是,为使心慈性善的诺亚免于此难,命留人间,上帝就命诺亚提早制造一个方舟,用于全家避难。“方舟”便由此而来。

二、鸿蒙OS的初衷

随着全场景智慧时代的到来,华为认为需要进一步提升操作系统的跨平台能力,觉得各种系统,各种设备的相互转换过于麻烦,鸿蒙的目的就是连接万物!让所有智能设备在新时代连接起来。

三、鸿蒙OS的四大技术特性

第一,分布式架构首次用于终端OS,实现跨终端无缝协同体验。鸿蒙系统将相应分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够开发同一终端一样开发跨终端分布式应用。简单来说,从前开发者需要针对各个产品,各个系统开发,从今以后开发者只用开发一次,所有的产品都可以使用。

第二,确定时延引擎和高性能IPC技术实现系统流畅。鸿蒙OS通过使用确定时延引擎和高性能IPC两大技术解决现有系统性能不足的问题。这两项新技术将会使得我们的系统更加的流畅!

第三,基于微内核架构重塑终端设备可信安全。微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。鸿蒙帮我们系上了安全带,让我们拥有更安全的系统体验。
第四,通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享。鸿蒙OS使开发者可以基于同一工程高效构建多端自动运行App,实现真正的一次开发,多端部署,在跨设备之间实现共享生态。开发一个APP,汽车,电视,手表都能用!

据介绍,华为将在今年首发的智慧屏产品中率先使用鸿蒙OS 1.0。未来三年,除完善相关技术外,鸿蒙OS会逐步应用在可穿戴、智慧屏、车机等更多智能设备中。

四、十年方舟,再造安卓

没错,华为为此准备了十年。

2009年,华为启动5G基础技术研究的同时,开始创建编译组,第一批海内外研究人员加入。
2013年,华为推出面向基站领域的自研编译器HCC,并正式提出编译器框架构想。
2014年,众多海内外专家加入华为,方舟项目正式启动。
2016年,成立编译器与编程语言实验室。
2019年,华为方舟编译器正式面世!

2017年8月的一个凌晨,在华为的一个实验室里,项目组已经连续数日24小时不间断攻关,却始终看不到success的返回信息。绝望之下,工程师把所有通信数据打印出来,逐个字节排查,最终发现有一处字节的顺序不一致。纠正后,华为方舟跑通了第一个安卓后台服务DiskStatus,这标志着对安卓的换心手术进入了实操阶段。

2018年春节前一周,方舟编译器跑通安卓系统所有后台服务,并成功移植到手机。当晚,所有人聚集在实验室的机房中,等待首个开机画面加载成功的神圣时刻。秒针滴答,如同过了一个世纪那么久,屏幕终于点亮。

欢呼,拥抱,一蹦三尺高,项目组成员们到底没忍住,留下了激动的泪水。
接下来,项目组在除夕前夜启动了方舟编译手机的Beta测试。大年初一清晨,总架构师发来了第一条经编译器编译的运行程序发出来的拜年消息:
“春节快乐,方舟大吉!”
当P30发布会上“方舟”一出现,就在中国软件行业“炸”开了锅。无数软件从业者从一开始的质疑,到弄清方舟真相后的惊叹……这些都是对华为软件工程师们十年如一日、一点一滴“啃硬骨头”的致敬!

五、方舟到底是什么?
实际上,方舟已经不是传统意义上从高级语言到机器码的“万能翻译”,更是一个编译运行系统。

一方面,方舟编译器首次在Java领域将虚拟机干掉了,也是软件史上首次将Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别Java的JNI额外开销,也彻底告别了虚拟机的GC内存回收带来的应用进程掉线,使操作流畅度大幅提升。如果说目前最新的安卓系统是和谐号动车,那么经方舟编译的安卓系统便是高铁,是“复兴号”。
另一方面,方舟编译器用空间换性能,直接将编译器的代码优化搬到了开发者环境,不再被手机端的硬件资源所限制,为代码优化提供了无限可能。

华为方舟编译器团队基于多个编程语言的深刻理解和大量研发积累,将混合语言破天荒实现了统一的中间表示IR,这就相当于同一个人能够理解全世界的语言,所以我们把这个革命性突破叫做,代码“万国通”。

六、安卓卡顿再见!
方舟的另一个重要使命,就是解决安卓虚拟机GC内存回收带来的“Stop World”。

目前安卓手机内存资源不够用的时候,GC直接叫停所有应用,所以偶尔会遭遇莫名卡顿。

方舟编译器采用了引用计数法(RC,Reference Counting)来进行内存的实时回收,并且配合使用了专门的消除环算法(消除对象互相引用带来的无法回收问题),来避免GC集中式回收带来的系统卡顿。相比GC,方舟的内存回收是实时的而非集中式的,且不需要暂停应用进程,这样便大大消除了卡顿。  

如果把内存回收比作成打扫房间,那么GC的策略是专门有一个卫生员,看房间里垃圾太多了,就把所有人请出去,打扫完了再让大家回来。而方舟的RC则是每个人收拾自己的垃圾,用完就清理,保持清洁的同时不影响人的正常活动。这样就解决了安卓的卡顿问题。

七、未来的全新系统

对于鸿蒙OS是否会在手机上使用,华为消费者业务CEO余承东现场表示,“随时可以,但考虑到合作伙伴和生态建设,手机端还是优先用安卓。”

“鸿蒙”系统可以应用在非常多的硬件设备上,能够实现硬件之间的相互配合与相互兼容,并且由于低延迟的原因,在物联网中非常适用,同时“鸿蒙”系统在流畅度方面可能将优于IOS,华为内部已经有相关的报告表明,“鸿蒙”在速度方面比安卓快了一倍不止。

鸿蒙会成为最好的物联网系统吗?方舟编译器能让华为的新操作系统快过苹果吗?这些问题的答案都要让华为,让时间来告诉我们。

资料来源:华为,华为开发者大会,华盛资讯

风险及免责提示:以上内容仅代表本文作者的个人立场和观点。投资者在做出任何投资决定前,应结合自身情况,考虑投资产品的风险。必要时,请咨询专业投资顾问的意见。本文不构成任何投资建议,对此亦不做任何承诺和保证。

风险及免责提示:以上内容仅代表作者的个人立场和观点,不代表华盛的任何立场,华盛亦无法证实上述内容的真实性、准确性和原创性。投资者在做出任何投资决定前,应结合自身情况,考虑投资产品的风险。必要时,请咨询专业投资顾问的意见。华盛不提供任何投资建议,对此亦不做任何承诺和保证。