· 多年嵌入式人才培養及項目研發經驗總結
· 數百家企業嵌入式研發崗位人才需求匯總
· 數十所嵌入式專業大學院校教學現狀調研
· 側重實踐及案例分析并輔以代碼加以講解
《從實踐中學嵌入式linux操作系統》介紹了操作系統的幾大組成部分,并以嵌入式開發領域中的主流linux操作系統為例說明了各功能的實現。
全書共分為11章,內容包括嵌入式linux操作系統的基本概念,linux系統的安裝與使用,操作系統的存儲管理、進程管理、文件管理、設備管理等幾個核心模塊,其中涉及對linux內核代碼的部分分析介紹。其中,第10章綜合介紹了開發嵌入式linux系統的全過程,包括建立開發環境、編譯bootloader、編譯內核、部署根文件系統等全過程;第11章介紹了以linux為內核的android系統的編譯和移植方法。
本書可作為大學院校電子、通信、自動化、計算機等專業“嵌入式操作系統”課程的教材,也可供嵌入式linux愛好者參考使用。
《從實踐中學嵌入式linux操作系統》章節:
第1章 嵌入式linux操作系統簡介
1.1 操作系統
1.2 嵌入式系統
1.3 嵌入式操作系統
1.4 嵌入式linux基礎
1.4.1 linux發展概述
1.4.2 linux作為嵌入式操作系統的優勢
1.4.3 linux發行版本
1.4.4 如何學習linux
1.5 linux安裝
1.5.1 基礎概念
1.5.2 硬件需求
1.5.3 安裝準備
1.5.4 安裝過程
1.6 linux文件及文件系統
1.6.1 文件類型及文件屬性
1.6.2 文件系統類型介紹
1.6.3 linux目錄結構
1.7 本章習題
第2章 linux操作系統使用與系統配置
2.1 linux基本命令
2.1.1 用戶系統相關命令
2.1.2 文件目錄相關命令
2.1.3 壓縮打包相關命令
2.1.4 比較合并文件相關命令
2.1.5 網絡相關命令
2.2 linux系統服務
2.2.1 獨立運行的服務
2.2.2 xinetd設定的服務
2.2.3 設定服務命令常用方法
2.3 本章習題
第3章 嵌入式linux編程環境
3.1 linux編輯器vi的使用
3.1.1 vi的模式
3.1.2 vi的基本流程
3.1.3 vi的各模式功能鍵
3.2 gcc編譯器
3.2.1 gcc編譯流程解析
3.2.2 gcc編譯選項分析
3.3 gdb調試器
3.3.1 gdb使用流程
3.3.2 gdb基本命令
3.4 make工程管理器
3.4.1 makefile基本結構
3.4.2 makefile變量
3.4.3 makefile規則
3.4.4 make管理器的使用
3.5 使用autotools
3.5.1 autotools使用流程
3.5.2 使用autotools生成的makefile
3.6 本章習題
第4章 存儲管理
4.1 進程虛存空間的管理
4.1.1 進程的虛存區域
4.1.2 虛存空間的映射和虛存區域的建立
4.2 內存空間/地址類型
4.3 分頁機制與mmu
4.4 高速緩存
4.5 內存區域zone
4.6 獲得內存頁面
4.7 slab分配器
4.8 kmalloc
4.9 高端內存
4.10 虛擬內存的申請和釋放
4.11 本章習題
第5章 操作系統進程
5.1 進程的基本概念
5.2 linux系統進程
5.2.1 linux進程基礎
5.2.2 進程描述符
5.2.3 進程的狀態與轉換
5.2.4 進程隊列指針
5.2.5 進程隊列的全局變量
5.3 linux進程的創建
5.4 linux進程相關的系統調用
5.4.1 execve()系統調用
5.4.2 wait()系統調用
5.4.3 exit()系統調用
5.5 linux的進程調度
5.6 實時linux
5.7 本章習題
第6章 進程間通信
6.1 什么是進程間通信
6.2 互斥與同步
6.3 信號量
6.3.1 什么是信號量
6.3.2 信號量的內核實現
6.3.3 信號量的使用
6.4 共享內存
6.4.1 什么是共享內存
6.4.2 共享內存的內核實現
6.4.3 共享內存的使用
6.5 消息隊列
6.5.1 什么是消息隊列
6.5.2 消息隊列的內核實現
6.5.3 消息隊列的使用
6.6 管道
6.6.1 什么是管道
6.6.2 管道的內核實現
6.6.3 管道的讀/寫規則
6.7 本章習題
第7章 中斷與系統調用
7.1 什么是中斷
7.2 嵌入式平臺硬件中斷特點
7.3 linux內核中斷機制概述
7.4 編寫中斷處理程序isr
7.4.1 中斷處理系統結構
7.4.2 注冊中斷處理函數
7.4.3 中斷標志flags
7.4.4 isr上下文
7.5 tasklet機制
7.6 上半部和下半部
7.6.1 上半部和下半部的設計
7.6.2 中斷處理程序的不可重入性
7.7 工作隊列
7.8 系統調用
7.8.1 初始化系統調用
7.8.2 system_call函數
7.8.3 參數的傳遞與驗證
7.9 本章習題
第8章 文件管理
8.1 磁盤的物理組織
8.2 文件和目錄
8.2.1 文件的分類
8.2.2 目錄
8.2.3 文件系統
8.3 虛擬文件系統
8.3.1 虛擬文件系統概述
8.3.2 vfs超級塊
8.3.3 文件控制塊
8.3.4 vfs的目錄項
8.3.5 文件對象
8.3.6 主要數據結構間的關系
8.4 文件系統注冊與卸載
8.4.1 和文件系統相關的數據結構
8.4.2 文件系統類型注冊函數
8.4.3 掛載文件系統
8.4.4 文件系統卸載
8.5 本章習題
第9章 設備管理
9.1 設備及設備管理的功能
9.1.1 設備分類
9.1.2 設備管理
9.2 i/o內核子系統
9.2.1 i/o系統的基本功能
9.2.2 i/o空間
9.2.3 i/o控制方式
9.3 linux設備驅動程序
9.3.1 設備管理
9.3.2 linux字符設備
9.3.3 linux塊設備
9.3.4 linux網絡接口
9.3.5 linux設備文件
9.3.6 linux設備注冊與注銷
9.3.7 操作i/o端口
9.3.8 linux邏輯i/o與設備驅動程序的接口
9.4 本章習題
第10章 嵌入式linux的構建
10.1 嵌入式開發環境的搭建
10.1.1 嵌入式交叉編譯環境的搭建
10.1.2 超級終端和minicom配置及使用
10.1.3 下載映像(image)到開發板
10.1.4 編譯嵌入式linux內核
10.1.5 linux內核目錄結構
10.1.6 制作文件系統
10.2 bootloader介紹
10.2.1 bootloader概述
10.2.2 u-boot概述
10.3 嵌入式linux根文件系統構建
10.3.1 根文件系統目錄結構
10.3.2 fhs目錄結構
10.3.3 文件存放規則
10.4 本章習題
第11章 android系統的編譯和移植
11.1 移植背景與目標
11.2 移植涉及的主要過程
11.3 下載android linux 內核
11.4 安裝交叉工具鏈
11.5 android linux 內核支持ez6410平臺
11.5.1 cs8900a驅動移植
11.5.2 鍵盤驅動編寫
11.5.3 液晶驅動
11.5.4 觸摸屏驅動
11.5.5 usb驅動修改
11.5.6 提取android 根文件系統
11.5.7 系統環境設置
11.6 本章習題