本書重點介紹了鴻蒙操作系統的設計背景、設計理念和設計原則,同時對鴻蒙操作系統的整體架構、關鍵子系統的技術架構和主要設計思路進行了詳細的解析。第1章~第3章對鴻蒙操作系統進行整體概述,重點介紹操作系統的發(fā)展和鴻蒙操作系統誕生的技術背景、試圖解決的主要技術問題,同時介紹了鴻蒙操作系統的設計理念、主要技術特征,以及部件化架構原理解析。第4章~第16章介紹關鍵子系統,分門別類地闡述鴻蒙操作系統關鍵子系統的技術架構和主要設計思路,包括統一內核、驅動子系統、分布式技術、方舟編譯運行時子系統、UI框架、圖形子系統、多媒體子系統、安全子系統、DFX框架和文件管理的架構設計思路。
本書適合對操作系統感興趣的開發(fā)者、鴻蒙操作系統生態(tài)的參與者、相關領域的研究人員,以及相關專業(yè)的高校師生閱讀和學習。
1.內容可靠,整理自華為官方文檔。
2.作者來自鴻蒙開發(fā)者團隊,openHarmony首席架構師李毅,openHarmony社區(qū)PMC主席任革林領銜創(chuàng)作團隊。
3.內容設置合理,涵蓋鴻蒙系統的全部重要特性,詳略得當。
4.詳細分析鴻蒙操作系統設計原理與架構。
李 毅
華為OpenHarmony首席架構師近30年的基礎軟件及硬件設計經驗,曾任華為終端OS平臺首席架構師、EMUI首席架構師,OpenHarmony開源社區(qū)PMC主席等,主持過華為公司多個重大技術項目的架構設計工作。
任革林
華為OpenHarmony架構師OpenHarmony開源社區(qū)PMC主席、架構SIG組長。20多年的軟件開發(fā)經驗,從事過終端操作系統、游戲軟件、導航軟件、通信協議軟件的開發(fā)和設計工作。主持過華為公司多個重大技術項目的架構設計工作。
目錄
第 1章 操作系統的發(fā)展史和演進 001
1.1 操作系統概述 002
1.2 操作系統的發(fā)展史 003
1.3 下一代計算機體系結構 011
1.4 萬物互聯時代面臨的挑戰(zhàn) 013
1.4.1 萬物互聯時代已來臨 014
1.4.2 改善終端用戶體驗的訴求 015
1.4.3 開發(fā)者面臨的挑戰(zhàn) 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 “一次開發(fā),多端部署”的用戶程序開發(fā)體驗 037
2.3.3 積木化拼裝的設備開發(fā)體驗 043
2.4 HarmonyOS的目標 043
2.4.1 業(yè)務目標 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 內核合入規(guī)則 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 內核態(tài)部署 134
5.3.2 用戶態(tài)部署 135
第6章 分布式軟總線原理解析 137
6.1 全場景下面臨的挑戰(zhàn) 138
6.2 什么是軟總線 142
6.2.1 軟總線的由來 142
6.2.2 軟總線的目標 144
6.3 軟總線技術架構 146
6.4 軟總線發(fā)現技術 149
6.4.1 發(fā)現模塊邏輯架構 149
6.4.2 發(fā)現模塊關鍵技術 150
6.4.3 發(fā)現協議 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 設備發(fā)現和認證技術 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 對開發(fā)者的要求 221
第9章 方舟編譯運行時原理解析 223
9.1 方舟編譯運行時設計目標 224
9.2 前端編譯器 226
9.2.1 前端編譯器功能 226
9.2.2 字節(jié)碼文件格式 227
9.2.3 方舟字節(jié)碼 229
9.3 方舟編譯運行時執(zhí)行引擎 230
9.3.1 總體介紹 230
9.3.2 解釋器 231
9.3.3 優(yōu)化編譯器 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框架面臨的挑戰(zhàn) 277
11.4 HarmonyOS UI框架核心原理 278
11.4.1 整體架構 278
11.4.2 關鍵設計 281
11.5 ArkUI的探索和優(yōu)化 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 圖像使用優(yōu)化 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 數據分級規(guī)范 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生態(tài)治理架構 489
14.5.1 HarmonyOS應用程序生命周期安全管理架構 489
14.5.2 HarmonyOS應用程序“純凈”開發(fā) 490
14.5.3 HarmonyOS應用程序“純凈”上架 490
14.5.4 HarmonyOS應用程序“純凈”運行 490
14.5.5 HarmonyOS設備生態(tài)治理架構 492
14.5.6 HarmonyOS設備生態(tài)合作伙伴認證 492
14.5.7 HarmonyOS生態(tài)設備安全認證 493
14.5.8 HarmonyOS生態(tài)設備分級管控機制 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 調優(yōu) HiProfiler 528
15.5 DFX特性典型應用場景 531
15.5.1 產品可維可測設計 531
15.5.2 調試調優(yōu) 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