內容簡介
《LINUX設備驅動程式(第3版)》已針對Linux核心的2610版本徹底更新過了。核心的這個版本針對常見任務完成了合理化設計及相應的簡化,如即插即用、利用sysfs檔案系統和用戶空間互動,以及標準匯流排上的多設備管理等等。要閱讀並理解本書,您不必首先成為核心黑客;只要您理解C語言並具有Unix系統調用的一些背景知識即可。您將學到如何為字元設備、塊設備和網路接口編寫驅動程式。為此,《LINUX設備驅動程式(第3版)》提供了完整的示例程式,您不需要特殊的硬體即可編譯和運行這些示例程式。《LINUX設備驅動程式(第3版)》還在單獨的章節中講述了PCI、USB和tty(終端)子系統。對期望了解作業系統內部工作原理的讀者來講,《LINUX設備驅動程式(第3版)》也深入闡述了地址空間、異步事件以及I/O等方面的內容。
作者簡介
JonahanCorbet早在1981年就開始接觸BSDUnix的原始碼。那時,科羅拉多大學的一名講師讓他“修正”其中的分頁算法。從那時起直到現在。他深入研究了他所遇到的每一個系統,其中包括VAX、Sun、Arden以及x86系統的驅動程式。他在1993年第一次接觸Linux系統,從此以後一直從事Linux的開發。Corbet先生是《LinuxWeeklyNews》的創始人和執行主編。他和妻子及兩個孩子生活在科羅多州的玻爾得市。
編輯推薦
《LINUX設備驅動程式(第3版)》詳細介紹了Linux。如果您希望在Linux作業系統上支持計算機外部設備,或者在Linux上運行新的硬體,或者只是希望一般性地了解Linux核心的編程,就一定要閱讀本書。本書描述了如何針對各種設備編寫驅動程式,而在過去,這些內容僅僅以口頭形式交流,或者零星出現在神秘的代碼注釋中。
目錄
前言
第一章 設備驅動程式簡介
設備驅動程式的作用
核心功能劃分
設備和模組的分類
安全問題
版本編號
許可證條款
加入核心開發社團
本書概要
第二章 構造和運行模組
設定測試系統
Hello world模組
核心模組與應用程式的對比
編譯和裝載
核心符號表
預備知識
初始化和關閉
模組參數
在用戶空間編寫驅動程式
快速參考
第三章 字元設備驅動程式
scull的設計
主設備號和次設備號
一些重要的數據結構
字元設備的註冊
open和release
scull的記憶體使用
read和write
試試新設備
快速參考
第四章 調試技術
核心中的調試支持
通過列印調試
通過查詢調試
通過監視調試
調試系統故障
調試器和相關工具
第五章 並發和競態
scull的缺陷
並發及其管理
信號量和互斥體
completiOn
自鏇鎖
鎖陷阱
除了鎖之外的辦法
快速參考
第六章 高級字元驅動程式操作
ioctl
阻塞型I/O
poll和select
異步通知
定位設備
設備檔案的訪問控制
快速參考
第七章 時間、延遲及延緩操作
度量時間差
獲取當前時間
延遲執行
核心定時器
tasklet
工作佇列
快速參考
第八章 分配記憶體
kmalloc函式的內幕
後備高速快取
get—free—page和相關函式
vmalloc及其輔助函式
per-CPU變數
獲取大的緩衝區
快速參考