目前鸿蒙操作系统是基于Linux系统来开发自研操作系统的。这样有两大好处:一是可以很好地兼容安卓系统的App,毕竟安卓系统是基于Linux系统来开发的,这样在生态上的问题就解决了很大一部分了。
另外,鸿蒙是一个集计算机、手机、汽车等设备于一体的大一统的系统,目前Linux系统在计算机领域的应用生态也是不错的,基于Linux系统来开发,在计算机领域的应用生态,也解决了很大一部分。
鸿蒙操作系统整体遵从分层设计,如图1-11所示,从下向上依次为内核层、系统服务层、框架层和应用层。在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统、功能或者模块。
图1-11 鸿蒙操作系统技术架构
鸿蒙内核层由鸿蒙微内核、Linux内核、Lite OS组成,未来将发展为完全的鸿蒙微内核架构,如图1-12所示。
图1-12 鸿蒙操作系统未来将采用微内核
HarmonyOS目前采用多内核设计,支持针对不同资源受限设备选用不同的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
(1)内核子系统:内核抽象层(Kernel Abstract Layer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
(2)驱动子系统:HarmonyOS驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。
该层包含以下几部分。
(1)系统基本能力子系统集:为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成。
(2)基础软件服务子系统集:为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP(组播源发现协议)&DV等子系统组成。
(3)增强软件服务子系统集:为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
(4)硬件服务子系统集:为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
框架层为HarmonyOS的应用程序提供了Java、C、C++、JavaScript等多语言的用户程序框架和Ability框架,如图1-13所示,以及各种软硬件服务对外开放的多语言框架API;同时为采用HarmonyOS的设备提供了C、C++、JavaScript等多语言的框架API,不同设备支持的API与系统的组件化裁剪程度相关。
图1-13 鸿蒙操作系统应用开发框架
应用层包括系统应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA (Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,其提供与用户交互的能力,而PA则无UI界面,提供后台运行任务的能力及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验,如图1-14所示。
图1-14 基于FA/PA应用开发