深入淺出 OpenHarmony — 架構、內核、驅動及應用開發全棧

李傳釗 著

  • 出版商: 中國水利水電
  • 出版日期: 2021-08-01
  • 定價: $528
  • 售價: 8.5$449
  • 語言: 簡體中文
  • 頁數: 294
  • 裝訂: 平裝
  • ISBN: 7517097474
  • ISBN-13: 9787517097471
  • 相關分類: Operating-system
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書是由華為資深高級軟件工程師、首位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