本书重点介绍了鸿蒙操作系统的设计背景、设计理念和设计原则,同时对鸿蒙操作系统的整体架构、关键子系统的技术架构和主要设计思路进行了详细的解析。第1章~第3章对鸿蒙操作系统进行整体概述,重点介绍操作系统的发展和鸿蒙操作系统诞生的技术背景、试图解决的主要技术问题,同时介绍了鸿蒙操作系统的设计理念、主要技术特征,以及部件化架构原理解析。第4章~第16章介绍关键子系统,分门别类地阐述鸿蒙操作系统关键子系统的技术架构和主要设计思路,包括统一内核、驱动子系统、分布式技术、方舟编译运行时子系统、UI框架、图形子系统、多媒体子系统、安全子系统、DFX框架和文件管理的架构设计思路。
本书适合对操作系统感兴趣的开发者、鸿蒙操作系统生态的参与者、相关领域的研究人员,以及相关专业的高校师生阅读和学习。
1.内容可靠,整理自华为官方文档。
2.作者来自鸿蒙开发者团队,openHarmony首席架构师李毅,openHarmony社区PMC主席任革林领衔创作团队。
3.内容设置合理,涵盖鸿蒙系统的全部重要特性,详略得当。
4.详细分析鸿蒙操作系统设计原理与架构。
李 毅
华为OpenHarmony首席架构师近30年的基础软件及硬件设计经验,曾任华为终端OS平台首席架构师、EMUI首席架构师,OpenHarmony开源社区PMC主席等,主持过华为公司多个重大技术项目的架构设计工作。
任革林
华为OpenHarmony架构师OpenHarmony开源社区PMC主席、架构SIG组长。20多年的软件开发经验,从事过终端操作系统、游戏软件、导航软件、通信协议软件的开发和设计工作。主持过华为公司多个重大技术项目的架构设计工作。
目录
第 1章 操作系统的发展史和演进 001
1.1 操作系统概述 002
1.2 操作系统的发展史 003
1.3 下一代计算机体系结构 011
1.4 万物互联时代面临的挑战 013
1.4.1 万物互联时代已来临 014
1.4.2 改善终端用户体验的诉求 015
1.4.3 开发者面临的挑战 017
1.5 下一代操作系统的关键特征 018
第 2章 HarmonyOS设计理念 021
2.1 HarmonyOS底层设计理念 022
2.2 HarmonyOS试图解决的问题 022
2.3 HarmonyOS基本设计理念 024
2.3.1 超级终端的用户体验 024
2.3.2 “一次开发,多端部署”的用户程序开发体验 037
2.3.3 积木化拼装的设备开发体验 043
2.4 HarmonyOS的目标 043
2.4.1 业务目标 044
2.4.2 架构目标 044
2.4.3 架构设计原则 045
2.5 HarmonyOS架构设计 046
2.6 HarmonyOS关键技术 047
第3章 部件化架构原理解析 053
3.1 部件化架构 054
3.1.1 架构设计 054
3.1.2 HarmonyOS部件化架构设计 055
3.2 原理解析 059
3.2.1 部件管理 059
3.2.2 SysCap机制 061
3.2.3 SysCap使用指南 064
第4章 统一内核原理解析 069
4.1 内核子系统 070
4.2 HarmonyOS LiteOS-M内核 071
4.2.1 LiteOS-M内核概述 071
4.2.2 任务管理 073
4.2.3 内存管理 074
4.2.4 内核通信机制 077
4.3 HarmonyOS LiteOS-A内核 082
4.3.1 LiteOS-A内核概述 083
4.3.2 内核启动 085
4.3.3 内存管理 089
4.3.4 进程管理 093
4.3.5 扩展能力 097
4.4 HarmonyOS Linux内核 105
4.4.1 内核合入规则 105
4.4.2 HCK机制 106
4.4.3 config分层配置机制 108
4.4.4 分布式文件系统 110
4.4.5 新型内存扩展机制:ESwap 116
第5章 驱动子系统原理解析 121
5.1 HDF驱动框架 122
5.1.1 HDF架构 122
5.1.2 HDF运行模型 123
5.1.3 设备驱动的组成 124
5.1.4 设备与驱动之间的模型 126
5.1.5 HDI 126
5.2 HDF驱动框架工作原理 127
5.2.1 驱动配置管理 129
5.2.2 设备驱动加载 130
5.2.3 设备电源管理 132
5.3 HDF驱动框架部署 134
5.3.1 内核态部署 134
5.3.2 用户态部署 135
第6章 分布式软总线原理解析 137
6.1 全场景下面临的挑战 138
6.2 什么是软总线 142
6.2.1 软总线的由来 142
6.2.2 软总线的目标 144
6.3 软总线技术架构 146
6.4 软总线发现技术 149
6.4.1 发现模块逻辑架构 149
6.4.2 发现模块关键技术 150
6.4.3 发现协议 152
6.5 软总线连接技术 156
6.5.1 连接模块逻辑架构 157
6.5.2 连接模块关键技术 160
6.6 软总线组网技术 161
6.6.1 组网模块逻辑架构 162
6.6.2 组网模块关键技术 165
6.7 软总线传输技术 166
6.7.1 传输模块逻辑架构 166
6.7.2 传输模块关键技术 168
6.8 使用软总线 170
第7章 分布式数据管理框架原理解析 177
7.1 分布式数据管理架构 178
7.2 数据访问 180
7.2.1 分布式数据库 180
7.2.2 分布式数据对象 180
7.2.3 用户首选项 181
7.3 数据同步 181
7.3.1 网络模型 181
7.3.2 数据三元组 182
7.3.3 数据同步过程 183
7.3.4 水位管理 185
7.3.5 时间同步 186
7.3.6 冲突解决 189
7.4 数据存储 190
7.5 数据安全 196
第8章 分布式硬件平台原理解析 199
8.1 分布式硬件平台应运而生 200
8.2 适用场景 201
8.3 分布式硬件框架 203
8.4 分布式硬件运行机制 205
8.5 硬件资源池化技术 206
8.5.1 什么是虚拟化 207
8.5.2 硬件虚拟化技术 208
8.5.3 如何管理硬件资源池化 211
8.5.4 硬件资源池化支持的能力 213
8.6 硬件协同调度技术 213
8.6.1 设备发现和认证技术 214
8.6.2 硬件自适应技术 215
8.6.3 硬件协同同步技术 216
8.6.4 硬件解耦映射技术 217
8.6.5 硬件自动跟随应用跨端迁移 218
8.7 应用使用流程 219
8.7.1 应用使用案例 219
8.7.2 能力开放 220
8.7.3 对开发者的要求 221
第9章 方舟编译运行时原理解析 223
9.1 方舟编译运行时设计目标 224
9.2 前端编译器 226
9.2.1 前端编译器功能 226
9.2.2 字节码文件格式 227
9.2.3 方舟字节码 229
9.3 方舟编译运行时执行引擎 230
9.3.1 总体介绍 230
9.3.2 解释器 231
9.3.3 优化编译器 232
9.4 方舟编译运行时内存管理 236
9.4.1 内存管理 236
9.4.2 内存分配 237
9.4.3 垃圾回收 240
第 10章 分布式应用框架原理解析 243
10.1 应用框架管理 244
10.1.1 设计意图 245
10.1.2 总体设计原则 246
10.1.3 架构与组成概述 246
10.2 Ability管理 247
10.2.1 设计理念 248
10.2.2 主要职责 248
10.2.3 详细描述 250
10.3 窗口管理 253
10.3.1 设计理念 253
10.3.2 主要职责 254
10.3.3 详细描述 256
10.4 全局包管理 259
10.4.1 设计理念 259
10.4.2 主要职责 260
10.4.3 详细描述 260
10.4.4 HAP管理 262
10.4.5 原子化服务的免安装及老化 264
10.5 跨端迁移框架 265
10.5.1 设计理念 266
10.5.2 主要职责 266
10.5.3 详细描述 267
10.6 多端协同框架 268
10.6.1 设计理念 268
10.6.2 主要职责 269
10.6.3 详细描述 269
第 11章 UI框架原理解析 273
11.1 UI框架概述 274
11.2 UI框架的演进 275
11.3 多设备场景下UI框架面临的挑战 277
11.4 HarmonyOS UI框架核心原理 278
11.4.1 整体架构 278
11.4.2 关键设计 281
11.5 ArkUI的探索和优化 339
第 12章 图形子系统原理解析 341
12.1 图形子系统的设计目标 342
12.2 图形子系统的逻辑架构 344
12.3 图形子系统的关键模块 345
12.3.1 窗口与动画 345
12.3.2 统一渲染 350
12.3.3 2D渲染引擎 372
12.3.4 3D渲染引擎 376
12.3.5 显示管理 383
12.3.6 高阶算子库 386
12.3.7 图形驱动 387
12.3.8 游戏体验 390
第 13章 多媒体子系统原理解析 395
13.1 多媒体子系统概述 396
13.2 音频服务 397
13.2.1 音频服务框架 398
13.2.2 音频播放 399
13.2.3 音频采集 400
13.2.4 音频策略管理 401
13.2.5 音量管理 403
13.2.6 音频低时延 404
13.3 视频服务 404
13.3.1 视频服务框架 405
13.3.2 音视频播放 406
13.3.3 音视频录制 411
13.3.4 音视频编解码 412
13.3.5 封装/解封装 415
13.3.6 元数据/缩略图 415
13.4 相机服务 416
13.4.1 相机服务建模思路 416
13.4.2 相机服务框架 418
13.4.3 相机控制 420
13.4.4 相机预览 424
13.4.5 相机拍照 425
13.4.6 相机录像 426
13.5 图像服务 427
13.5.1 图像解码 430
13.5.2 图像编解码插件管理 431
13.5.3 图像使用优化 433
13.6 媒体数据管理框架服务 433
13.6.1 媒体数据管理框架 434
13.6.2 媒体数据同步与访问 437
13.6.3 媒体数据变更通知 441
第 14章 安全子系统原理解析 443
14.1 HarmonyOS安全理念 444
14.1.1 HarmonyOS安全风险评估 444
14.1.2 HarmonyOS安全架构 445
14.2 HarmonyOS“正确的人”身份管理与认证 451
14.2.1 IAM身份认证架构 451
14.2.2 PIN码认证 452
14.3 HarmonyOS“正确的设备”系统安全架构 452
14.3.1 HarmonyOS系统安全逻辑架构 453
14.3.2 完整性保护 454
14.3.3 加密及数据保护 457
14.3.4 权限及访问控制 462
14.3.5 漏洞防利用 468
14.3.6 TEE 476
14.3.7 SE安全芯片 479
14.3.8 HarmonyOS设备安全分级 481
14.3.9 设备分布式可信互联 483
14.4 HarmonyOS“正确地访问数据”分级访问控制架构 484
14.4.1 数据分级规范 485
14.4.2 数据安全与用户隐私生命周期管理 486
14.4.3 数据生成的安全机制 486
14.4.4 数据存储的安全机制 487
14.4.5 数据使用的安全机制 487
14.4.6 数据传输的安全机制 488
14.4.7 数据销毁的安全机制 489
14.5 HarmonyOS生态治理架构 489
14.5.1 HarmonyOS应用程序生命周期安全管理架构 489
14.5.2 HarmonyOS应用程序“纯净”开发 490
14.5.3 HarmonyOS应用程序“纯净”上架 490
14.5.4 HarmonyOS应用程序“纯净”运行 490
14.5.5 HarmonyOS设备生态治理架构 492
14.5.6 HarmonyOS设备生态合作伙伴认证 492
14.5.7 HarmonyOS生态设备安全认证 493
14.5.8 HarmonyOS生态设备分级管控机制 493
第 15章 DFX框架原理解析 495
15.1 常见DFX定义 496
15.2 操作系统DFX 497
15.3 HarmonyOS DFX框架 499
15.4 HarmonyOS DFX关键特性 500
15.4.1 流水日志 HiLog 500
15.4.2 事件框架 HiView 505
15.4.3 调用跟踪 HiTrace 509
15.4.4 信息导出 HiDumper 516
15.4.5 故障检测 FaultDetector 519
15.4.6 缺陷检测 HiChecker 525
15.4.7 调优 HiProfiler 528
15.5 DFX特性典型应用场景 531
15.5.1 产品可维可测设计 531
15.5.2 调试调优 533
15.5.3 质量分析 538
15.6 演进与展望 539
第 16章 文件管理原理解析 541
16.1 HarmonyOS文件管理设计背景 542
16.2 设计目标 542
16.3 总体架构 544
16.4 关键技术 547
16.4.1 用户文件管理 547
16.4.2 应用文件管理 551
16.4.3 存储管理 556
参考文献 558