猜你喜欢
沉浸式剖析OpenHarmony源代码:基于LTS 3.0版本

沉浸式剖析OpenHarmony源代码:基于LTS 3.0版本

书籍作者:梁开祝 ISBN:9787115601384
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3986
创建日期:2023-05-23 发布日期:2023-05-23
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
下载地址
内容简介

OpenHarmony是由开放原子开源基金会孵化及运营的一个开源项目,是一款由全球开发者共建的开源分布式操作系统。从推出之日至今,OpenHarmony的发展愈加迅速,生态建设愈加成熟,已经成为全球智能终端操作系统领域不可忽视的新生开源力量。
《沉浸式剖析OpenHarmony源代码:基于LTS 3.0版本》以OpenHarmony LTS 3.0版本的代码为基础,从OpenHarmony的系统简介、开发环境搭建、编译流程、系统启动流程等开始讲解,然后逐渐深入到代码层面,对OpenHarmony中的各个子系统(主要是分布式任务调度子系统、分布式通信子系统、驱动子系统)的核心模块和框架的实现展开细致入微的分析与解读。本书还提供了相应的示例程序、详尽的日志、相关的流程图和数据结构关系图等,旨在为开发者深入地理解OpenHarmony中的关键技术和驱动框架,提供良好的帮助和参考。
《沉浸式剖析OpenHarmony源代码:基于LTS 3.0版本》适合系统开发工程师、设备驱动开发工程师阅读,也适合对OpenHarmony系统底层运行机制感兴趣的开发者阅读。

作者简介

梁开祝,毕业于四川大学计算机学院计算机科学与技术专业,擅长Linux底层驱动开发、音视频处理芯片驱动开发、HDMI/HDCP领域的驱动开发等技术。曾在OPPO公司蓝光事业部担任高级驱动开发工程师,并全程参与了OPPO全系列蓝光播放器的研发工作。后来因工作调整,在内部转岗到手机研发部门,负责手机摄像头的驱动开发工作。

编辑推荐

1)深度解析,了解更深入:
本书与市面上已有的HarmonyOS/OpenHarmony应用开发的图书不同,本书侧重于OpenHarmony系统分析和设备驱动开发,是一本深度剖析OpenHarmony运行机制的技术图书。
2)内容丰富,多方位讲解:
以OpenHarmony 3.0版本为基础,从OpenHarmony的开发环境搭建、编译流程、系统启动流程等基础部分开始介绍,逐步深入到源代码层面,对OpenHarmony的核心模块和框架实现展开细致入微的分析和解读。
3)多种资源,学习更简单:
为了降低读者的学习难度,本书以在线资源的方式,帮助读者快速了解相关内容
本书适合系统开发工程师、设备驱动开发工程师和希望深入了解OpenHarmony内部运行机制的技术从业人员阅读。

随书赠送资源:
1)码云资源仓库
与本书相关的示例代码、日志文档、流程图、表和说明文档等资源
2)博客专栏文章
51CTO与华为HarmonyOS官方共建的开源基础软件社区,是开发者学习和讨OpenHarmony的一个很好的平台。我在社区上开设了“鸿蒙系统学习笔记”技术专栏
本书的勘误或未来作者对OpenHarmony的学习总结,会在这个专栏上持续更新

《沉浸式剖析OpenHarmony源代码:基于LTS 3.0版本》电子书免费下载

pdf下载 txt下载 epub下载 mobi下载 azw3下载

