鸿蒙读书笔记2:《鸿蒙操作系统设计原理与架构》

  1. OS基础平台部件化

(1)内核层

内核层包括内核部件和HDF驱动框架部件。当前已提供LiteOS-M、

LiteOS-A、Linux和UniProton这4种内核部件,未来还可增加更多类

型的内核部件。LiteOS、Linux内核部件可以按需部署在不同设备之

上,内核层向系统服务层提供POSIX/ CMSIS接口,用于屏蔽不同的

内核实现差异。同时向系统服务提供标准化的HDI,屏蔽不同厂商

驱动的实现差异。内核层的部件化设计如图3-4所示。

图3-4 内核层的部件化设计

(2)系统服务层和框架层

HarmonyOS架构分层根据功能定位区分了系统服务层和框架层,系

统服务层是所有系统服务的汇总,通过框架层向用户程序暴露API。

单个系统能力实现通常分布在系统服务层和框架层,考虑到系统服

务和框架紧密耦合,在HarmonyOS中未统一定义系统服务层和框架

层的层间接口,针对同一个功能实现的系统服务和框架组合在一起

形成一个个独立的"部件",部件提供一定的系统能力和对应的API能

力。注意,有的部件不对外提供对应的API能力。部件之间基于

InnerSDK完成解耦,支持独立代码下载、独立编译、独立验证、部

件拼装。系统服务层和框架层的部件化设计如图3-5所示。

图3-5 系统服务层和框架层的部件化设计

  1. HarmonyOS部件化拼装

HarmonyOS是一款面向全场景、全连接、全智能时代的开源操作系

统,采用部件化设计,支持在多规格内存资源的设备上运行,设备

开发者可基于目标硬件能力选择系统部件进行集成。为了保证在不

同硬件设备上易集成,同时又具有北向接口(HarmonyOS与用户程

序之间)、南向接口(HarmonyOS与硬件之间),以及东西向接口

(HarmonyOS 设 备 之 间 或 HarmonyOS 实 例 之 间) 的 兼 容 性,

HarmonyOS定义了4种规格的系统,参考定义如下。

(1)轻量系统(Mini System)

轻量系统面向使用MCU(Microcontroller Unit,微控制单元)类处理

器的设备,硬件资源极其有限,支持的设备最小内存为128 KB,可

以提供多种轻量级网络协议、轻量级的图形框架,以及丰富的外围

设备控制能力等。可支撑的产品如智能家居领域的连接类模组、传

感器设备、可穿戴设备等。

(2)小型系统(Small System)

小型系统面向使用应用处理器的设备,硬件资源相对有限,支持的

设备最小内存为1 MB,最大不超过128 MB,可以提供更高的安全能

力、支持多窗口的图形框架,具备视频编解码的多媒体能力。可支

撑的产品如智能家居领域的网络摄像机、电子猫眼、路由器及行车

记录仪等。

(3)标准系统(Standard System)

标准系统面向使用应用处理器的设备,支持的设备最小内存为

128 MB,可以提供增强的交互能力、GPU及硬件合成能力、更多控

件,以及动效更丰富的图形能力、完整的应用框架等。可支撑的产

品如带屏IoT设备、轻智能手机等。

(4)大型系统(Large System)

大型系统面向使用应用处理器的设备,支持的设备最小内存为

1 GB,提供多模交互能力、GPU和硬件合成能力、控件及动效更丰

富的图形能力,以及完整的应用框架等。可支撑的产品如智能手

机、平板计算机、智能手表等。

说明

以上几种系统所支持的最小内存的单位分别为KB(轻量系统)、

MB(小型系统和标准系统)、GB(大型系统)等。

HarmonyOS针对不同的系统规格,定义了BCG和OCG,设备开发者

可按需配置,以支撑其特色功能的扩展或定制开发。同时,

HarmonyOS也支撑设备厂商扩展私有的系统能力,打造设备差异化

竞争力。

BCG是指针对不同系统规格定义的最小系统能力集。BCG只有4种,

分别对应轻量、小型、标准和大型这4种系统规格。任何HarmonyOS

设备必须包含4种BCG之一。OCG是指针对不同系统规格定义的可选

系统能力集。OCG可以根据设备实际情况较自由地组合而成。

PCG(Privated Components Group,私有部件组)是指设备厂商的私

有扩展系统能力集。

同一系统规格的设备具有相同的BCG,设备厂商可按需选择OCG、

