华为10年前就开始探索鸿蒙。现在投入的人力接近5000人,短期内要把整个系统完善,所以工作量非常大。
鸿蒙用中文的意思可能有‘开天辟地’的意思,最接近的英语单词就是Genesis,开天辟地的意思。用汉语拼音表达鸿蒙太难发音了,取名Harmony,希望给世界带来更多和平、方便。
分布架构、天生流畅、内核安全、生态共享四大特点。 鸿蒙OS在分布架构上,实现模块化解耦,对不同设备进行可弹性部署。采用分布式软总线核心技术,将表示层、会话层、传输层和网络层等协议精简为一层,能提升有效载荷。还通过多方面提升IPC性能,在进程间通信效率提升5倍。
根据鸿蒙OS架构设计,系统可运行在智慧大屏、穿戴、车机、音响、手表、手机、PC等等各种各样设备。
通过一套系统,一个OS实现模块化解耦,对应不同设备可以弹性部署,不管硬件能力强还是硬件能力弱的,都可以一套操作系统,可以统一在不同硬件平台上进行加载部署。
同时应用强大灵活统一部署能力,我们一套OS能够运行在不同硬件能力上进行部署,适配丰富的万物互联时代IoT时代能力的操作系统。
鸿蒙完全达到具备商用的程度了,随时都可以出鸿蒙系统的手机,我们也做好了全面的准备。但我们还是希望继续使用全球共用开放的手机操作系统和生态,换句话说,一个开放的安卓系统和生态依然是我们的首选。 鸿蒙未来在穿戴设备、车机、PC等都可以使用。
目前,我们目前所有的主流OS架构都是集中式的,即你的手机OS和你家的智能电视的OS各自独立,除了共同享有后台的数据,本身没什么联系。
打个比方,即使你在手机和智能电视上同时打开一个APP,现在的实现也是各自运行各自的,你手机的操作不会影响到智能电视上APP的运行,除非是改了后台保存的数据。
而华为的分布式OS,可以实现应用的协同处理。你在手机上的操作,可以同时在智能电视的APP界面上得到体现,手机关闭APP,电视上的APP也关闭。这就是多终端的协同处理,鸿蒙OS可以把多个终端统一管理,联合来实现某项功能。
所谓微内核,当然是相对宏内核来说的。
微内核是提供操作系统核心功能的内核的精简版本,微内核仅仅提供基础的系统运行能力,以及为不同的程序/进程间提供一种消息的交互机制。
而宏内核相当于一个是一个大主管,提供很全面的系统运行功能,例如时间管理、内存管理,文件管理,网络管理等等,安卓就是一种宏内核的OS。
微内核的好处就是系统运行效率高,系统更加健壮,不容易出问题。微内核的最大的问题就是进程间的消息交互的效率不高,如果有很多的消息同时交互,可能会有消息丢失、重传导致系统反应变慢。
宏内核不存在这个进程交互的消息通信问题,宏内核的系统功能常驻内核和内存,执行效率的确高一点。但是宏内核越来越多的功能会让系统越来越冗余,对系统硬件的要求很高,而且内部模块过于冗余,维护调试越来越难。
所以,宏内核的OS系统不适合一些轻量级的应用,如物联网。谷歌自己也在研究微内核的OS,为了万物互联,打造统一的OS,微内核的OS是必须的。但是华为的鸿蒙OS比谷歌的Funchsia走的更快了一些,因为鸿蒙在荣耀智慧屏马上要商用了。
鸿蒙 OS通过使用确定时延引擎和高性能IPC两大技术解决现有系统性能不足的问题。我们在前面说了,微内核的OS,可能会出现大量的进程间的消息通信时,大量进程间消息一拥而上,导致大量消息被阻塞,系统性能下降的问题。
鸿蒙OS的这个特性就是解决这个问题。鸿蒙OS内部把不同的进程消息确定优先级,采用专业的调度算法来合理调度进程间的通信消息,高优先级的应用优先保障,低优先级的应用排队处理。
这种机制就让微内核进程间的通信变的有序,不会出现大家一拥而上导致消息丢失的现象。其实这种基于优先级消息的调度机制在华为的高端通信设备,如路由器设备中早就使用,只是把这种机制用在了鸿蒙OS。
鸿蒙OS采用微内核设计,微内核本身的健壮性和安全性就比宏内核高很多。微内核设计的基本思想是简化内核功能,因此不存在和系统功能的耦合性,让整个系统相对健壮。
宏内核集成了很多系统功能,功能越复杂,系统越复杂。虽然系统功能的通信效率有所提升,但是复杂的耦合性让系统的故障率也更高,这是宏内核OS的特点。
华为的鸿蒙OS基于微内核,因此可以让整个系统更加健壮,不会因为对系统功能的攻击影响整个系统的稳定性。同时通过华为先进的验证测试算法,可以确保整个OS更加安全,在受到攻击的时候系统更加稳定。
鸿蒙OS支持多终端的开发IDE,支持多语言统一编译。也就是开发者可以一次性的生成在不同类型的终端中运行的APP。这个策略是和鸿蒙的跨多终端部署的策略紧密相关,如果相同的应该不同的终端都需要重新编译适配,那么这个对开发人员典型是不友好的。
也就是如果开发者的应用,需要同时在手机、车载、物联网路由器使用,那么如果使用鸿蒙OS加上方舟编译器,只需要编译一次就可以,这样就可以实现多终端的部署和共享
华为的方舟编译器可以为开发者在开发环境中将高级语言编译为系统底层的机器语言,机器语言的执行效率更高,同时也可以屏蔽不同的虚拟机的差异。
鸿蒙开源是一个全面的开源。为了技术保密和核心的东西,在有一些地方分节奏开源,最终都会开源。