內容簡介
本書是經典著作《Linux設備驅動程序》的第三版。如果您希望在Linux操作系統(tǒng)上支持計算機外部設備,或者在Linux上運行新的硬件,或者只是希望一般性地了解Linux內核的編程,就一定要閱讀本書。本書描述了如何針對各種設備編寫驅動程序,而在過去,這些內容僅僅以口頭形式交流,或者零星出現(xiàn)在神秘的代碼注釋中。
本書的作者均是Linux社區(qū)的領導者。JonathanCorbet雖不是專職的內核代碼貢獻者,但他是備受關注的LWN.net新聞及信息網站的執(zhí)行編輯。AlessandroRubini是一名Linux代碼貢獻者,也是活躍的意大利Linux社區(qū)的靈魂人物。GregKroah-Hartman是目前內核中USB、PCI和驅動程序核心子系統(tǒng)(本書均有講述)的維護者。
本書的這個版本已針對Linux內核的2.6.10版本徹底更新過了。內核的這個版本針對常見任務完成了合理化設計及相應的簡化,如即插即用、利用sysfs文件系統(tǒng)和用戶空間交互,以及標準總線上的多設備管理等等。
要閱讀并理解本書,您不必首先成為內核黑客;只要您理解C語言并具有Unix系統(tǒng)調用的一些背景知識即可。您將學到如何為字符設備、塊設備和網絡接口編寫驅動程序。為此,本書提供了完整的示例程序,您不需要特殊的硬件即可編譯和運行這些示例程序。本書還在單獨的章節(jié)中講述了PCI、USB和tty(終端)子系統(tǒng)。對期望了解操作系統(tǒng)內部工作原理的讀者來講,本書也深入闡述了地址空間、異步事件以及I/O等方面的內容。
本書涵蓋的主題包括:
●完整的字符、塊、tty(終端)及網絡驅動程序
●驅動程序的調試
●中斷
●計時問題
●并發(fā)、鎖定和對稱多處理器系統(tǒng)(SMP)
●內存管理和DMA
●驅動程序模型和sysfs
●熱插拔設備
●對常見總線的描述,包括SCSI、PCI、USB和IEEE1394(火線)。

目錄
前言
第一章設備驅動程序簡介
設備驅動程序的作用
內核功能劃分
設備和模塊的分類
安全問題
版本編號
許可證條款
加入內核開發(fā)社團
本書概要
第二章構造和運行模塊設置測試系統(tǒng)
HelloWorld模塊
核心模塊與應用程序的對比
編譯和裝載
內核符號表
預備知識
初始化和關閉
模塊參數(shù)
在用戶空間編寫驅動程序
快速參考
第三章字符設備驅動程序
scull的設計
主設備號和次設備號
一些重要的數(shù)據結構
字符設備的注冊
open和release
scull的內存使用
read和write
試試新設備
快速參考
第四章調試技術
內核中的調試支持
通過打印調試
通過查詢調試
通過監(jiān)視調試
調試系統(tǒng)故障
調試器和相關工具
第五章并發(fā)和競態(tài)
scull的缺陷
并發(fā)及其管理
信號量和互斥體
completion
自旋鎖
鎖陷阱
除了鎖之外的辦法
快速參考
第六章高級字符驅動程序操作
ioctl
阻塞型I/O
poll和select
異步通知
定位設備
設備文件的訪問控制
快速參考
第七章時間、延遲及延緩操作
度量時間差
獲取當前時間
延遲執(zhí)行
內核定時器
tasklet
工作隊列
快速參考
第八章分配內存
kmalloc函數(shù)的內幕
后備高速緩存
get_free_page和相關函數(shù)
vmalloc及其輔助函數(shù)
per-CPU變量
獲取大的緩沖區(qū)
快速參考
第九章與硬件通信
I/O端口和I/O內存
使用I/O端口
I/O端口示例
使用I/O內存
快速參考
第十章中斷處理
準備并口
安裝中斷處理例程
實現(xiàn)中斷處理例程
頂半部和底半部
中斷共享
中斷驅動的I/O
快速參考
第十一章內核的數(shù)據類型
使用標準C語言類型
為數(shù)據項分配確定的空間大小
接口特定的類型
其他有關移植性的問題
鏈表
快速參考
第十二章PCI驅動程序
PCI接口
ISA回顧
PC/104和PC/104+
其他的PC總線
SBus
NuBus
外部總線
快速參考
第十三章USB驅動程序
USB設備基礎
USB和Sysfs
USBurb
編寫USB驅動程序
不使用urb的USB傳輸
快速參考
第十四章Linux設備模型
kobject、kset和子系統(tǒng)
低層sysfs操作
熱插拔事件的產生
總線、設備和驅動程序
類
各環(huán)節(jié)的整合
熱插拔
處理固件
快速索引
第十五章內存映射和DMA
Linux的內存管理
mmap設備操作
執(zhí)行直接I/O訪問
直接內存訪問
快速參考
第十六章塊設備驅動程序
注冊
塊設備操作
請求處理
其他一些細節(jié)
快速參考
第十七章網絡驅動程序
snull設計
連接到內核
net_device結構細節(jié)
打開和關閉
數(shù)據包傳輸
數(shù)據包的接收
中斷處理例程
不使用接收中斷
鏈路狀態(tài)的改變
套接字緩沖區(qū)
MAC地址解析
定制ioctl命令
統(tǒng)計信息
組播
其他知識點詳解
快速參考
第十八章TTY驅動程序
小型TTY驅動程序
tty_driver函數(shù)指針
TTY線路設置
ioctls
proc和sysfs對TTY設備的處理
tty_driver結構詳解
tty_operations結構詳解
tty_struct結構詳解
快速參考
參考書目
-
Linux
+關注
關注
88文章
11806瀏覽量
219499 -
嵌入式主板
+關注
關注
7文章
6107瀏覽量
37147 -
米爾科技
+關注
關注
5文章
227瀏覽量
22548
發(fā)布評論請先 登錄
米爾科技LINUX設備驅動程序教程
評論