嵌入式 Linux 操作系統原理與應用

文全剛,張榮高

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

商品描述

本書主要內容分成3個部分:
第一部分介紹嵌入式操作系統基礎,包括第1章和第2章;
第二部分介紹基於嵌入式Linux軟件的開發,包括BootLoader、
驅動程序的設計、內核的裁減和移植及應用程序的開發,本書的重點在於介紹應用程序的開發,這部分內容由第3~6章組成;
第三部分是實驗內容,包括第7章。相比舊版,本書更加註重實踐操作部分,並對部分內容進行了整理、優化和改進。

目錄大綱

第1章嵌入式系統基礎 1
1.1 嵌入式系統概述 1
1.1.1 嵌入式系統的基本概念 1
1.1.2 嵌入式系統的應用領域 2
1.1.3 嵌入式系統的組成 4
1.1.4 嵌入式系統的特點 5
1.1.5 嵌入式系統的發展趨勢 6
1.2 嵌入式操作系統10
1.2.1 操作系統的基本功能10
1.2.2 嵌入式操作系統11
1.2.3 嵌入式操作系統體系結構12
1.2.4 嵌入式操作系統的選擇16
1.2.5 幾種代表性嵌入式操作系統比較17
1.3 嵌入式Linux基礎19
1.3.1 Linux簡介19
1.3.2 嵌入式Linux 23
1.3.3 Linux的安裝基礎25
1.3.4 基於虛擬機的Linux的安裝27
1.3.5 Linux虛擬機的設置32
1.4 Linux目錄結構及文件35
1.4.1 Linux文件系統35
1.4.2 Linux目錄結構38
1.4.3 文件類型及文件屬性40
1.5 Linux常用操作命令43
1.5.1 Shell命令基礎43
1.5.2 文件與目錄相關命令45
1.5.3 磁盤管理與維護命令53
1.5.4 系統管理與設置命令55
1.5.5 網絡相關命令57
1.5.6 壓縮備份命令60
1.6 Linux下Shell編程62
1.6.1 Shell程序概述62
1.6.2 Shell變量63
1.6.3 Shell特殊字符65
1.6.4 Shell流程控制67
1.6.5 Shell函數定義72
1.6.6 Shell程序示例72
1.7 Linux啟動過程分析74
習題一79
第2章Linux編程基礎80
2.1 Linux下的C語言編程80
2.1.1 Linux下的C語言編程概述80
2.1.2 Linux下的C語言開發流程82
2.2 Vim編輯器85
2.2.1 Vim的模式85
2.2.2 Vim常用操作87
2.3 GCC編譯器91
2.3.1 GCC編譯器簡介91
2.3.2 GCC編譯流程92
2.3.3 GCC常用編譯選項95
2.3.4 庫依賴98
2.4 GDB調試器99
2.4.1 GDB概述99
2.4.2 GDB使用流程99
2.4.3 GDB基本命令104
2.4.4 gdbServer遠程調試108
2.5 Make工程管理器109
2.5.1 Make工程管理器概述109
2.5.2 Makefile基本結構110
2.5.3 Makefile變量115
2.5.4 Makefile規則118
2.5.5 Makefile常用函數119
2.5.6 使用自動生成工俱生成Makefile 125
2.6 Linux集成開發環境128
2.6.1 CodeBlocks集成開發環境簡介128
2.6.2 CodeBlocks開發流程130
2.7 文件I/O編程136
2.7.1 文件I/O編程基礎136
2.7.2 基本I/O操作137
2.7.3 標準I/O操作141
2.7.4 嵌入式Linux串口通信編程144
2.8 進程控制編程152
2.8.1 Linux下的進程概述152
2.8.2 Linux進程編程155
2.8.3 Zombie進程164
2.8.4 Linux守護進程165
2.9 進程間的通信和同步170
2.9.1 Linux下進程間通信概述170
2.9.2 管道通信171
2.9.3 共享內存通信179
2.9.4 其他方式通信182
2.10 多線程編程182
2.10.1 線程的基本概念182
2.10.2 線程的實現__________184
2.10.3 修改線程屬性186
2.10.4 多線程訪問控制188
習題二190
第3章基於Linux的嵌入式軟件開發191
3.1 嵌入式軟件結構191
3.1.1 嵌入式軟件體系結構191
3.1.2 基於Linux的嵌入式軟件194
3.2 嵌入式軟件開發流程195
3.2.1 嵌入式Linux設計概述195
3.2.2 基於開發板的二次開發196
3.2.3 基於Linux的嵌入式軟件開發流程198
3.3 嵌入式Linux開發環境199
3.3.1 ARM 處理器硬件開發平台199
3.3.2 建立嵌入式交叉編譯環境200
3.3.3 配置開發環境200
3.4 嵌入式系統引導代碼211
3.4.1 BootLoader簡介211
3.4.2 常用的BootLoader 212
3.4.3 BootLoader基本原理214
3.4.4 BootLoader移植實例一:U Boot 218
3.4.5 BootLoader移植實例二:Vivi 227
3.5 Linux內核結構及移植229
3.5.1 Linux內核結構229
3.5.2 Linux的移植233
3.5.3 修改Linux內核源碼237
3.5.4 內核的裁減239
3.5.5 內核的編譯和下載241
3.6 嵌入式文件系統及移植242
3.6.1 嵌入式文件系統的基礎242
3.6.2 嵌入式文件系統的設計246
3.6.3 嵌入式根文件系統的製作247
3.7 Linux設備驅動概述249
3.7.1 Linux設備驅動的作用249
3.7.2 Linux設備驅動程序的基本結構250
3.7.3 Linux設備驅動的分類251
3.7.4 Linux設備文件和設備文件系統252
3.8 設備驅動程序接口253
3.8.1 Linux設備驅動的加載方式253
3.8.2 設備驅動程序接口255
3.8.3 Linux設備的控制方式257
3.9 Linux設備驅動開發流程259
3.9.1 設備驅動開發流程259
3.9.2 字符設備驅動框架262
習題三269
第4章嵌入式應用程序設計270
4.1 嵌入式應用程序設計概述270
4.1.1 嵌入式軟件的分類270
4.1.2 嵌入式GUI 271
4.1.3 常用嵌入式GUI 272
4.2 Qt編程基礎274
4.2.1 Qt簡介274
4.2.2 Qt/Embedded 276
4.2.3 Qt開發環境的搭建277
4.2.4 Qt程序設計基本流程280
4.3 信號和槽機制282
4.3.1 基本概念282
4.3.2 信號和槽機制的原理283
4.3.3 信號和槽實例286
4.4 圖形界面設計288
4.4.1 Qt的窗口類Widget 288
4.4.2 使用Qt Creator編寫Qt程序289
4.4.3 Qt中常用的控件293
4.5 使用CodeBlocks開發Qt程序296
習題四301
第5章嵌入式數據庫302
5.1 嵌入式數據庫概述302
5.1.1 嵌入式數據庫簡介302
5.1.2 嵌入式數據庫的特點及分類304
5.1.3 嵌入式數據庫的應用306
5.2 SQLite數據庫307
5.2.1 SQLite數據庫概述307
5.2.2 SQLite數據庫的安裝309
5.2.3 SQLite數據庫的基本命令310
5.2.4 SQLite數據庫的管理命令311
5.2.5 SQLite數據庫的API函數314
5.2.6 SQLite數據庫的實例分析315
習題五317
第6章嵌入式Linux網絡編程318
6.1 網絡協議概述318
6.1.1 網絡協議參考模型318
6.1.2 TCP/IP協議族319
6.1.3 TCP和UDP 320
6.2 網絡編程基礎324
6.2.1 Socket概述324
6.2.2 基本數據結構和函數324
6.2.3 Socket基礎編程326
6.3 TCP通信編程328
6.3.1 TCP通信過程328
6.3.2 TCP Server程序設計334
6.3.3 TCP Client程序設計336
6.3.4 TCP程序測試過程337
6.4 UDP通信編程338
6.4.1 UDP通信過程338
6.4.2 UDP 服務器端程序設計338