《深入理解Linux驅動程序設計》基於Linux內核3.8.13源代碼及相關實例向讀者系統而詳盡地介紹和分析了Linux設備驅動程序開發框架、原理和方法。
全書共分13章,內容包括字符設備、塊設備、網絡設備、MMC/SD驅動、USB驅動、總線驅動及Flash驅動的開發機制和實例。
《深入理解Linux驅動程序設計》各章均首先概要介紹各模塊的實現原理,隨后列舉各模塊中的關鍵數據結構,再結合源代碼及實例分析介紹,讓讀者更全面地了解Linux驅動開發。《深入理解Linux驅動程序設計》內容豐富,概念和原理講解細致、深入淺出。
其中,有關代碼的部分都標有注釋以詳細介紹功能,書中的設計和分析也配以編程實例幫助理解。
吳國偉,大連理工大學軟件學院教授,博士生導師。長期講授「操作系統」、「嵌入式操作系統」方面的課程,著有暢銷圖書《嵌入式操作系統應用開發》、《Linux內核分析與高級編程》和《嵌入式系統原理與設計》。
目錄
第1章 Linux內核組成和機制
1.1Linux內核版本與發展
1.1.1Linux操作系統的誕生
1.1.2Linux內核版本的變遷
1.2Linux內核編譯
1.2.1獲取內核源碼
1.2.2內核源碼樹
1.2.3編譯內核
1.3Linux內核組成
1.4Linux內核機制
1.4.1內核啟動過程
1.4.2模塊機制
第2章 Linux內核設備管理方式
2.1devfs設備文件系統
2.2sysfs文件系統
2.3udev設備文件系統
2.4主要數據結構
2.4.1k.bject
2.4.2ktype
2.4.3kset
2.4.4三者關系
2.5熱插拔設備管理機制
2.5.1熱插拔事件流程
2.5.2涉及的模塊
2.5.3關鍵驅動函數
第3章 Linux驅動開發基礎
3.1同步機制
3.1.1內核同步機制分類
3.1.2自旋鎖與信號量的比較
3.2make及makefile
3.2.1makefile文件
3.2.2編寫makefile文件
3.2.3make命令
3.3調試方法
3.3.1printk
3.3.2/proc文件系統
3.3.3調試器及相關工具
第4章 Linux字符設備驅動開發
4.1關鍵數據結構
4.2接口函數部分內核代碼分析
4.3字符設備驅動設計
4.3.1字符設備驅動設計場景描述
4.3.2字符設備驅動設計過程
第5章 Linux內核中斷機制
5.1中斷
5.2中斷處理
5.2.1注冊中斷處理程序
5.2.2編寫中斷處理程序
5.3中斷上半部與下半部的對比
5.4中斷下半部
5.5BH機制與任務隊列機制
5.6軟中斷
5.6.1軟中斷的實現
5.6.2軟中斷的使用
5.7tasklet
5.7.1tasklet的實現
5.7.2tasklet的使用
5.8工作隊列
5.8.1工作隊列的實現
5.8.2工作隊列的使用
第6章 Linux塊設備驅動開發
6.1塊設備管理機制
6.1.1塊設備基本概念
6.1.2塊設備在Linux中的結構
6.2塊設備關鍵數據結構
6.2.1gendisk數據結構
6.2.2block_device_operations數據結構
6.2.3request數據結構
6.2.4request_queue數據結構
6.2.5bio數據結構
6.3塊設備驅動設計函數
6.3.1塊設備驅動注冊與注銷函數
6.3.2塊設備驅動打開與關閉函數
6.3.3塊設備驅動ioctl、read和write函數
6.3.4塊設備驅動的請求函數
6.4Ramdisk塊設備驅動實例
6.4.1Ramdisk塊設備驅動實例分析
6.4.2Ramdisk塊設備驅動實例測試
第7章 Linux網絡設備驅動開發
7.1網絡設備
7.1.1網絡系統分層結構
7.1.2網絡設備管理
7.2NAPI機制
7.3關鍵數據結構
7.4內核提供的網絡設備驅動設計函數
7.4.1alloc_netdev
7.4.2register_netdev
7.4.3ether_setup
7.4.4unregister_netdev
7.5網絡設備驅動開發實例
7.5.1snull_init_module函數
7.5.2snull_init函數
7.5.3相關操作函數
第8章 LinuxMMC/SD驅動開發
8.1MMC子系統基本架構
8.2關鍵數據結構
8.2.1基本數據結構
8.2.2基本數據結構主要成員及關系
8.3MMC/CD卡驅動實例
8.3.1MMC/SD卡設備驅動設計場景
8.3.2MMC/SD卡設備驅動實例實現
第9章 LinuxUSB驅動開發
9.1USB設備管理機制
9.1.1USB與串口
9.1.2USB設備屬性拓撲結構管理機制
9.1.3USB設備邏輯組織管理機制
9.2USB驅動關鍵數據結構分析
9.3USB設備驅動函數及其使用說明
9.3.1客戶端驅動管理
9.3.2USB設備配置和管理
9.3.3主機控制器的管理
9.3.4協議控制命令集和數據傳輸管理
9.4USB設備驅動開發實例
9.4.1實例開發場景設計
9.4.2USB設備驅動開發實例的實現
9.4.3驅動測試分析
第10章 Linux I2C總線設備驅動
10.1Linux總線驅動及I2C總線
10.1.1Linux總線驅動設計過程
10.1.2I2C總線的工作原理與應用
10.1.3總線基本操作
10.2Linux I2C體系結構
10.2.1Linux的I2C體系結構組成
10.2.2Linux I2C關鍵數據結構Linux I2C核心
10.4Linux I2C總線驅動
10.4.1I2C適配器驅動加載與卸載
10.4.2I2C總線通信方法
10.5Linux I2C設備驅動
10.5.1Linux I2C設備驅動模塊加載與卸載
10.5.2Linux I2C設備驅動的數據傳輸
10.5.3Linux I2C—dev.c文件分析
10.6Linux I2C驅動實例—EEPROM
10.6.1初始化
10.6.2探測設備
10.6.3檢查適配器的功能
10.6.4訪問設備
10.6.5其他函數
……
第11章 Linux PCI總線設備驅動
第12章 Linux輸入設備驅動
第13章 Linux Flash驅動開發
參考文獻
1.1Linux內核版本與發展
1.1.1Linux操作系統的誕生
1.1.2Linux內核版本的變遷
1.2Linux內核編譯
1.2.1獲取內核源碼
1.2.2內核源碼樹
1.2.3編譯內核
1.3Linux內核組成
1.4Linux內核機制
1.4.1內核啟動過程
1.4.2模塊機制
第2章 Linux內核設備管理方式
2.1devfs設備文件系統
2.2sysfs文件系統
2.3udev設備文件系統
2.4主要數據結構
2.4.1k.bject
2.4.2ktype
2.4.3kset
2.4.4三者關系
2.5熱插拔設備管理機制
2.5.1熱插拔事件流程
2.5.2涉及的模塊
2.5.3關鍵驅動函數
第3章 Linux驅動開發基礎
3.1同步機制
3.1.1內核同步機制分類
3.1.2自旋鎖與信號量的比較
3.2make及makefile
3.2.1makefile文件
3.2.2編寫makefile文件
3.2.3make命令
3.3調試方法
3.3.1printk
3.3.2/proc文件系統
3.3.3調試器及相關工具
第4章 Linux字符設備驅動開發
4.1關鍵數據結構
4.2接口函數部分內核代碼分析
4.3字符設備驅動設計
4.3.1字符設備驅動設計場景描述
4.3.2字符設備驅動設計過程
第5章 Linux內核中斷機制
5.1中斷
5.2中斷處理
5.2.1注冊中斷處理程序
5.2.2編寫中斷處理程序
5.3中斷上半部與下半部的對比
5.4中斷下半部
5.5BH機制與任務隊列機制
5.6軟中斷
5.6.1軟中斷的實現
5.6.2軟中斷的使用
5.7tasklet
5.7.1tasklet的實現
5.7.2tasklet的使用
5.8工作隊列
5.8.1工作隊列的實現
5.8.2工作隊列的使用
第6章 Linux塊設備驅動開發
6.1塊設備管理機制
6.1.1塊設備基本概念
6.1.2塊設備在Linux中的結構
6.2塊設備關鍵數據結構
6.2.1gendisk數據結構
6.2.2block_device_operations數據結構
6.2.3request數據結構
6.2.4request_queue數據結構
6.2.5bio數據結構
6.3塊設備驅動設計函數
6.3.1塊設備驅動注冊與注銷函數
6.3.2塊設備驅動打開與關閉函數
6.3.3塊設備驅動ioctl、read和write函數
6.3.4塊設備驅動的請求函數
6.4Ramdisk塊設備驅動實例
6.4.1Ramdisk塊設備驅動實例分析
6.4.2Ramdisk塊設備驅動實例測試
第7章 Linux網絡設備驅動開發
7.1網絡設備
7.1.1網絡系統分層結構
7.1.2網絡設備管理
7.2NAPI機制
7.3關鍵數據結構
7.4內核提供的網絡設備驅動設計函數
7.4.1alloc_netdev
7.4.2register_netdev
7.4.3ether_setup
7.4.4unregister_netdev
7.5網絡設備驅動開發實例
7.5.1snull_init_module函數
7.5.2snull_init函數
7.5.3相關操作函數
第8章 LinuxMMC/SD驅動開發
8.1MMC子系統基本架構
8.2關鍵數據結構
8.2.1基本數據結構
8.2.2基本數據結構主要成員及關系
8.3MMC/CD卡驅動實例
8.3.1MMC/SD卡設備驅動設計場景
8.3.2MMC/SD卡設備驅動實例實現
第9章 LinuxUSB驅動開發
9.1USB設備管理機制
9.1.1USB與串口
9.1.2USB設備屬性拓撲結構管理機制
9.1.3USB設備邏輯組織管理機制
9.2USB驅動關鍵數據結構分析
9.3USB設備驅動函數及其使用說明
9.3.1客戶端驅動管理
9.3.2USB設備配置和管理
9.3.3主機控制器的管理
9.3.4協議控制命令集和數據傳輸管理
9.4USB設備驅動開發實例
9.4.1實例開發場景設計
9.4.2USB設備驅動開發實例的實現
9.4.3驅動測試分析
第10章 Linux I2C總線設備驅動
10.1Linux總線驅動及I2C總線
10.1.1Linux總線驅動設計過程
10.1.2I2C總線的工作原理與應用
10.1.3總線基本操作
10.2Linux I2C體系結構
10.2.1Linux的I2C體系結構組成
10.2.2Linux I2C關鍵數據結構Linux I2C核心
10.4Linux I2C總線驅動
10.4.1I2C適配器驅動加載與卸載
10.4.2I2C總線通信方法
10.5Linux I2C設備驅動
10.5.1Linux I2C設備驅動模塊加載與卸載
10.5.2Linux I2C設備驅動的數據傳輸
10.5.3Linux I2C—dev.c文件分析
10.6Linux I2C驅動實例—EEPROM
10.6.1初始化
10.6.2探測設備
10.6.3檢查適配器的功能
10.6.4訪問設備
10.6.5其他函數
……
第11章 Linux PCI總線設備驅動
第12章 Linux輸入設備驅動
第13章 Linux Flash驅動開發
參考文獻
網路書店
類別
折扣
價格
-
新書87折$151