目录
第 1章 系统简介 1
1.1 发展历史 1
1.2 技术特性 2
1.3 前景展望 3
第 2章 搭建开发环境 8
2.1 Windows开发环境的搭建 9
2.2 拿来即用的Ubuntu开发环境 12
2.3 Ubuntu开发环境的搭建 12
2.3.1 准备工作 12
2.3.2 修改默认shell 14
2.3.3 安装依赖工具 15
2.3.4 安装和配置Python 15
2.3.5 安装代码管理工具 17
2.3.6 安装构建编译工具链 17
2.3.7 安装VSCode及DevEco插件 21
2.4 Linux与Windows之间的文件共享 22
2.4.1 将Windows目录共享至Linux 22
2.4.2 将Linux目录共享至Windows 24
2.4.3 远程登录Linux虚拟机 25
2.5 获取代码 26
2.5.1 代码分支和版本管理简介 26
2.5.2 获取代码前的准备工作 31
2.5.3 获取Master分支代码 33
2.5.4 获取Release分支代码 34
2.5.5 获取Hi3516工程代码 35
2.5.6 获取Hi3861工程代码 38
2.6 编译代码 40
2.6.1 编译代码前的准备工作 40
2.6.2 编译Master分支代码 41
2.6.3 编译Release分支代码 44
2.6.4 编译Hi3516工程代码 45
2.6.5 编译Hi3861工程代码 47
2.6.6 编译u-boot源代码 49
2.7 烧录开发板 51
2.7.1 开发板相关说明 51
2.7.2 烧录Hi3861开发板 52
2.7.3 烧录Hi3516开发板 55
2.7.4 烧录u-boot后的处理 63
第3章 系统架构 67
3.1 系统架构图 67
3.2 系统目录结构 70
第4章 构建子系统 74
4.1 GN和Ninja的构建流程 75
4.2 系统的裁剪和配置 81
4.2.1 系统裁剪 81
4.2.2 增删子系统 86
4.2.3 增删组件 87
4.2.4 增删特性 88
4.3 编译流程分析 89
4.3.1 全编译流程 89
4.3.2 增量编译 93
4.3.3 单独编译组件和目标 94
4.4 编译LiteOS_M内核和SDK 95
4.5 编译LiteOS_A内核和shell 97
4.6 编译相关的目录结构 101
4.6.1 小型系统build相关的文件和目录结构 101
4.6.2 小型系统out相关的文件和目录结构 102
4.6.3 小型系统rootfs相关的文件和目录结构 104
4.7 标准系统的编译流程 105
4.7.1 build和out相关的文件和目录结构 105
4.7.2 标准系统的编译流程 108
4.7.3 Linux内核编译流程 114
4.7.4 单独编译部件和模块 119
第5章 启动流程 120
5.1 轻量系统(LiteOS_M)的启动流程 120
5.1.1 第 一阶段:BootLoader阶段 120
5.1.2 第二阶段:汇编语言代码阶段 121
5.1.3 第三阶段:C语言代码阶段 122
5.1.4 第四阶段:LiteOS SDK启动阶段 123
5.1.5 第五阶段:系统框架层启动阶段 124
5.1.6 系统服务的启动方式 128
5.2 小型系统(LiteOS_A)的启动流程 132
5.2.1 第 一阶段:BootLoader阶段 132
5.2.2 第二阶段:汇编语言代码阶段 132
5.2.3 第三阶段:C语言代码阶段 133
5.2.4 第四阶段:系统框架层启动阶段 140
5.2.5 系统服务的启动方式 142
5.2.6 用户态根进程的来历 143
5.3 Linux内核系统的启动流程 145
第6章 子系统 146
6.1 内核子系统概述 146
6.1.1 LiteOS_M内核概述 146
6.1.2 LiteOS_A内核概述 148
6.1.3 Linux内核概述 149
6.1.4 KAL和OSAL概述 149
6.2 启动恢复子系统 150
6.2.1 启动引导组件 152
6.2.2 应用孵化组件 153
6.2.3 服务启动组件 155
6.2.4 系统属性组件 155
6.3 公共基础库子系统 158
6.4 DFX子系统 162
6.4.1 轻量系统的日志组件 162
6.4.2 小型系统的日志组件 174
6.4.3 标准系统的日志组件 182
6.4.4 日志组件的比较 188
6.4.5 init进程的日志 189
6.4.6 驱动框架的日志 190
6.5 IoT硬件子系统 196
6.5.1 概述和目录结构 196
6.5.2 设备驱动开发路径 201
第7章 分布式任务调度子系统 208
7.1 系统服务框架概述 208
7.2 轻量系统的系统服务框架 214
7.2.1 关键结构体的解析 214
7.2.2 系统服务的启动流程 235
7.2.3 面向服务架构的实现 245
7.3 小型系统的系统服务框架 248
7.3.1 线程/进程及其通信模型 249
7.3.2 系统服务的启动流程 257
7.3.3 系统服务注册EP的流程 264
7.3.4 服务管理者的启动流程 279
7.3.5 客户端EP与samgr EP的IPC交互 287
7.3.6 客户端EP与客户端EP的IPC交互 303
第8章 分布式通信子系统 315
8.1 分布式通信子系统概述 315
8.1.1 概念简介 315
8.1.2 依赖关系 316
8.2 WiFi模块概述 318
8.2.1 轻量系统的WiFi模块 318
8.2.2 小型系统的WiFi模块 323
8.2.3 标准系统的WiFi模块 327
8.2.4 编译和部署WiFi驱动 327
8.3 软总线组件的目录结构 332
8.3.1 根目录概述 332
8.3.2 interfaces子目录 338
8.3.3 adapter子目录 340
8.3.4 components子目录 343
8.3.5 sdk子目录和core子目录 343
8.4 软总线组件的适配模块 344
8.5 软总线组件的通用模块 344
8.6 软总线组件的sdk模块 347
8.6.1 sdk的编译和使用 348
8.6.2 sdk的框架模块:frame 350
8.6.3 sdk的组网模块:bus_center 354
8.6.4 sdk的发现模块:discovery 355
8.6.5 sdk的传输模块:transmission 356
8.7 软总线组件的核心模块 359
8.7.1 softbus_server的启动流程 360
8.7.2 核心的框架模块:frame 366
第9章 驱动子系统 371
9.1 驱动框架概述 371
9.2 通用的驱动示例程序 374
9.2.1 硬件平台和原理图 375
9.2.2 代码结构和编译配置 377
9.2.3 通过执行程序来验证效果 385
9.3 驱动程序的开发要点 386
9.3.1 用户态程序与内核态驱动的交互 386
9.3.2 驱动配置信息的管理 386
9.3.3 驱动程序的实现 399
9.4 驱动框架的代码结构 404
9.5 驱动框架的编译流程 409
9.5.1 在LiteOS_A内核部署驱动框架 409
9.5.2 在Linux内核部署驱动框架 411
9.5.3 在小型系统的用户空间部署驱动框架 414
9.5.4 在标准系统的用户空间部署驱动框架 417
9.6 驱动框架的关键结构体 419
9.6.1 DevmgrService和DevmgrServiceClnt 419
9.6.2 DevSvcManager和DevSvcManagerClnt 421
9.6.3 Host的HdfHostInfo和HostList 423
9.6.4 Host的DevHostService和DevHostServiceClnt 424
9.6.5 Host的DriverInstaller 426
9.6.6 Device的HdfDriverLoader 426
9.6.7 Device的HdfDevice 427
9.6.8 Device的HdfDeviceInfo和HdfDeviceNode 429
9.6.9 HdfServiceObserver和HdfServiceObserverRecord 431
9.6.10 HdfObjectCreator 432
9.7 驱动框架的启动流程 435
9.7.1 驱动框架的启动入口 436
9.7.2 启动DeviceManager 443
9.7.3 启动HostList的每个Host 448
9.7.4 启动DevHostService 451
9.7.5 启动Host的每个Device 454
9.7.6 Device的Bind子流程 457
9.7.7 Device的Init子流程 461
9.7.8 Device的PublishService子流程 463
9.7.9 Device的AttachDevice子流程 468
9.8 用户态程序与内核态驱动的交互 470
9.8.1 代码部署和编译配置 470
9.8.2 序列化数据的交互 473
9.8.3 HdfIoService接口 476
9.8.4 消息机制的实现 477
9.9 在用户空间部署驱动框架 488
9.9.1 开源许可证的影响 488
9.9.2 小型系统的用户态基础驱动能力 490
9.9.3 标准系统的用户态驱动框架概述 493
9.10 用户态驱动框架的hdf_devmgr进程 496
9.10.1 启动hdf_devmgr进程 497
9.10.2 启动DevmgrServiceStub服务 501
9.10.3 启动HostList的每个Host 506
9.10.4 SA5001的IPC消息处理函数 509
9.10.5 SA5002的IPC消息处理函数 511
9.11 用户态驱动框架的hdf_devhost进程 515
9.11.1 启动hdf_devhost进程 515
9.11.2 Host的IPC消息处理函数 521
9.11.3 Host的进程内消息处理函数 522
9.11.4 Device的Bind子流程 524
9.11.5 Device的Init子流程 527
9.11.6 Device的PublishService子流程 530
9.11.7 Device的AttachDevice子流程 531
9.11.8 Device的IPC消息处理函数 532
9.12 HDI和驱动模型 533
9.12.1 HDI概述 533
9.12.2 HDI的声明和定义 534
9.12.3 HDI的WLAN驱动实现 535
9.12.4 驱动模型概述 539
后记 542
短评

物品已经收到了,还没有看,应该是正品吧

2022-12-14 15:40:05

这本书确实挺好的,是我学习open harmony的一个。很有用的一个攻击书,里面讲的各个模块也挺详细。

2022-11-24 11:18:35

沉浸式拜读一下***的OpenHarmony书籍,再感慨一下OpenHarmony版本迭代之快和发展之迅猛

2022-11-24 11:26:38

产品特色