深入淺出 OpenHarmony — 架構、內核、驅動及應用開發全棧
李傳釗 著
- 出版商: 中國水利水電
- 出版日期: 2021-08-01
- 定價: $528
- 售價: 8.5 折 $449
- 語言: 簡體中文
- 頁數: 294
- 裝訂: 平裝
- ISBN: 7517097474
- ISBN-13: 9787517097471
-
相關分類:
Operating-system
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$320$304 -
$948$901 -
$239物聯網操作系統 LiteOS 內核開發與實踐
-
$811統計學習要素:機器學習中的數據挖掘、推斷與預測, 2/e (The Elements of Statistical Learning: Data Mining, Inference, and Prediction, 2/e)
-
$599$569 -
$512第一行代碼 Linux命令行
-
$581HarmonyOS應用開發實戰(JavaScript版)
-
$458鴻蒙應用開發從零基礎到實戰——始於安卓,成於鴻蒙(視頻·案例·應用版)
-
$600$468 -
$620$527 -
$600$468 -
$720$569 -
$600$474 -
$520$390 -
$534$507 -
$650$507 -
$485Python 從菜鳥到高手, 2/e
-
$708沉浸式剖析 OpenHarmony 源代碼:基於 LTS 3.0 版本
-
$480$374 -
$500$390 -
$780$663 -
$590$466 -
$580$435 -
$650$514 -
$774$735
相關主題
商品描述
本書是由華為資深高級軟件工程師、首位HarmonyOS HDE(Huawei Developer Expert)
李傳釗老師親自編寫的OpenHarmony操作系統技術圖書。
本書從OpenHarmony操作系統的設計目標與設計思路開始,由表及里、
深入淺出地講解了OpenHarmony操作系統的架構、內核、驅動及應用開發基礎與實戰的全棧技術內容。
在實戰部分,從開發環境的安裝配置開始,分別講解了南向開發、北向開發的基本過程及實戰案例。
本書的英文版已在翻譯之中,華為已將其作為面向全球推薦的OpenHarmony操作系統的官方技術教程之一。
本書可作為OpenHarmony操作系統開發人員、
技術愛好者的自學或參考資料,也可作為高校相關專業的教材。
作者簡介
李傳釗
首位HarmonyOS HDE(Huawei Developer Expert),
首批被華為認證的HarmonyOS課程開發者。
鴻蒙社區組織深鴻會發起人。
骨灰級程序員,架構師,高級軟件工程師。
10年華為工作經驗,歷任華為業務軟件產品高級工程師、
系統工程師、項目經理、墨西哥軟件業務部部長等。
目錄大綱
致敬華為
第1篇 OpenHarmony操作系統基礎
第1章 OpenHarmony的設計目標 2
1.1 為5G而準備 2
1.2 覆蓋廣泛的硬件產品 2
1.3 必須要解決的問題 3
1.4 競爭對手 4
第2章 整體設計思路及技術特點 5
2.1 可裁剪 5
2.2 虛擬超級終端 6
2.3 易開發 7
第3章 OpenHarmony的功能框架 9
3.1 芯片適配 10
3.2 內核層 10
3.3 驅動程序框架 10
3.4 OpenHarmony系統服務 10
3.5 框架層 10
3.6 編譯構建與IDE系統 11
第4章 上手OpenHarmony 12
4.1 OpenHarmony系統的基本構成 12
4.2 OpenHarmony Shell 15
4.3 啟動圖形界面 28
4.4 開源代碼項目 29
4.5 編譯構建體系 31
4.5.1 所用到的工具 31
4.5.2 系列Python腳本的作用 32
4.5.3 編譯器 34
第5章 內核介紹 36
5.1 多內核架構 36
5.2 LiteOS-m 37
5.3 LiteOS-a 38
5.4 LiteOS-m和LiteOS-a的對比 38
第6章 OpenHarmony內核詳細解讀 40
6.1 硬件與處理器架構 40
6.1.1 處理器架構 40
6.1.2 異常 41
6.1.3 中斷 42
6.1.4 多核處理 43
6.2 基礎數據結構 44
6.2.1 雙向鍊錶 44
6.2.2 排序雙向鍊錶 46
6.3 啟動流程 46
6.4 時間管理 47
6.4.1 系統Tick 47
6.4.2 軟件定時器 48
6.5 任務調度 49
6.5.1 LiteOS-m與LiteOS-a的調度對比 49
6.5.2 TCB/PCB結構定義 50
6.5.3 進程及Task創建 54
6.5.4 Task狀態機 64
6.5.5 調度策略 65
6.5.6 調度的時機 68
6.5.7 Task切換的實現 69
6.6 進程間通信 74
6.6.1 事件(event) 74
6.6.2 互斥量(mutex) 76
6.6.3 隊列(queue) 79
6.6.4 信號燈(semaphore) 79
6.6.5 快速鎖(futex) 81
6.6.6 自旋鎖(spinlock) 81
6.6.7 信號(signal) 83
6.6.8 LiteIPC 85
6.7 內存管理 89
6.7.1 LiteOS-m的內存管理 90
6.7.2 LiteOS-a的內存管理 91
6.7.3 虛擬內存 92
6.7.4 地址規劃 97
6.8 內核態與用戶態 98
6.8.1 內核態與用戶態的區別 98
6.8.2 用戶態切換到內核態 99
6.8.3 內核態訪問用戶態數據 102
6.9 標準庫 103
6.9.1 CMSIS標準庫 103
6.9.2 Libc標準庫 106
6.10 文件系統 110
6.10.1 VFS 110
6.10.2 NFS 118
6.10.3 RAMFS 118
6.11 網絡連接 119
6.12 OTA 120
6.12.1 OpenHarmony升級包製作工具 121
6.12.2 OTA函數 121
第7章 HDF驅動程序框架 123
7.1 基本概念 124
7.2 HDF編程特點 125
7.2.1 HdfObject 135
7.2.2 IDeviceIoService 136
7.2.3 HdfDriverEntry 136
7.3 驅動代碼編譯鏈接 136
7.4 驅動程序配置文件HCS 137
7.4.1 樹型結構 138
7.4.2 保留字與操作符 139
7.4.3 數值類型 139
7.4.4 重載操作 140
7.4.5 文件引用 142
7.4.6 HC-GEN編譯器 142
7.5 加載驅動程序 143
7.6 註冊驅動服務 145
7.7 內核抽象層OSAL 146
7.8 註冊VFS 147
7.9 用戶態使用驅動程序HDI 147
第8章 服務框架 151
8.1 基礎數據結構 152
8.1.1 向量(Vector) 152
8.1.2 服務(Service) 153
8.1.3 特性(Feature) 154
8.1.4 IUnknown接口 154
8.1.5 標識(Identity) 156
8.2 服務框架啟動過程 156
8.3 服務/特性註冊與發現 158
8.3.1 服務/特性註冊 159
8.3.2 服務/特性發現 164
8.4 異步調用 164
8.5 跨進程服務/特性調用 165
8.5.1 跨進程調用的使用 165
8.5.2 跨進程調用的實現 167
第9章 用戶程序框架 170
9.1 Ability 170
9.2 Ability與Task 171
9.3 Ability與UI 174
9.4 Ability加載器 175
9.5 AppSpawn 176
9.6 Ability管理服務 177
9.6.1 啟動Ability 180
9.6.2 終止Ability 181
9.6.3 連接Ability 182
9.7 Ability管理命令行工具 183
9.7.1 嵌入式設備的aa命令 183
9.7.2 大內核設備的aa命令 183
第10章 輕量化UI圖形棧 185
10.1 輕量化UI圖形子系統的架構 185
10.2 模塊介紹 186
10.3 圖形組件 187
10.4 配置文件 188
10.5 圖形子系統初始化流程 188
10.6 輸入事件處理 190
10.7 屏幕設備處理 192
10.8 窗口管理器 194
第11章 包管理 195
11.1 包管理系統架構 195
11.2 包管理命令行工具 196
11.2.1 嵌入式設備的bm命令 196
11.2.2 大內核設備的bm命令 197
第12章 ACE編程框架 198
12.1 ACE的整體架構 198
12.2 如何使用ACE 200
第13章 OpenHarmony分佈式 201
13.1 分佈式操作系統基礎概念 201
13.2 OpenHarmony分佈式總體設計思想 203
13.3 分佈式軟總線 203
13.4 分佈式文件系統 204
13.5 分佈式數據庫 206
13.6 分佈式調度 209
第14章 OpenHarmony與其他操作系統的對212
14.1 與iOS和安卓的對比 212
14.2 與其他嵌入式操作系統的對比 213
第2篇 OpenHarmony編程實踐
第15章 可裁剪的OpenHarmony 216
15.1 OpenHarmony的可裁剪設計 216
15.2 內核與驅動 217
15.3 系統基礎服務裁剪 220
15.4 應用程序框架裁剪 220
15.5 hpm軟件包管理工具 220
15.5.1 安裝hpm 221
15.5.2 使用hpm 221
15.5.3 包配置文件 222
第16章 北向應用開發 226
16.1 北向IDE 226
16.1.1 安裝DevEco Studio 226
16.1.2 主界面介紹 229
16.1.3 工程管理 230
16.1.4 代碼編輯 237
16.1.5 編譯 239
16.1.6 調試 245
16.1.7 發布 248
16.2 JS框架的編程 248
16.2.1 JS框架的.hml文件編程 248
16.2.2 JS框架的.css文件編程 250
16.2.3 JS框架的.js文件編程 250
16.3 基於Java的編程 251
16.4 混合編程 251
16.4.1 ServiceAbility需要完成的工作 253
16.4.2 JS PageAbility調用的過程 255
16.5 北向編程實例 256
第17章 L0-L1南向驅動程序及設備開發 257
17.1 南向IDE介紹 257
17.1.1 安裝DevEco Device Tool 257
17.1.2 主界面介紹 258
17.1.3 工程管理 259
17.1.4 獲取代碼 259
17.1.5 編譯構建 260
17.1.6 燒錄 261
17.1.7 Virtual Box環境配置 262
17.1.8 HDF驅動代碼生成 264
17.2 南向開發環境搭建 265
17.3 南向編程實例——驅動程序開發 270
17.3.1 實現驅動程序 270
17.3.2 註冊驅動 273
17.3.3 修改HCS配置 273
17.3.4 加入編譯體系 274
第18章 分佈式應用開發 275
18.1 分佈式應用開發的基本概念 275
18.1.1 面向虛擬超級終端編程 275
18.1.2 分佈式體驗設計的基本原則 276
18.2 手機上的分佈式應用開發 276
18.2.1 應用背景介紹 277
18.2.2 整體設計 277
18.2.3 詳細代碼 277
第19章 OpenHarmony生態 288
19.1 OpenHarmony產業鏈概覽 288
19.2 開源基金組織 291
19.3 OpenHarmony與HMS的關係 292
19.3.1 華為生態與OpenHarmony生態 292
19.3.2 操作系統與SDK 293
19.4 OpenHarmony設備測試與認證 293