開源鴻蒙(OpenHarmony)操作系統編程實踐
高聯雄
商品描述
作者簡介
目錄大綱
目錄
第一篇基 本 原 理
第1章OpenHarmony概述
1.1初識OpenHarmony
1.1.1OpenHarmony背景
1.1.2OpenHarmony版本
1.2OpenHarmony架構
1.2.1技術特性
1.2.2系統類型
1.2.3詳細特征
1.3內核、南向與北向開發
1.4OpenHarmony內核子系統
1.5LiteOSM內核
1.5.1LiteOSM概述
1.5.2LiteOSM架構
1.5.3LiteOSM接口
1.5.4LiteOSM功能模塊
1.6編程實踐一: 開發環境構建
1.6.1安裝WSL2
1.6.2安裝Ubuntu及其必要工具
1.6.3使用Linux常用命令
1.6.4VS Code的安裝使用
1.6.5實踐與思考
第2章OpenHarmony硬件與仿真
2.1RISCV架構
2.1.1RISCV計算機
2.1.2RISCV系統結構
2.1.3RISCV SoC系統
2.1.4RISCV仿真
2.2RISCV CPU
2.2.1RISCV指令集
2.2.2RISCV寄存器
2.3RISCV virt虛擬系統
2.4編譯、鏈接與調試
2.4.1編譯
2.4.2鏈接
2.4.3構建
2.4.4Makefile
2.4.5調試
2.4.6ELF文件結構
2.5Qemu與OpenHarmony仿真運行
2.5.1Qemu命令的使用
2.5.2編譯、運行與調試
2.6編程實踐二: 源碼、編譯與仿真環境搭建
2.6.1下載內核源碼
2.6.2安裝工具鏈GCC
2.6.3安裝QEMU RISCV
2.6.4編譯運行內核
2.6.5內核源碼的修改
2.6.6Linux中調試內核
2.6.7VS Code中調試內核
2.6.8實踐與思考
第二篇系統啟動、任務管理與進程間通信
第3章OpenHarmony啟動
3.1內核啟動與系統初始化階段
3.2主程序階段
3.3內核初始化階段
3.4用戶程序初始化與任務調度
3.5編程實踐三: 啟動分析
3.5.1跟蹤調試los_start.S
3.5.2跟蹤調試main()函數
第4章OpenHarmony任務管理
4.1任務創建
4.1.1任務數據結構
4.1.2任務創建過程
4.2任務初始化與運行
4.2.1任務初始化
4.2.2任務運行
4.2.3任務啟動
4.3編程實踐四: 任務創建
4.3.1API編程
4.3.2源碼分析
第5章OpenHarmony任務調度
5.1任務上下文切換
5.1.1上下文定義
5.1.2上下文切換
5.2任務調度
5.2.1任務初始化
5.2.2啟動任務內核
5.2.3啟動任務調度
5.3編程實踐五: 任務調度
5.3.1API編程
5.3.2源碼分析
5.3.3內核實現
第6章OpenHarmony進程同步
6.1信號量與生產者消費者模型
6.1.1信號量
6.1.2互斥鎖
6.1.3生產者消費者模型
6.2編程實踐六: 信號量與互斥鎖分析與使用
6.2.1API編程
6.2.2源碼分析
6.2.3內核實現
第7章OpenHarmony進程間通信
7.1消息隊列
7.2編程實踐七: 消息隊列與管道
7.2.1API編程
7.2.2源碼分析
7.2.3內核實現
第三篇內存、中斷與文件系統管理
第8章OpenHarmony內存管理實驗
8.1靜態內存管理
8.2動態內存管理
8.2.1Buddy夥伴系統
8.2.2動態內存管理
8.2.3內存分配與釋放
8.2.4動態內存管理接口
8.2.5動態內存使用流程
8.3編程實踐八: 內存管理
8.3.1API編程
8.3.2源碼分析
8.3.3內核實現
第9章OpenHarmony芯片與中斷管理
9.1芯片抽象
9.1.1芯片常量
9.1.2公共常量
9.2中斷管理
9.2.1中斷系統
9.2.2OpenHarmony中斷接口
9.2.3OpenHarmony中斷處理流程
9.2.4RISCV中斷
9.3編程實踐九: 中斷管理
9.3.1API編程
9.3.2源碼分析
9.3.3內核實現
第10章OpenHarmony文件系統
10.1文件系統
10.1.1VFS文件系統
10.1.2FAT文件系統
10.2文件系統操作
10.2.1FAT32文件系統制作
10.2.2掛載與卸載
10.3編程實踐十: 文件系統操作
10.3.1API編程
10.3.2源碼分析
10.3.3內核實現
第四篇輕量系統構建
第11章OpenHarmony RISCV virt輕量系統安裝
11.1預備工具
11.1.1安裝Ubuntu及VS Code
11.1.2準備命令工具
11.1.3註冊碼雲gitee賬號及SSH公鑰
11.1.4安裝配置git客戶端
11.2獲取源碼及工具鏈
11.2.1通過repo獲取源碼
11.2.2下載工具鏈
11.3安裝編譯構建工具hb
11.3.1安裝hb命令
11.3.2檢查hb命令
11.3.3使用hb命令
11.4編程實踐十一: 構建RISCV virt系統
11.4.1設置hb並構建目標
11.4.2常見錯誤處理
第12章Ninja與GN構建技術
12.1Ninja技術與GN概述
12.1.1Ninja與GN工具安裝與構建
12.1.2Ninja
12.1.3GN
12.2GN文件語法規則
12.3構建過程與工具鏈
12.3.1構建配置
12.3.2構建目標
12.3.3CONFIGS與CONFIG
12.3.4工具鏈
12.4編程實踐十二: GN構建
12.4.1simple_build概述
12.4.2.gn文件
12.4.3build/BUILDCONFIG.gn文件
12.4.4build/toolchain/BUILD.gn文件
12.4.5build/BUILD.gn文件
12.4.6BUILD.gn文件
第13章OpenHarmony編譯子系統
13.1OpenHarmony編譯構建框架
13.1.1編譯構建概述
13.1.2編譯子系統架構
13.1.3目錄結構
13.2OpenHarmony配置規則
13.2.1產品配置規則
13.2.2子系統配置規則
13.2.3部件配置
13.2.4模塊配置
13.2.5芯片解決方案
13.3hb配置參數及其解析
13.3.1參數結構
13.3.2參數文件的位置
13.3.3參數文件示例
13.4編程實踐十三: 編譯構建過程
13.4.1編譯構建流程
13.4.2hb set的運行
13.4.3hb主程序及初始化
13.4.4hb構建模塊接口分析
13.4.5hb構建模塊ohos_build分析
參考文獻







