先说一下,文章很长很长,10万字长文,建议先收藏再观看!
一. 鸿蒙OS整体介绍
首先,我们来看一下官方对HarmonyOS的定义。根据官方的定义,HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备的能力。
对消费者而言,HarmonyOS能够将生活场景中的各类终端进行能力整合,形成一个“超级虚拟终端”,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验。
对应用开发者而言,HarmonyOS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关,降低了开发难度和成本。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。
对设备开发者而言,HarmonyOS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。
技术特性
硬件互助,资源共享
1,分布式软总线
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据,分布式软总线示意图如下图所示。
2,分布式设备虚拟化
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势,分布式设备虚拟化示意图如下图所示。
3,分布式数据管理
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。分布式数据管理示意图如下图所示。
4,分布式任务调度
分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。以下图的应用迁移为例,简要地展示了分布式任务调度能力。
一次开发,多端部署
HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发、多端部署示意图如下图所示。
统一OS,弹性部署
HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系去自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。
支持各组件的选择(组件可有可无):根据硬件的形态和需求,可以选择所需的组件。
支持组件内功能集的配置(组件可大可小):根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。
支持组件间依赖的关联(平台可大可小):根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。
技术架构
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下图所示。
内核层
HarmonyOS系统分为内核子系统和驱动子系统。
内核子系统:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,KernelAbstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
驱动子系统:HarmonyOS驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
系统服务层
系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:
系统基本能力子系统集:为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。
基础软件服务子系统集:为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP&DV等子系统组成。
增强软件服务子系统集:为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
硬件服务子系统集:为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
框架层
框架层为HarmonyOS的应用程序提供了Java/C/C++/JS等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API;同时为采用HarmonyOS的设备提供了C/C++/JS等多语言的框架API,不同设备支持的API与系统的组件化裁剪程度相关。
应用层
应用层包括系统应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
系统安全
在搭载HarmonyOS的分布式终端上,可以保证“正确的人,通过正确的设备,正确地使用数据”。
通过“分布式多端协同身份认证”来保证“正确的人”。
通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”。
通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。
正确的设备
在分布式终端场景下,只有保证用户使用的设备是安全可靠的,才能保证用户数据在虚拟终端上得到有效保护,避免用户隐私泄露。
安全启动确保源头每个虚拟设备运行的系统固件和应用程序是完整的、未经篡改的。通过安全启动,各个设备厂商的镜像包就不易被非法替换为恶意程序,从而保护用户的数据和隐私安全。
可信执行环境提供了基于硬件的可信执行环境(TEE,Trusted Execution Environment)来保护用户的个人敏感数据的存储和处理,确保数据不泄露。由于分布式终端硬件的安全能力不同,对于用户的敏感个人数据,需要使用高安全等级的设备进行存储和处理。HarmonyOS使用基于数学可证明的形式化开发和验证的TEE微内核,获得了商用OS内核CC EAL5+的认证评级。
设备证书认证支持为具备可信执行环境的设备预置设备证书,用于向其他虚拟终端证明自己的安全能力。对于有TEE环境的设备,通过预置PKI(Public Key Infrastructure)设备证书给设备身份提供证明,确保设备是合法制造生产的。设备证书在产线进行预置,设备证书的私钥写入并安全保存在设备的TEE环境中,且只在TEE内进行使用。在必须传输用户的敏感数据(例如密钥、加密的生物特征等信息)时,会在使用设备证书进行安全环境验证后,建立从一个设备的TEE到另一设备的TEE之间的安全通道,实现安全传输,如下图所示。
正确地使用数据
在分布式终端场景下,需要确保用户能够正确地使用数据。HarmonyOS围绕数据的生成、存储、使用、传输以及销毁过程进行全生命周期的保护,从而保证个人数据与隐私、以及系统的机密数据(如密钥)不泄漏。
- 数据生成:根据数据所在的国家或组织的法律法规与标准规范,对数据进行分类分级,并且根据分类设置相应的保护等级。每个保护等级的数据从生成开始,在其存储、使用、传输的整个生命周期都需要根据对应的安全策略提供不同强度的安全防护。虚拟超级终端的访问控制系统支持依据标签的访问控制策略,保证数据只能在可以提供足够安全防护的虚拟终端之间存储、使用和传输。
- 数据存储:HarmonyOS通过区分数据的安全等级,存储到不同安全防护能力的分区,对数据进行安全保护,并提供密钥全生命周期的跨设备无缝流动和跨设备密钥访问控制能力,支撑分布式身份认证协同、分布式数据共享等业务。
- 数据使用:HarmonyOS通过硬件为设备提供可信执行环境。用户的个人敏感数据仅在分布式虚拟终端的可信执行环境中进行使用,确保用户数据的安全和隐私不泄露。
- 数据传输:为了保证数据在虚拟超级终端之间安全流转,需要各设备是正确可信的,建立了信任关系(多个设备通过华为帐号建立配对关系),并能够在验证信任关系后,建立安全的连接通道,按照数据流动的规则,安全地传输数据。当设备之间进行通信时,需要基于设备的身份凭据对设备进行身份认证,并在此基础上,建立安全的加密传输通道。
- 数据销毁:销毁密钥即销毁数据。数据在虚拟终端的存储,都建立在密钥的基础上。当销毁数据时,只需要销毁对应的密钥即完成了数据的销毁。
二. 子系统架构
三. 关键技术
华为鸿蒙OS的四大技术特性
鸿蒙OS的设计初衷是为满足全场景智慧体验的高标准的连接要求,为此华为提出了4大特性的系统解决方案。
分布式架构首次用于终端OS,实现跨终端无缝协同体验
鸿蒙OS的“分布式OS架构”和“分布式软总线技术”通过公共通信平台,分布式数据管理,分布式能力调度和虚拟外设四大能力,将相应分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。
确定时延引擎和高性能IPC技术实现系统天生流畅
鸿蒙 OS通过使用确定时延引擎和高性能IPC两大技术解决现有系统性能不足的问题。确定时延引擎可在任务执行前分配系统中任务执行优先级及时限进行调度处理,优先级高的任务资源将优先保障调度,应用响应时延降低25.7%。鸿蒙微内核结构小巧的特性使IPC(进程间通信)性能大大提高,进程通信效率较现有系统提升5倍。
基于微内核架构重塑终端设备可信安全
鸿蒙OS采用全新的微内核设计,拥有更强的安全特性和低时延等特点。微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。微内核只提供最基础的服务,比如多进程调度和多进程通信等。
鸿蒙OS将微内核技术应用于可信执行环境(TEE),通过形式化方法,重塑可信安全。形式化方法是利用数学方法,从源头验证系统正确,无漏洞的有效手段。传统验证方法如功能验证,模拟攻击等只能在选择的有限场景进行验证,而形式化方法可通过数据模型验证所有软件运行路径。 鸿蒙OS首次将形式化方法用于终端TEE,显著提升安全等级。同时由于鸿蒙OS微内核的代码量只有Linux宏内核的千分之一,其受攻击几率也大幅降低。
通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
鸿蒙OS凭借多终端开发IDE,多语言统一编译,分布式架构Kit提供屏幕布局控件以及交互的自动适配,支持控件拖拽,面向预览的可视化编程,从而使开发者可以基于同一工程高效构建多端自动运行App,实现真正的一次开发,多端部署,在跨设备之间实现共享生态。华为方舟编译器是首个取代Android虚拟机模式的静态编译器,可供开发者在开发环境中一次性将高级语言编译为机器码。此外,方舟编译器未来将支持多语言统一编译,可大幅提高开发效率。
四. 参考资料
通过以下材料可进一步了解:
1)微内核和宏内核的差异,为什么鸿蒙选择微内核;
2)方舟编译器的原理和作用,已经它所解决的核心技术问题。
HarmonyOS鸿蒙操作系统的研发历程:微内核、方舟编译器、IOT生态等
• 七年沉淀,发力“鸿蒙”
• 1、ICT 领域之“大脑”,得系统者得天下
• 2、早期鸿蒙雏形 LiteOS 就已体现华为发力 IoT
• 两大核心要素 :微内核、方舟编译器
• 1、鸿蒙微内核从底层即为物联网设计
• 2、 方舟编译器是鸿蒙的取胜关键
• 5G+IoT 时代的苹果
• 鸿蒙将完善华为 IoT 生态,催化产业进程
七年沉淀,发力“鸿蒙”
1、ICT 领域之“大脑”,得系统者得天下
操作系统(OS,Operating System)是管理计算机软硬件资源的“大脑”。常见 ICT系统包括硬件和软件两部分,软件又可分为操作系统软件和应用软件。其中操作系统是介于硬件和应用软件之间的一层重要部分,是管理分配硬件资源、实现应用软件功能的重要载体。
操作系统在 ICT 领域扮演重要角色,其作用可从技术、生态两方面佐证:
技术角度看,操作系统在程序运行的过程中起重要作用。 一般而言,软件程序的运行需要四大要素:程序设计语言、编译系统、操作系统、指令集。粗略理解:1)程序设计语言是编程的工具基础,包括常见的 C、C++、Java、C#等;2)编译系统的作用是将编写好的程序语言“翻译”成机器能够识别的二进制码;③操作系统是调度资源、执行程序的“大脑”;④指令集则决定了程序以何种方式来执行。
可作以下类比:硬件相当于高速公路、铁路等基础设施资源,软件相当于驾驶员/旅客,而操作系统则相当于各种类型的交通工具。汽车、火车等交通工具借助公路、铁路等基础设施得以行驶,驾驶员/旅客在交通工具上方能到达不同目的地。操作系统则是向下对接硬件,使硬件资源的存在有实际意义,同时向上承载各类应用程序,得以实现各种应用功能;编译系统在程序运行的过程中,起到方向盘或导航仪的作用,将驾驶员(软件)的操作(程序指令)转化为车辆的位移(机器语言)。
▲操作系统在程序运行的过程中起重要作用
生态角度看,总结 Win-tel 与我国自主可控历程,操作系统厂商处于 ICT 产业链的核心环节 。Win-tel 联盟下,微软股价随 Win95、WinXP 等版本的发布屡创新高。1980s 微软与英特尔组成 Win-tel 联盟,使得 Windows 系统搭配 x86 的 Intel 处理器成为 PC 领域的绝对主流,二者结合后,在软硬件版本迭代、生产、销售等环节协同,一时形成“双寡头垄断”的格局。1995 年 Win95 的发布首创了“桌面”的概念,使人机交互界面更加友好;Windows XP 的发布进一步稳固了微软在操作系统领域的领先地位。
▲Win-tel发展历程
尽管芯片是 ICT 生态的底层核心,但 Windows 背后庞大的应用生态决定了微软对芯片商有较高话语权。微软于 2018 年公布 Win10 操作系统已拥有 3500 万个应用、超 1.75亿个软件版本,支持 1600 万个硬件/驱动组合。微软三十余年积累海量开发者,拥有庞大的应用基础,因此对芯片架构的选择拥有一定话语权。在 x86 以外微软已针对 ARM 架构推出新一代操作系统,英特尔以外的芯片商将受益 Win 生态的拓展。
另外,ICT 领域自主可控不仅体现在以芯片为代表的硬件层,更需要操作系统带动生态可持续。“基础软件的短板主要在操作系统,芯片的短板主要在 EDA(电子设计自动化)设计工具等领域”。芯片层的创新与投入一直是产业与资本的关注重点,但持续研发需要商用以及操作系统带动应用软件同步推进,如果没有商用阶段的现金流再投资,则芯片层的创新难以持续迭代。
▲国内已出现一批商用操作系统,且初具生态
2、早期鸿蒙雏形 LiteOS 就已体现华为发力 IoT
华为“鸿蒙”概念的公开时点虽受到外部环境影响,但实际已积淀大量商用经验。鸿蒙操作系统的发布时点体现重大意义,但并非是“从无到有”的过程,2012 年华为就已开发物联网操作系统 LiteOS,并在可穿戴设备、智能家居、车联网、LPWA 等领域应用,是鸿蒙操作系统的雏形。
▲华为早在 2012 年就已开始研发名为 LiteOS 的物联网操作系统
LiteOS 解决物联网应用成本、连接、安全三大痛点,体现华为早期就已探索布局 IoT领域 。
(1)低成本、低功耗。物联网需要海量终端接入,且大多数边缘设备为小型化、可移动,因此对续航能力与单位成本提出较高要求。LiteOS 内核小于 10k,同时通过 MCU 和通信模组二合一的 OpenCPU 架构,能够显著降低终端体积和终端成本。且超低功耗,甚至 1 节 5 号电池可工作 5 年。
(2)连接多样。物联网终端在不同场景下需要不同形式的网络连接,尤其进入到 5G时代后,对系统的连接性能和兼容性要求严格。连接拓展性能强,支持 6LoWPAN、WiFi、BTE、Zigbee 等多种协议,且设备间可以自组网、自发现、互操作,能够满足物联网应用的不同连接需求。
(3)安全。物联网边缘计算需要“云”+“端”协同,互联互通后数据泄露成为物联网系统的重大隐患。LiteOS 以极小体积的内核实现了双向认证、差分升级、DTLS/DTLS+等机制。
▲LiteOS 众多特性表明该系统专为物联网设计
未来成熟商用的 LiteOS 将逐步融入鸿蒙操作系统,逐步增强鸿蒙生态的多终端开发能力。在鸿蒙之前,华为已形成 HiLink(连接标准)+LiteOS(操作系统)+芯片(算力)的IoT“三件套”体系。在这一体系下,华为 2C 的智能家居、智能手机、手表手环等设备出货量已累计超过 2 亿件,2B 的水电表、摄像头、单车等设备出货量已累计超过 1 亿件,拥有成熟稳定的商用方案。进一步 LiteOS 与鸿蒙结合,将在 IoT 领域形成强大合力。
▲华为已形成 HiLink+LiteOS+芯片的 IoT“三件套”体系
两大核心要素 :微内核、方舟编译器
鸿蒙从设计之初就为多终端(如边缘计算 IoT、服务器等)而生,微内核、方舟编译器作为鸿蒙操作系统生态的两大核心要素。
微内核乃操作系统的一种结构形式,将系统实现各功能的模块化,更灵活,易于拓展、易于维护与更新迭代;编译器可视为人与机器的“翻译”,将人的程序语言翻译给计算机可理解并执行,是人与计算机之间实现沟通的桥梁。
▲微内核、方舟编译器是鸿蒙生态的两大核心要素
华为 10 年来在编译器与系统内核的布局演进,已经为鸿蒙操作系统和进军物联网做好了充足的铺垫。
▲华为 10 年布局多终端系统,为进军物联网做好铺垫
1、鸿蒙微内核从底层即为物联网设计
微内核与宏内核相对应,是操作系统的一种结构形式。操作系统的核心功能包括文件系统、内存和 I/O 设备管理、CPU 调度等,宏内核即指操作系统将上述功能全部“打包集成”在内核里,不同的功能模块之间耦合度高,所以具有高效率的优点,代表系统包括 Linux、Unix 等)。微内核则将系统分为各个小的功能模块,仅将最核心的调度、内存管理功能保留在内核中,驱动、文件系统等以“外部模块”的形式与内核连接,相应的优势是易于拓展、易于维护与更新、稳定性高,代表系统包括 Windows、Mac OS X 等。
微内核更适应复杂的程序功能,且能够更灵活地移植至不同硬件平台。微内核仅在操作系统的内核中保留最基本功能,大大降低了内核的开发难度;分布式思维,将非核心的程序和模块隔离在内核之外,因此当单一程序出现错误时不会影响系统整体功能;同时,微内核相比宏内核更易于移植,开发、更新周期也得以缩短。
仿照第一部分,同样可作以下类比:若操作系统类比为车辆等交通工具,则不同内核结构相当于车辆的不同定制方式。宏内核相当于商用整车,而微内核则类似支持深度定制车。在行驶过程中,商用整车虽整体运行效率高,但如果某一部件出现故障,则需要专人、同款备件才能维修;而定制车的很多模块可替代性本身就非常强,且能够通过简单改装在不同路况下行驶(不同硬件环境)。
▲微内核在结构形式上比宏内核更扁平化,也更灵活
鸿蒙微内核从底层即为物联网设计。上述可知,微内核的最大特性是仅在内核中保留最核心功能,因此对于鸿蒙而言:连接实时性更好(响应时延降低 25.7%、时延波动率降低 55.6%),同时结合 5G 低时延场景,尤其适用于工业控制、智能交通等物联网领域;可以做到故障隔离,最大程度保证系统的稳定性与安全性,在 5G 超多连接场景下更能满足万物互联的要求。
鸿蒙微内核体现分布式的特点,解决 IoT 生态协同的痛点。目前已有操作系统基本只对应于某一种硬件,如 Windows 对应 x86 PC、iOS 对应苹果手机等。但 IoT 时代终端种类数量极大拓展,难以针对每种硬件分别开发操作系统或应用程序,不同硬件终端的生态无法共享协同,开发效率低。而鸿蒙实现了硬件解耦,即可针对应不同设备进行弹性部署(例如智慧屏、穿戴设备、车机、音箱、手机等)。同时创新的分布式软总线使得拥有不同功能的硬件可以彼此协同。
例如:传统的相机、电视、音响等设备原本相互独立;但在鸿蒙的分布式软总线下,这些设备被“虚拟化”成摄像模组、显示模组、外放模组,并成为有机整体,用户无需另行设置即可按需调用各种功能,硬件终端之间形成相互协同。
▲未来基于微内核的鸿蒙操作系统将广泛应用于 IoT 领域
微内核是 IoT 操作系统演进方向,鸿蒙微内核之效率、安全性业内领先。一般微内核系统,由于驱动、文件系统等进程被外置,各模块之间的通信需要经过内核“搭桥”,因而效率往往比宏内核要低。但鸿蒙微内核对进程间通信进行了高度优化,使得鸿蒙相比QNX、Fuchisia 效率提升 3 至 5 倍。此外,由于微内核的代码数量远远少于宏内核,因此鸿蒙能够以对每行代码进行充分的“形式化”的安全验证,显著提升了内核安全性。
2、 方舟编译器是鸿蒙的取胜关键
方舟编译器最早系华为于 2019 年 4 月在 P30 系列手机发布会上公布,但实际积淀十年,定位是多终端系统。华为早期表示方舟编译器将大幅提升手机端安卓系统的运行效率,而开发编译器其实是协助鸿蒙操作系统更深层次布局边缘计算、服务器等领域。
对传统编译器而言,编译时点、跨语言编译是制约应用程序执行效率的瓶颈。应用程序的执行要经过字节码到机器码的转换,程序员在编程时使用上述 C、C++、Java、C#等程序语言,但硬件的执行逻辑是基于 0 和 1 的二进制。因此要让硬件能够“读懂”指令,就需要编译器把“程序语言”转译成“机器语言”。
(1)编译时点:根据编译器工作时点的不同,编译方式可分为两种,但执行效率仍有提升空间。一种是“边执行、边翻译”,程序调用了某一句指令,编译器就实时将其转译为二进制码(早期版本安卓使用该方案,程序执行效率低下);另一种是引进高性能虚拟机(在安卓系统中为 ART,即 Android Run Time),在程序安装时或系统空闲时就提前将代码转译完毕,进一步提升了程序执行效率,但新的问题在于程序安装时间长。
(2)跨语言编译:程序往往使用不同语言编写,对编译效率产生较大影响。例如采用Java 和 C/C++等多种语言混合开发的应用程序,在运行时需要借助通用接口来协调不同代码(即 Java Native Interface,JNI)。通用接口需要占用硬件资源,同时不同代码的协调本身就低效,所以传统编译器下跨语言应用的执行效率较低。
方舟编译器对以上两大瓶颈的解决方案是:将编译过程提前至开发者环节。在安卓的体系下,一些复杂动态语义的编译仍需交由虚拟机完成。方舟编译器开发团队通过梳理 Java的动态语义,进行了大规模的数据建模,尤其是在跨语言编译时,大大提高了动态语义分析的精度;另外,华为设计了一套具有核心专利的动态语义匹配机制,有效降低了运行时动态语义的开销。最终结果是,方舟编译器能够在应用程序执行之前,就将 Java 代码编译成机器语言,极大释放了硬件资源,这一点对于多终端尤其是物联网边缘计算而言尤为重要。
方舟编译器对开发者友好,利于形成良好生态。过去安卓等系统避免在开发者环节涉及编译,一大原因是为了降低开发难度,开发者只需完成代码编写即可,而无需考虑如何跨语言编译。但方舟方案下将编译过程提前至开发环节,并不增加开发者负担,相反开发者还能通过方舟预置算法进行代码优化,还可自行开发代码优化算法,未来代码优化甚至有可能迁移至云端。开发环境友好是鸿蒙搭建良好生态的重要因素。
对于方舟编译器,也可类比如下:过去 ART 虚拟机搭配安卓系统,相当于经验丰富的司机驾驶传统的手动挡汽车;而方舟编译器搭配鸿蒙操作系统,则相当于搭载了 L4 级别自动驾驶的车辆,车辆行驶可以随时根据车况、路况灵活调整,保证所有乘客的乘车体验均为最佳。
兼容 Java 和 C、C++等多种语言增强了鸿蒙即战力,并与自有麒麟、鲲鹏等硬件架构协同,形成类似 Win-tel 的软硬件格局。
▲华为 IoT 已形成类似 x86 领域成体系的芯片家族
因此综合微内核、方舟编译器两大要素看,鸿蒙生而为物联网设计,并非单纯以手机操作系统为主要阵地。一方面,对于华为成熟的手机业务而言,做系统容易,但建生态难,当前安卓和苹果已构建了几乎不可打破的生态系统,在条件允许的情况下继续使用安卓对于华为是一种资源节约。
进一步更通俗地解释:对于开发者编写的不同程序,只需经过方舟编译器的处理,鸿蒙操作系统即可顺利执行;且微内核下的鸿蒙可移植于不同平台。这样的系统特性天然适配于物联网时代的海量终端与海量应用。
5G+IoT 时代的苹果
苹果曾是 3G、4G 移动互联网时代成长的新兴巨头,回顾苹果的崛起路程,在生态、硬件、先发优势+持续创新三方面体现优势。
1、生态。在苹果之前,微软曾于 1996 年发布可运行于手机的 Windows CE 操作系统;塞班于 2001 年发布 symbian S60 操作系统,一度获得诺基亚、三星、索尼爱立信、摩托罗拉、西门子等众多手机大厂支持,但由于 symbian 系统对开发者不友好、内核臃肿,在3G 时代到来后苹果抓住移动互联网的机会推出iOS,并搭建拥有高质量应用的 AppStore,强大的开发者生态不断增强苹果公司的生命力 。
2、硬件。相较之前的手机品牌,苹果拥有体系完整的硬件产业链,且在上下游拥有极强的议价能力,并在手机之外推出 Macbook、iPod、iPad 等产品,不断拓宽硬件“能力圈”。在优质生态的基础上,紧密的硬件产业链一方面可以提升公司盈利能力,另一方面软硬协同也极大提升了方案本身的使用体验。
3、 先发优势+持续创新。通过良性循环的生态+软硬件协同形成护城河之后,苹果不断前瞻移动设备领域的新技术、新应用,且能够持续迭代,逐步把持了行业的发展方向,最终成为移动互联网时代的一大巨头。
但随着 C 端移动互联网红利见顶,苹果在 5G+IoT 时代增长乏力。随着技术演进,苹果近年来也暴露出一些问题:生态不如安卓开源;核心硬件受制于外部(比如基带依赖高通、英特尔);后续创新乏力(新款 iPhone 难言成功)。在 5G+IoT 时代,其他 ICT 厂商开始面临新的机会。
产业互联网新蓝海下,“华为之于物联网”可类比“苹果之于移动互联网”。 生态。鸿蒙与方舟编译器将开源,拥抱海量开发者。以手机端为例,方舟编译器与超过 40 个高质量 App 合作,明显优化 Android 操作系统的流畅度。在更广泛的 IoT 领域,方舟编译器支持多语言统一编译,也支持混合编程,实现“一次编程,多端使用”,极大降低了开发者负担(例如对于某款应用,只需要一次性完成代码,就可以适配于手机、电视、车机等多种终端)。因此借助方舟编译器,鸿蒙将搭建完善的 IoT 生态。
硬件。华为拥有强大 ICT 硬件基因,已推出从底层硬件到中间件、操作系统,再到到编译工具、应用软件的全栈软硬件方案。类比苹果产业链,华为内部已基本形成核心硬件环节的自研,例如新发布的前端昇腾 310+后端鲲鹏 920 的安防软硬标准化解决方案,又如自研基于鲲鹏 920 的 Taishan 服务器等全栈软硬件系统在山东移动 BSS 实现国产替代等。因此鸿蒙相比谷歌 Fushcia 等纯软件体现出硬件优势(苹果于 2019 年 7 月收购英特尔 5G 基带部门也体现自研芯片对系统生态的重要性)。
▲包括网络芯片在内,华为海思已形成全系列芯片组平台
▲华为全栈软硬件已在运营商 CRM 核心系统应用
先发优势+持续创新。鸿蒙前身 LiteOS 早已推出,拥有商用经验和先发优势。物联网基础是网络,华为在 5G 领域的深厚积淀。例如,其于 2019 年初发布首款商用 5G 多模终端芯片 Balong 5000 和首款 5G 商用终端华为 5G CPE Pro。Balong 5000 在 Sub-6GHz频段实现 4.6Gbps、在毫米波频段达 6.5Gbps 的峰值下载速率,并支持 SA 和 NSA 组网,已经完全满足未来 5G 产业不同阶段的商业需求,相比行业标杆的高通 X50 已取得领先。华为 5G 技术的先发优势与持续创新是鸿蒙作为 IoT 多终端操作系统取得成功的保障。
▲华为 5G 声明专利量排名居各厂商第一位
操作系统意味着应用平台与流量入口。上述从生态、硬件、先发优势+持续创新三方面看,拥有操作系统将帮助华为在物联网领域拥有更强话语权,将沿苹果在移动互联网时代的路径,成长为 5G+IoT 的巨头。
鸿蒙将完善华为 IoT 生态,催化产业进程
IoT 是华为在产业物联网时代的重要布局,华为主要聚焦于基础设施领域。海量低成本终端设备连接需要保证联接可管可控,且全网连续覆盖,以及端侧(终端)、传输、云端安全。华为多年深耕 ICT 基础设施,全栈软硬件保证 IoT 方案稳定性。据华为 2018 年全联接大会,华为物联网联接数超过 2 亿,每月增长 600 万联接,日均 API 调用超过 1.3亿,方案成熟度高。
鸿蒙操作系统与华为“云+端”芯片形成强大合力,形成杀手锏应用。华为优质网络设备是 IoT 的连接基础,连接获得了大量数据,但只有通过智能分析才能够形成杀手锏应用。华为已在云侧和端测拥有昇腾、鲲鹏、麒麟等芯片,具备强大算力,叠加鸿蒙操作系统高效、灵活的执行能力,将培育大量高价值应用。
车联网、智慧城市、工业是华为 IoT 的三大应用方向,目前三大应用成熟度各有不同,鸿蒙操作系统预计将在三大领域起催化作用。
▲华为已培育车联网、智慧城市、工业三大 IoT 方向
车联网:快速兴起的 IoT 场景。当前车联网更多是实现车与路的主动协同沟通,逐步实现从辅助驾驶到自动驾驶,并做到大大降低成本。基于 C-V2X,华为已拥有完整的车联网硬件体系,具体包括芯片、OBU 盒子、RSU 实现路边感知设备、云端搜集数据和数据处理的 V2X 服务器等。我们预计未来终端的前装和后装市场、定位与地图(华为已获得甲级测绘资质,未来鸿蒙+巴龙 5000 芯片+高精地图具有想象空间)、后端数据处理(鸿蒙+Taishan 服务器+鲲鹏芯片的强大算力组合)将是重要的产业方向。
智慧城市:较为成熟,从互联网向物联网过渡。智慧城市是城市级网络接入、NB-IoT 广覆盖、低成本低功耗特点的体现,我们预计未来拓展方向包括智慧园区(鸿蒙+安防领域基于鲲鹏/昇腾的 Huawei HoloSens)、智慧家居(鸿蒙+基于鸿鹄 818 芯片的荣耀智慧屏)等。
工业:5G 提供新机会。工业互联网痛点之一在于网络连接,痛点之二在于行业Knowhow。网络连接的难题将在 5G 商用与网络切片推广后迎刃而解,华为将是网络基础设施的核心供应商;对于行业 Knowhow,鸿蒙强调搭建生态圈,且具备开发者友好的特性,利于培育不同垂直行业客户并积累经验。此外华为已面向各行业推出“华为云 EI 智能体”,华为云已拥有超过 100 万开发者和企业用户4,初步形成良性生态。
综上,鸿蒙操作系统的推出将对华为各业务板块产生积极作用,并推动 IoT 产业进程,预计华为产业链众多公司将受益。
智东西认为,华为创始人任正非曾在接受法国媒体采访时详细介绍了鸿蒙操作系统。他表示,鸿蒙系统的处理延迟小于5毫秒,将完美地适应物联网,还能够应用于自动驾驶。现在,随着华为在全球开发者大会上正式发布鸿蒙系统,鸿蒙操作系统的神秘面纱也已被揭开。作为一款微内核面向全场景的分布式操作系统,鸿蒙诞生之初似乎就是为了物联网准备的,但是,一款操作系统的成功与否最重要的还是生态系统的搭建,未来,华为若想不负众望,在5G万物互联时代搭建起强大的生态系统,成为5G+IoT 时代的“苹果”,还需要加倍努力。
——————
原创:老王丨【个人微信:spoto777;公众号:鸿蒙开发者老王】华为认证讲师 / 腾讯认证讲师 / 鸿蒙开发先行者