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


2. 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 系统服务层和框架层的部件化设计
3. 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是否支持该应用。
2. 支持能力集、要求能力集与联想能力集
要求能力集与支持能力集的关系如图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进行匹配,确保应用可在设备上正常运行。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537660.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

echarts X轴文本太长 formatter自定义文本的显示方式

如果ECharts中X轴的文本太长,可以通过设置axisLabel的rotate属性来旋转标签,或者使用formatter函数来自定义文本的显示方式。另外,可以开启axisLabel的interval属性来控制显示的标签的间隔。 option {tooltip: {},xAxis: {type: category,d…

p14 使用阿里云服务器的docker部署NGINX

拉取NGINX的镜像 这里因为之前已经配置过从阿里云的镜像仓库里面拿镜像所以这里直接就执行docker pull nginx拉取NGINX镜像就OK了 运行NGINX镜像 这里执行docker run -d --name nginx01 -p 3344:80 nginx这里3344是服务器访问的端口80是容器内部的端口,可以看到…

【C++ Primer Plus习题】16.5

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <list> using namespace…

硬件工程师笔试面试——集成电路

目录 17、集成电路 17.1 基础 集成电路实物图 17.1.1 概念 17.1.2 集成电路的发展历程 17.1.3 集成电路的分类 17.1.4 集成电路的制造工艺 17.1.5 集成电路的应用 17.2 相关问题 17.2.1 集成电路的制造工艺中,光刻技术是如何实现的? 17.2.2 在集成电路设计中,如何…

微信电脑版聊天图片DAT格式文件转为普通JPG图片

1-7 本文章主要教你如何恢复微信聊天中的聊天图片&#xff0c;主要应用场景是&#xff0c;当你的微信被封号了&#xff0c;或者无法登录了&#xff0c;会导致微信聊天中的聊天图片没办法再打开&#xff0c;如果是重要的图片&#xff0c;那就有损失了&#xff0c;所以有了本文的…

【无人机设计与控制】四旋翼无人机轨迹跟踪及避障Matlab代码

摘要 本文主要研究了四旋翼无人机在复杂环境中的轨迹跟踪与避障控制策略。通过Matlab/Simulink对四旋翼无人机进行了建模与仿真。系统集成了避障算法&#xff0c;使得无人机在执行任务时能够有效避开障碍物&#xff0c;保证飞行的安全性与稳定性。 理论 无人机飞行控制通常涉…

leetcode-枚举算法

1.两数之和 题目一&#xff1a;两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素…

Java项目实战II基于Spring Boot的宠物商城网站设计与实现

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网…

6--SpringBootWeb案例(详解)

目录 环境搭建 部门管理 查询部门 接口文档 代码 删除部门 接口文档 代码 新增部门 接口文档 代码 已有前端&#xff0c;根据接口文档完成后端功能的开发 成品如下&#xff1a; 环境搭建 1. 准备数据库表 (dept 、 emp) -- 部门管理 create table dept( id int un…

快速入门Vue

Vue是什么 Vue.js&#xff08;通常简称为Vue&#xff09;是一个开源的JavaScript框架&#xff0c;用于构建用户界面和单页应用程序&#xff08;SPA&#xff09;。它由尤雨溪&#xff08;Evan You&#xff09;在2014年开发并发布。Vue的核心库只关注视图层&#xff0c;易于上手…

python实现多个pdf文件合并

打印发票时&#xff0c;需要将pdf合并成一个&#xff0c;单页两张打印。网上一些pdf合并逐渐收费&#xff0c;这玩意儿都能收费&#xff1f;自己写一个脚本使用。 实现代码&#xff1a; 输入pdf文件夹路径data_dir&#xff0c;统计目录下的“合并后的PDF”文件夹下&#xff0c;…

从边缘设备到云端平台,合宙DTURTU打造无缝物联网解决方案

如今&#xff0c;物联网&#xff08;IoT&#xff09;技术飞速发展&#xff0c;万物互联的时代已然到来&#xff0c;那么&#xff0c;高效、稳定地连接边缘设备与云端平台&#xff0c;实现数据的实时采集、传输与处理&#xff0c;就成为了推动物联网应用落地的关键。 DTU&#…

# wps必须要登录激活才能使用吗?

WPS 必须登录激活才能使用吗&#xff1f; 如下图&#xff0c;当我们使用WPS时&#xff0c;不登录会显示工具栏灰色不可用状态。 答&#xff1a;WPS 不一定要登录激活才能使用。 一、免费使用的情况 1、基础功能 在不登录的情况下&#xff0c;用户可以使用 WPS 的一些基础功…

【delphi】正则判断windows完整合法文件名,包括路径

在 Delphi 中&#xff0c;可以使用正则表达式来检查 Windows 文件名称或路径是否合法。合法的文件名和路径要求符合以下几点&#xff1a; 禁止的字符&#xff1a;文件名和路径不能包含以下字符&#xff1a;<, >, :, ", /, \, |, ?, *。文件名不能以空格或点结束。…

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 垃圾收集器

文章目录 垃圾回收机制Stop-the-World垃圾收集器垃圾收集器分类Serial 收集器Serial Old 收集器ParNew 收集器Parallel Scavenge 收集器Parallel Old 收集器CMS 收集器CMS 收集器缺点 G1 收集器G1 收集器特点G1 收集器的分代理念G1 收集器运作过程 垃圾回收机制 垃圾回收&…

【架构设计】多级缓存:应用案例与问题解决策略

【架构设计】多级缓存&#xff1a;应用案例与问题解决策略 多级缓存系统的工作原理及其在提升应用性能方面的关键作用。通过对比本地缓存与分布式缓存的特点 | 原创作者/编辑&#xff1a;凯哥Java | 分类&#xff1a;架构设计系列教程 多级缓存…

无人机助力智慧农田除草新模式,基于YOLOv10全系列【n/s/m/b/l/x】参数模型开发构建无人机航拍场景下的农田杂草检测识别系统

科技发展到今天&#xff0c;无人机喷洒药物已经不是一件新鲜事情了&#xff0c;在很多高危的工作领域中&#xff0c;比如高空电力设备除冰&#xff0c;电力设备部件传送更换等等&#xff0c;无人机都可以扮演非常出色的作用&#xff0c;前面回到老家一段时间&#xff0c;最近正…

【数电】74161 搭建模 7 计数器(M = 7)

文章目录 前言一、实验原理二、实验过程三、实验结果参考文献 前言 西安电子科技大学数电实验&#xff08;使用了部分老师的 ppt&#xff09; 一、实验原理 74161 的引脚图与功能表 异步清零 同步置数&#xff08;考试的时候也用的这个&#xff09; 二、实验过程 三、实…

C#基于SkiaSharp实现印章管理(7)

印章中的文本主要分为两种&#xff1a;1&#xff09;从左向右水平绘制的文本&#xff1b;2&#xff09;沿指定路径绘制的文本。前者使用SKCanvas的DrawText绘制文本&#xff0c;后者则使用SKCanvas的DrawTextOnPath绘制文本。   针对上述情况&#xff0c;调整SealElement类型…