E-BOOK
深入浅出OpenHarmony——架构、内核、驱动及应用开发全栈
PDF
《深入浅出OpenHarmony——架构、内核、驱动及应用开发全栈》[68M]百度网盘|pdf下载|亲测有效
📥 PDF 电子书 · 百度网盘 · 约 30M
📖 文轩网旗舰店
🌐 zh-CN
📅 2,021 年出版
64
下载次数
4.8
用户评分
76.0MB
文件大小
PDF
📦 下载本书
- 系统认知碎片化:帮助开发者建立从设计目标、功能框架到内核驱动的完整OpenHarmony知识体系。
- 内核源码难啃:详细解读LiteOS-m与LiteOS-a的任务调度、内存管理、IPC等核心机制,降低源码学习门槛。
- 驱动开发入门难:系统讲解HDF驱动框架的编程模型、配置文件和加载流程,让驱动开发有章可循。
- 上手环境搭建繁琐:提供从Shell操作、编译构建到图形界面启动的完整上手路径。
★★★
中级
入门初级中级进阶高级
- 嵌入式开发工程师:希望从传统RTOS转向OpenHarmony生态,需要系统学习其内核与驱动框架。
- 操作系统学习者:对国产操作系统感兴趣,想深入了解LiteOS内核设计与实现原理的学生或开发者。
- 应用开发者:已具备编程基础,想拓展到OpenHarmony全栈开发能力的移动或IoT开发者。
- 技术选型决策者:需要评估OpenHarmony技术架构与生态成熟度的架构师或技术管理者。
- 先通读前四章:快速建立OpenHarmony整体认知并完成环境搭建,为后续深入打基础。
- 内核章节精读:第5-6章是核心,建议结合源码逐节理解调度、内存和IPC机制。
- 驱动部分动手实践:学习HDF框架时同步编写简单驱动,加深对配置文件和加载流程的理解。
- 服务与应用串联:将服务框架与应用开发结合学习,理解全栈开发中各组件的协作关系。
- 全栈知识体系:掌握OpenHarmony从内核、驱动到应用开发的完整技术栈。
- 内核源码理解:能够读懂LiteOS-m与LiteOS-a的调度、内存管理和IPC核心代码。
- 驱动开发能力:具备基于HDF框架编写、配置和加载驱动程序的实际能力。
- 系统上手经验:完成编译构建、Shell操作和图形界面启动的完整实践流程。
- 生态认知:理解OpenHarmony的设计目标、技术特点及其在5G和IoT领域的定位。
📖 书籍简介
作 者:李传钊 著
定 价:88
出 版 社:中国水利水电出版社
出版日期:2021年07月01日
页 数:304
装 帧:平装
ISBN:9787517097471
●致敬华为
篇 OpenHarmony操作系统基础
章 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
时间管理 47
.1 系统Tick 47
.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状态机
6.5.5 调度策略 65
6.5.6 调度的时机 68
6.5.7 Task切换的实现 69
6.6 进程间通信 74
6.6.1 事件(event) 74
6.6.2 互斥量(tex) 76
6.6.3 队列(queue) 79
6. 信号灯(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 服务/特性发现 1
8.4 异步调用 1
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
0章 轻量化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
1章 包管理 195
11.1 包管理系统架构 195
11.2 包管理命令行工具 196
11.2.1 嵌入式设备的bm命令 196
11.2.2 大内核设备的bm命令 197
2章 ACE编程框架 198
12.1 ACE的整体架构 198
12.2 如何使用ACE 200
3章 OpenHarmony分布式 201
13.1 分布式操作系统基础概念 201
13.2 OpenHarmony分布式总体设计思想 203
13.3 分布式软总线 203
13.4 分布式文件系统 204
13.5 分布式数据库 206
13.6 分布式调度 209
4章 OpenHarmony与其他操作系统的对比 212
14.1 与iOS和安卓的对比 212
14.2 与其他嵌入式操作系统的对比 213
第2篇 OpenHarmony编程实践
5章 可裁剪的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
6章 北向应用开发 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
1 混合编程 251
1.1 ServiceAbility需要完成的工作 253
1.2 JS PageAbility调用的过程 255
16.5 北向编程实例 256
7章 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驱动代码生成 2
17.2 南向开发环境搭建 265
17.3 南向编程实例——驱动程序开发 270
17.3.1 实现驱动程序 270
17.3.2 注册驱动 273
17.3.3 修改HCS配置 273
17.3.4 加入编译体系 274
8章 分布式应用开发 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
9章 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
篇 OpenHarmony操作系统基础
章 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
时间管理 47
.1 系统Tick 47
.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状态机
6.5.5 调度策略 65
6.5.6 调度的时机 68
6.5.7 Task切换的实现 69
6.6 进程间通信 74
6.6.1 事件(event) 74
6.6.2 互斥量(tex) 76
6.6.3 队列(queue) 79
6. 信号灯(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 服务/特性发现 1
8.4 异步调用 1
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
0章 轻量化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
1章 包管理 195
11.1 包管理系统架构 195
11.2 包管理命令行工具 196
11.2.1 嵌入式设备的bm命令 196
11.2.2 大内核设备的bm命令 197
2章 ACE编程框架 198
12.1 ACE的整体架构 198
12.2 如何使用ACE 200
3章 OpenHarmony分布式 201
13.1 分布式操作系统基础概念 201
13.2 OpenHarmony分布式总体设计思想 203
13.3 分布式软总线 203
13.4 分布式文件系统 204
13.5 分布式数据库 206
13.6 分布式调度 209
4章 OpenHarmony与其他操作系统的对比 212
14.1 与iOS和安卓的对比 212
14.2 与其他嵌入式操作系统的对比 213
第2篇 OpenHarmony编程实践
5章 可裁剪的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
6章 北向应用开发 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
1 混合编程 251
1.1 ServiceAbility需要完成的工作 253
1.2 JS PageAbility调用的过程 255
16.5 北向编程实例 256
7章 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驱动代码生成 2
17.2 南向开发环境搭建 265
17.3 南向编程实例——驱动程序开发 270
17.3.1 实现驱动程序 270
17.3.2 注册驱动 273
17.3.3 修改HCS配置 273
17.3.4 加入编译体系 274
8章 分布式应用开发 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
9章 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
本书是由华为不错软件工程师、首位HarmonyOS HDE(Huawei Developer Expert)李传钊老师亲自编写的OpenHarmony操作系统技术图书。本书从OpenHarmony操作系统的设计目标与设计思路开始,由表及里、深入浅出地讲解了OpenHarmony操作系统的架构、内核、驱动及应用开发基础与实战的全栈技术内容。在实战部分,从开发环境的安装配置开始,分别讲解了南向开发、北向开发的基本过程及实战案例。本书的英文版已在翻译之中,华为已将其作为面向推荐的OpenHarmony操作系统的官方技术教程之一。本书可作为OpenHarmony操作系统开发人员、技术爱好者的自学或参考资料,也可作为高校相关专业的教材。
📑 章节目录
- OpenHarmony的设计目标与5G时代背景
- 整体设计思路:可裁剪、虚拟终端与易开发
- OpenHarmony功能框架与芯片适配
- 上手实践:Shell、编译构建与图形界面
- 内核介绍:多内核架构与LiteOS对比
- 内核详细解读:启动流程、时间管理与任务调度
- 进程间通信与内存管理机制
- 文件系统、网络连接与OTA升级
- HDF驱动程序框架与编程特点
- 驱动配置HCS与内核抽象层OSAL
- 服务框架:注册发现与异步调用
- 应用开发全栈实践与综合案例