注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)LinuxLINUX設(shè)備驅(qū)動(dòng)程序

LINUX設(shè)備驅(qū)動(dòng)程序

LINUX設(shè)備驅(qū)動(dòng)程序

定 價(jià):¥69.00

作 者: (美)科波特(Corbet, J.)著;魏永明等譯
出版社: 中國電力出版社
叢編項(xiàng): O'REILLY系列
標(biāo) 簽: Linux操作系統(tǒng)

ISBN: 9787508338637 出版時(shí)間: 2006-01-01 包裝: 膠版紙
開本: 小16開 頁數(shù): 569 字?jǐn)?shù):  

內(nèi)容簡介

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

作者簡介

  JonahanCorbet早在1981年就開始接觸BSDUnix的源代碼。那時(shí),科羅拉多大學(xué)的一名講師讓他“修正”其中的分頁算法。從那時(shí)起直到現(xiàn)在。他深入研究了他所遇到的每一個(gè)系統(tǒng),其中包括VAX、Sun、Arden以及x86系統(tǒng)的驅(qū)動(dòng)程序。他在1993年第一次接觸Linux系統(tǒng),從此以后一直從事Linux的開發(fā)。Corbet先生是《LinuxWeeklyNews》的創(chuàng)始人和執(zhí)行主編。他和妻子及兩個(gè)孩子生活在科羅多州的玻爾得市。

圖書目錄

前言 1
第一章 設(shè)備驅(qū)動(dòng)程序簡介 9
設(shè)備驅(qū)動(dòng)程序的作用 10
內(nèi)核功能劃分 12
設(shè)備和模塊的分類 14
安全問題 15
版本編號(hào) 17
許可證條款 18
加入內(nèi)核開發(fā)社團(tuán) 19
本書概要 19
第二章 構(gòu)造和運(yùn)行模塊 21
設(shè)置測試系統(tǒng) 21
Hello World模塊 22
核心模塊與應(yīng)用程序的對比 24
編譯和裝載 28
內(nèi)核符號(hào)表 33
預(yù)備知識(shí) 35
初始化和關(guān)閉 36
模塊參數(shù) 40
在用戶空間編寫驅(qū)動(dòng)程序 42
快速參考 44
第三章 字符設(shè)備驅(qū)動(dòng)程序 46
scull的設(shè)計(jì) 46
主設(shè)備號(hào)和次設(shè)備號(hào) 47
一些重要的數(shù)據(jù)結(jié)構(gòu) 53
字符設(shè)備的注冊 59
open和release 62
scull的內(nèi)存使用 64
read和write 67
試試新設(shè)備 74
快速參考 74
第四章 調(diào)試技術(shù) 76
內(nèi)核中的調(diào)試支持 76
通過打印調(diào)試 78
通過查詢調(diào)試 85
通過監(jiān)視調(diào)試 94
調(diào)試系統(tǒng)故障 96
調(diào)試器和相關(guān)工具 102
第五章 并發(fā)和競態(tài) 109
scull的缺陷 109
并發(fā)及其管理 110
信號(hào)量和互斥體 111
completion 116
自旋鎖 118
鎖陷阱 123
除了鎖之外的辦法 125
快速參考 132
第六章 高級字符驅(qū)動(dòng)程序操作 137
ioctl 137
阻塞型I/O 149
poll和select 163
異步通知 168
定位設(shè)備 172
設(shè)備文件的訪問控制 173
快速參考 179
第七章 時(shí)間、延遲及延緩操作 183
度量時(shí)間差 183
獲取當(dāng)前時(shí)間 188
延遲執(zhí)行 190
內(nèi)核定時(shí)器 196
tasklet 202
工作隊(duì)列 204
快速參考 208
第八章 分配內(nèi)存 213
kmalloc函數(shù)的內(nèi)幕 213
后備高速緩存 217
get_free_page和相關(guān)函數(shù) 221
vmalloc及其輔助函數(shù) 225
per-CPU變量 228
獲取大的緩沖區(qū) 230
快速參考 231
第九章 與硬件通信 235
I/O端口和I/O內(nèi)存 235
使用I/O端口 239
I/O端口示例 245
使用I/O內(nèi)存 248
快速參考 254
第十章 中斷處理 258
準(zhǔn)備并口 259
安裝中斷處理例程 259
實(shí)現(xiàn)中斷處理例程 269
頂半部和底半部 274
中斷共享 278
中斷驅(qū)動(dòng)的I/O 281
快速參考 285
第十一章 內(nèi)核的數(shù)據(jù)類型 287
使用標(biāo)準(zhǔn)C語言類型 287
為數(shù)據(jù)項(xiàng)分配確定的空間大小 289
接口特定的類型 289
其他有關(guān)移植性的問題 291
鏈表 294
快速參考 298
第十二章 PCI驅(qū)動(dòng)程序 300
PCI接口 300
ISA回顧 317
PC/104和PC/104+ 319
其他的PC總線 319
SBus 320
NuBus 321
外部總線 321
快速參考 322
第十三章 USB驅(qū)動(dòng)程序 324
USB設(shè)備基礎(chǔ) 326
USB和Sysfs 329
USB urb 331
編寫USB驅(qū)動(dòng)程序 342
不使用urb的USB傳輸 352
快速參考 356
第十四章 Linux設(shè)備模型 359
kobject、kset和子系統(tǒng) 361
低層sysfs操作 368
熱插拔事件的產(chǎn)生 372
總線、設(shè)備和驅(qū)動(dòng)程序 374
類 384
各環(huán)節(jié)的整合 388
熱插拔 394
處理固件 401
快速索引 403
第十五章 內(nèi)存映射和DMA 408
Linux的內(nèi)存管理 408
mmap設(shè)備操作 418
執(zhí)行直接I/O訪問 429
直接內(nèi)存訪問 435
快速參考 453
第十六章 塊設(shè)備驅(qū)動(dòng)程序 458
注冊 459
塊設(shè)備操作 464
請求處理 468
其他一些細(xì)節(jié) 484
快速參考 487
第十七章 網(wǎng)絡(luò)驅(qū)動(dòng)程序 491
snull設(shè)計(jì) 492
連接到內(nèi)核 495
net_device結(jié)構(gòu)細(xì)節(jié) 499
打開和關(guān)閉 508
數(shù)據(jù)包傳輸 510
數(shù)據(jù)包的接收 514
中斷處理例程 516
不使用接收中斷 518
鏈路狀態(tài)的改變 521
套接字緩沖區(qū) 521
MAC 地址解析 525
定制 ioctl 命令 527
統(tǒng)計(jì)信息 528
組播 529
其他知識(shí)點(diǎn)詳解 533
快速參考 534
第十八章 TTY驅(qū)動(dòng)程序 538
小型TTY驅(qū)動(dòng)程序 540
tty_driver函數(shù)指針 545
TTY線路設(shè)置 551
ioctls 555
proc和sysfs對TTY設(shè)備的處理 557
tty_driver結(jié)構(gòu)詳解 558
tty_operations結(jié)構(gòu)詳解 560
tty_struct結(jié)構(gòu)詳解 562
快速參考 564
參考書目 567

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)