操作系统自20世纪50年代诞生,经历了从专用操作系统到通用操作系统的转变。整体可以将操作系统的发展历史分为3个阶段:PC时代、移动互联网时代、万物互联时代。
PC时代主要以计算机为主,用户规模从1970年的10亿增长到1990年的30亿。这一时代诞生了Windows、Linux、MacOS等操作系统。由于Windows操作系统的广泛应用部署,微软于20世纪90年代成为全球市值最高的公司。
随着智能手机的普及,操作系统正式进入了移动互联网时代,苹果推出了iOS操作系统,支撑苹果成为全球市值最高的科技公司;谷歌2005年收购了Android公司,并持续地进行研发投入和版本迭代,如今Android操作系统已经成为世界上发行量最大的移动智能操作系统。
在万物互联时代,随着越来越多的设备接入互联网,单一操作系统很难适应多样化的智能终端、各种复杂应用场景的需求。谷歌、华为等各大企业纷纷进入物联网操作系统领域,并持续加大这方面的投入。
谷歌从2016年开始研发基于Zircon微内核的Fuchsia操作系统,可以取代为移动设备设计的 Android,计划用于个人移动设备、IoT设备等不同算力和需求的场景。
华为于2019发布了基于物联网的鸿蒙操作系统HarmonyOS,随后于2020年正式发布了开源版本,也就是OpenHarmony,面向全场景、全连接,适用于各类智能设备。
1 OpenHarmony发展历史
2012年,华为总裁任正非表示:“华为做终端操作系统是出于战略的考虑”,此时鸿蒙操作系统的概念首次出现在大众视野。
2016年5月,鸿蒙正式在华为公司的软件部内部立项并开始投入研发。
2019年8月9号,华为正式发布了HarmonyOS 1.0,该系统率先部署在智慧屏上。
2020年9月10日,华为在HDC大会上发布HarmonyOS2.0。该版主要在3个方面做出重大提升:分布式的软总线、分布式的数据管理以及分布式的安全。
2020年6月,由工信部牵头的开放原子开源基金会正式成立,也是国内首个开源软件基金会。华为将HarmonyOS2.0中的基础能力部分开源出来,并捐赠给开放原子开源基金会,正式成立了OpenHarmony开源项目。
2021年6月,OpenHarmony发布了2.0 Canary版本,支持轻量带屏设备。该版本新增22个子系统,支持全面的OS能力,支持内存大于128 MB的带屏设备开发等。
2021年9月,OpenHarmony发布了3.0 LTS版本,支持简单标准带屏设备。该版本新增几十项特性,支持方舟JS编译工具链和运行时,支持JS UI框架应用开发和运行。
2022年3月,OpenHarmony发布了3.1 Release版本,支持复杂标准带屏设备。该版本基础能力得到增强,主要体现在多媒体能力、图形显示能力、内存管理能力等,分布式能力也得到了增强。
2023年4月,OpenHarmony发布了3.2 Release版本,全面支持复杂标准带屏设备。该版本能力提升主要如下:
①系统流程度:架构级的全面优化,包括ArkUI最小化更新技术、并行化极速启动架构、高性能ArkTS引擎、基础库性能优化等。
②系统功能方面:HDF支持800多个HDI标准化设备接口,API 9拥有18 000+ ArkTS API,已经足够支持复杂大型应用的开发。
③应用性能方面:提供NAPI及混合开发能力、丰富的Native API、TaskPool并行开发框架、DevEco Insight实时性能分析工具等,支持开发极致高性能的框架和应用。
④分布式能力:进一步优化和完善分布式屏幕能力、分布式数据技术以及一次开发多端部署能力上。
整个OpenHarmony版本迭代如图1所示。
图1 OpenHarmony版本演进路线
此外,在2023年6月,OpenHarmony发布了4.0 Beta版本,ArkUI进一步完善组件能力和效果,并提供首批API Level 10接口。正式的4.0 Release版本在2023年9月发布。
2 鸿蒙、HarmonyOS、OpenHarmony三者关系
从某种意义上来说,鸿蒙包括HarmonyOS和OpenHarmony。
2016 年 5 月,华为消费者 BG 软件部开始立项研发“分布式操作系统 1.0 版本”,这就是鸿蒙系统的雏形。
考虑到华为设备的现有数量和鸿蒙系统初期软件生态的不完善,华为鸿蒙系统技术上兼容Android应用,同时集成了华为自身的能力,包括HMS等,形成了一个可以在华为手机、智慧屏、平板等设备上运行的操作系统,也就是HarmonyOS,该系统不开源。
随着华为开源战略的布局,为确保鸿蒙系统能有一个良好的生态,吸纳更多共建参与,华为将鸿蒙系统的基础能力部分开源出来,开源部分也就是OpenHarmony。该部分为华为自研项目,不兼容Android生态。
所以,一般OpenHarmony指开源鸿蒙,HarmonyOS指华为闭源鸿蒙,两者在应用框架上都采用ArkUI开发框架,应用开发上互相兼容。
随着OpenHarmony生态的完善,OpenHarmony会逐步替代HarmonyOS,最终形成一个统一开源鸿蒙的生态系统。
3 OpenHarmony与Android的对比
Android是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
在系统架构设计之初,OpenHarmony定位就不是Android的替代品,OpenHarmony的目标是构建一个面向万物互联时代的分布式操作系统,与Android并非同一个赛道。
两者在系统架构设计上比较相似,不过OpenHarmony在传统的系统架构上新增了分布式相关能力,如图2所示。
图2 系统架构对比
可以看到,OpenHarmony有着自己的一套架构设计和实现,在开发语言、运行时、应用框架等方面都不同于Android,两者是完全不同的操作系统。
(1)内核对比
Android:基于Linux内核,程序的安全性、网络协议、内存管理、进程管理、驱动程序都由Linux内核提供。另外,Android Runtime(ART)就是依靠Linux内核来执行底层功能的,其中包括线程和底层内存管理。
OpenHarmony:采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
(2)运行时对比
Android Runtime(ART)是Android上的应用和部分系统服务使用的托管式运行时。ART及其前身Dalvik最初是专为Android项目打造的。作为运行时的ART可执行Dalvik可执行文件并遵循Dex字节码规范。
方舟eTS运行时是OpenHarmony上默认的ArkTS语言运行时,提供完备的C++交互ArkTS NAPI和各种高性能的垃圾回收器,驱动着万物互联时代的OpenHarmony应用程序。
4 技术架构
OpenHarmony整体遵从分层设计,从下向上依次为内核层、系统服务层、框架层和应用层。系统功能按照“系统>子系统>组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪掉某些非必要的组件。OpenHarmony技术架构如图3所示。
图3 OpenHarmony技术架构
(1)内核层
内核层包括内核子系统和驱动子系统。OpenHarmony是一个支持多种内核的操作系统,包括可以支持华为自研的LiteOS内核、Linux内核等。开发者可以根据自身的硬件平台资源、应用场景选择不同的内核。此外、内核子系统也支持开发者使用其他内核,并通过内核抽象层向上提供统一的操作系统能力。
(2)系统服务层
系统服务层是OpenHarmony的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。
(3)框架层
框架层为应用开发提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的ArkUI框架,以及各种软硬件服务对外开放的多语言框架API。
(4)应用层
应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。
4.1 技术特性
OpenHarmony最主要的技术特性是以下3点:
(1)统一OS,弹性部署
OpenHarmony采用组件化和组件弹性化等设计方法,做到硬件资源的可大可小,在多种终端设备间按需弹性部署,全面覆盖了ARM、RISC-V、x86等各种CPU,硬件形态支持手机、平板、工业网关、路由器、音箱、耳机等。
(2)一次开发,多端部署
OpenHarmony提供用户程序框架、Ability框架以及UI框架,能够保证开发的应用在多终端运行时的一致性。一次开发、多端部署。多终端软件平台API具备一致性,确保了用户程序运行的兼容性。
(3)硬件互助,资源共享
多种设备之间能够实现硬件互助、资源共享,依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等。
分布式软总线为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。开发者只需聚焦于业务逻辑的实现,无需关注组网方式与底层协议。分布式软总线技术架构如图4所示。
图4 软总线架构
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。
分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
5 应用开发框架——ArkUI
应用框架是操作系统连接开发者生态、实现用户体验的关键基础设施。OpenHarmony为开发者提供了ArkTS开发语言以及ArkUI开发框架。
ArkUI整体架构如图5所示。最上层提供了自研声明式UI范式,也支持类Web范式;中间层为方舟编译器和运行时、声明式UI后端引擎以及渲染引擎;下层为平台适配层和平台桥接层。此外,ArkUI开发框架还配套了相应的IDE开发工具以及工具链,以提升开发体验。
此外,ArkUI不仅仅局限于OpenHarmony或者HarmonyOS,它是一个支持跨平台的UI框架,也可以运行在Android、iOS等系统上。
图5 ArkUI框架
ArkUI的声明式范式通过语法扩展方法提供了装饰器、自定义组件、UI描述、状态管理、内置组件、属性方法以及事件方法等模块,可以根据用户需求灵活组合,从而形成定制化界面,如图6所示。
图6 ArkUI声明式范式
7 生态发展
一个操作系统的成果,除了系统本身能力足够优秀之外,最重要的是其生态是否足够完善。生态的维度包括硬件生态、应用生态、共建单位、开发者生态等。
7.1 硬件生态
当前,OpenHarmony已经吸引超过50家企业参与共建、落地多个行业,160多款设备搭载OpenHarmony操作系统,如图7所示。接下来从以下几方面介绍OpenHarmony的生态进展。
图7 OpenHarmony生态总览
(1)芯片生态
2020年9月,OpenHarmony第一次发布并开源时,润和软件率先发布了3款支持OpenHarmony海思芯片的开发板,分别是Hi3861、Hi3516、Hi3518。
经过几年发展,目前OpenHarmony已经支持超过40款芯片,芯片适配历程如图8所示。
图8 芯片适配历程
OpenHarmony芯片合作伙伴包括瑞芯微、全志、晶晨、Intel、AMD、NXP、赛昉、飞腾、龙芯、汇顶、瑞昱、上海博通、联盛德、博流、翱捷、意法半导体、芯海等。
(2)设备生态
截止到2023年7月8日,通过OpenHarmony兼容性认证的商用设备数量已达162个,相关厂家80家,如图9所示。
设备形态包括电子学生证、扫码支付终端、冰箱、摄像头、网关等。其中,美的13款、华帝9款,产品形态都是智能家电。联迪9款、升腾6款都是金融行业相关设备,包括POS机、收款云喇叭等。
图9 商用设备厂家数据
7.2 行业落地
为推动相关行业落地,OpenHarmony鼓励企业用户基于开源版本的OpenHarmony系统,根据行业特点,在系统中新增行业组件、应用功能等,最终形成企业自己的行业发行版。
截至2023年7月8日,通过OpenHarmony兼容性测评的行业发行版总共34个,相关企业19家。
对行业发行版进行数据统计和分析,如图10所示。可以看到,OpenHarmony已经落地教育、金融、公共安全、超高清、交通、电力、医疗、工业、智慧城市等。其中,教育和金融行业的发行版最多,都达到了5个。
图10 行业发行版数据
此外,对已经通过兼容性认证的商用设备的行业属性进行数据统计,如图11所示。可以看到当前OpenHarmony在金融、家电行业的产品最多,两者总共占比为49%,接近一半,其次是工业、教育、交通等行业。
图11 行业发行版厂家数据
7.3 应用生态
应用生态是OpenHarmony接下来几年发展的重中之重。
在API能力方面,OpenHarmony已经发展到API9版本,API数量已经达到了18 000多个,包括声明式UI能力、应用开发框架、WEB能力、多媒体能力、分布式能力等,已经可以支持复杂应用开发。
2022年HDC大会上,华为与鸿蒙生态的 14 家合作伙伴签署合作备忘录,将在鸿蒙生态领域深度投入。参加签约的品牌合作伙伴包括新浪、中国国航、人民网、金山办公、奇安信、去哪儿网、乐元素、科大讯飞、酷狗、百度、小沃科技、网易、航旅纵横、搜狗。
搜狗已经推出了OpenHarmony版本的输入法;Cocos引擎适配OpenHarmony,将为应用开发者和用户带来更多的便利和创新;Unity引擎已经能够支持OpenHarmony系统,并且渲染效果和帧率与传统操作系统不相上下。
8 展 望
OpenHarmony作为一款全新的操作系统,其设计理念非常先进,相信未来OpenHarmony一定会发展成一个伟大的操作系统,在装机量、应用数量上有重大突破,在万物互联时代,成为下一代知名操作系统。OpenHarmony未来发展方向主要围绕下面几点。
8.1 架构优化
系统架构设计上持续优化,包括ArkUI重构、视窗架构优化,实现极简UI绘制管线、分布式窗口、多源窗口融合,进一步探索高性能、轻量化的2D&3D融合的UI框架,以实现2D&3D混合UI开发。
进一步优化芯片架构的代码、驱动代码、第三方库、系统组件等相关设计,减少代码耦合性、降低代码复杂度,使得代码结构更合理,降低代码冗余。
进一步提升系统流畅度、稳定性,给开发者提供更易用、更好用以及更高效的并发API。在并发调度上,也将针对现存系统中的线程泛滥问题,从时间和空间两个维度设计相关方案进行优化和改进,并将开发一套统一的并行框架,在运行时根据任务依赖状态和可执行资源自动并发调度和执行任务。
8.2 系统能力
当前,OpenHarmony核心API数量已经到18 000之多,而Android核心API数量为36 000之多。未来,OpenHarmony将围绕声明式UI能力、应用开发框架、WEB能力、多媒体能力、多媒体能力、分布式能力、通信能力、安全能力、全球化服务、DEX、电话等能力,提供更丰富的API,如图12所示。
图12 系统能力
8.3 分布式能力
分布式能力进一步增强,提供更强大的全场景能力。分布式能力效率进一步提升,减少时延、实现大带宽场景的分布式流转和协同,从交互体验走向场景化体验。
轻量系统软总线能力完善,实现IoT设备与智能设备之间的软总线互联互通。
优化软总线代码,减少资源占用,在内存更小的芯片上实现软总线功能。
8.4 多内核
OpenHarmony未来将支持更多的内核,其中比较重要的是硬实时内核和微内核。
(1)硬实时内核
在工业控制领域,实时(Real Time) 是很重要的要求。传统LiteOS-M内核在实时性上达不到硬实时的要求。为了补齐硬实时的能力,OpenHarmony已经开始支持UniProton内核。该内核主要聚焦硬实时场景,同时为上层业务软件提供一个统一的操作系统平台,屏蔽底层硬件差异,并提供强大的调试功能。
(2)微内核
当前,OpenHarmony支持的内核为LiteOS和Linux,两者都是宏内核。OpenHarmony微内核已经在研发中,未来OpenHarmony将支持微内核架构。
同时,OpenHarmony也将基于微内核技术的可信执行环境,通过“形式化方法”显著提升了TEE内核的安全等级,全面提升全场景终端设备的安全性。
8.5 应用生态
应用生态建设是OpenHarmony未来发展的重心,主要围绕以下几方面展开:①补齐应用能力,提供高效的应用API、适配更多的第三方库组件,完善ArkUI开发框架,给开发者提供一个更高效的应用开发环境。②赋能开发者,提供各种激励,建立应用上架、应用商城等,让开发者更有动力开发OpenHarmony应用。③拓展应用厂家,与头部应用厂家建立联合开发机制,加速头部应用支持OpenHarmony,共同建设应用生态;赋能中小应用厂家、开发者,帮助他们解决OpenHarmony应用开发过程中的问题,实现应用生态的突破。
为了能让大家更好的学习鸿蒙 (OpenHarmony) 开发技术,这边特意整理了《鸿蒙 (OpenHarmony)开发学习手册》(共计890页),希望对大家有所帮助:
《鸿蒙 (OpenHarmony)开发学习手册》
入门必看:https://qr21.cn/FV7h05
- 应用开发导读(ArkTS)
- ……
HarmonyOS 概念:https://qr21.cn/FV7h05
- 系统定义
- 技术架构
- 技术特性
- 系统安全
如何快速入门?:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- 构建第一个JS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……