PCG。BCG、OCG与PCG的关系如图3-6所示。

图3-6 BCG、OCG与PCG的关系

部件的特性定义

HarmonyOS使用SystemCapability(SysCap)定义每个部件对外提供

的系统软硬件能力。设备开发人员可以基于SysCap组合进行产品定

制,SysCap与API的关系如图3-9所示

SysCap与API

SysCap指操作系统中相对独立的特性,如蓝牙、WiFi、NFC、摄像

头等。每个系统能力对应多个API,这些API绑定在一起,会随着目

标 设 备 是 否 支 持 该 系 统 能 力 而 存 在 或 消 失, 也 会 随 着

DevEco Studio(HarmonyOS用户程序的IDE)一起提供给开发者。

当开发者开发应用时,DevEco Studio会自动根据系统能力提示该

API是否支持该应用。

  1. 支持能力集、要求能力集与联想能力集

要求能力集与支持能力集的关系如图3-10所示。

支持能力集:HarmonyOS设备的属性之一,描述的是设备可支持的

能力。

要求能力集:HarmonyOS用户程序的属性之一,描述的是应用运行

时需要的设备能力。例如包含用户程序需要使用的SysCap的API,不

包括canIUse判断需要使用的API。

联想能力集:DevEco Studio中工程的属性之一,用于描述应用在开

发态时,DevEco Studio可以为开发者联想的全部API所在的SysCap

的集合。

SysCap整体设计步骤如图3-12所示。

SysCap整体设计步骤说明如下。

① HarmonyOS源码由可选部件集和必选部件集组成,将部件提供的

系统能力定义为SysCap。

② 基于一套源码发布归一化的SDK,其中每个API都拥有SysCap属

性,以及定义常见设备类型的SysCap集。

③ 设备厂商可按需拼装形成OS部件集,也可根据常见设备类型的需

求进行OS拼装。

④ 设备厂商可定义私有部件集,将它与OS部件集组成完整的设备

SysCap集。

⑤ 将设备SysCap集转换为PCID(Product Compatibility ID,产品兼

容性标识),认证后存储在云侧,并提供查询/下载功能。

⑥ 应用开发者基于SDK进行跨设备的应用开发,IDE可按设备类型

提示可用的API。

⑦ 应 用 开 发 时 定 义 应 用 的

RPCID(Required Product Compatibility ID,要求的产品兼容性标

识),即应用运行所需的系统能力集,在应用上架时提供。

⑧ 应用市场/商店在分发应用时,将应用的RPCID与设备的PCID进

行匹配,若RPCID的值小于等于PCID即符合分发条件。对于同一个

部件在不同设备上的差异,通过应用配置中的distributefilter字段进行

分发。

⑨ 应用安装时,BMS(Bundle Manager Service,包管理服务)解析

应用的RPCID,与PCID进行匹配,确保应用可在设备上正常运行。

相关推荐
lichong95128 分钟前
【Harmony】轮播图特效,持续更新中。。。。
android·linux·服务器·harmonyos·鸿蒙·swiper
爱桥代码的程序媛1 小时前
鸿蒙OpenHarmony【轻量系统内核通信机制(消息队列)】子系统开发
单片机·消息队列·内核·harmonyos·鸿蒙·鸿蒙系统·openharmony
华为云开发者联盟1 小时前
技术解读:华为云如何携手昇腾、鸿蒙等根生态,助力开发者技术创新
大模型·华为云·鸿蒙·鲲鹏·昇腾
ZiminLi2 小时前
华为高级交换技术笔记 2024-2025
笔记·华为
义一4 小时前
华为---代理ARP简介及示例配置
网络·华为
无名前端小白7 小时前
React-Native 中使用 react-native-image-crop-picker 在华为手机上不能正常使用拍照功能
react native·react.js·华为·鸿蒙
Python私教8 小时前
鸿蒙 OS 开发零基础快速入门教程
android·华为·harmonyos
爱桥代码的程序媛9 小时前
鸿蒙OpenHarmony【轻量系统内核(异常调测)】子系统开发
嵌入式硬件·内核·harmonyos·鸿蒙·openharmony·鸿蒙开发·子系统开发
让开,我要吃人了9 小时前
HarmonyOS鸿蒙开发实战( Beta5.0)Web组件预览PDF文件实现案例
开发语言·华为·程序员·移动开发·harmonyos·鸿蒙·鸿蒙系统