《LINUX设备驱动程序 第3版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman著;魏永明,耿岳,钟书毅译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2006
  • ISBN:7508338634
  • 页数:569 页
图书介绍:本书主要包括:完整的字符、块、tty(终端)及网络驱动程序的调试、中断、计时问题、并发、锁定和对称多处理器系统(SMP)、内存管理和DMA、驱动程序模型和sysfs、热插拔设备、对常见总线的描述,包括SCSI、PCI、USB和IEEE1394(火线)。

前言 1

第一章 设备驱动程序简介 9

设备驱动程序的作用 10

内核功能划分 12

设备和模块的分类 14

安全问题 15

版本编号 17

许可证条款 18

本书概要 19

加入内核开发社团 19

第二章 构造和运行模块 21

设置测试系统 21

Hello World模块 22

核心模块与应用程序的对比 24

编译和装载 28

内核符号表 33

预备知识 35

初始化和关闭 36

模块参数 40

在用户空间编写驱动程序 42

快速参考 44

第三章 字符设备驱动程序 46

scull的设计 46

主设备号和次设备号 47

一些重要的数据结构 53

字符设备的注册 59

open和release 62

scull的内存使用 64

read和write 67

试试新设备 74

快速参考 74

第四章 调试技术 76

内核中的调试支持 76

通过打印调试 78

通过查询调试 85

通过监视调试 94

调试系统故障 96

调试器和相关工具 102

scull的缺陷 109

第五章 并发和竞态 109

并发及其管理 110

信号量和互斥体 111

completion 116

自旋锁 118

锁陷阱 123

除了锁之外的办法 125

快速参考 132

ioctl 137

第六章 高级字符驱动程序操作 137

阻塞型I/O 149

poll和select 163

异步通知 168

定位设备 172

设备文件的访问控制 173

快速参考 179

第七章 时间、延迟及延缓操作 183

度量时间差 183

获取当前时间 188

延迟执行 190

内核定时器 196

tasklet 202

工作队列 204

快速参考 208

第八章 分配内存 213

kmalloc函数的内幕 213

后备高速缓存 217

get_free_page和相关函数 221

vmalloc及其辅助函数 225

per-CPU变量 228

获取大的缓冲区 230

快速参考 231

第九章 与硬件通信 235

I/O端口和I/O内存 235

使用I/O端口 239

I/O端口示例 245

使用I/O内存 248

快速参考 254

第十章 中断处理 258

安装中断处理例程 259

准备并口 259

实现中断处理例程 269

顶半部和底半部 274

中断共享 278

中断驱动的I/O 281

快速参考 285

第十一章 内核的数据类型 287

使用标准C语言类型 287

接口特定的类型 289

为数据项分配确定的空间大小 289

其他有关移植性的问题 291

链表 294

快速参考 298

第十二章 PCI驱动程序 300

PCI接口 300

ISA回顾 317

PC/104和PC/104+ 319

其他的PC总线 319

SBus 320

外部总线 321

NuBus 321

快速参考 322

第十三章 USB驱动程序 324

USB设备基础 326

USB和Sysfs 329

USB urb 331

编写USB驱动程序 342

不使用urb的USB传输 352

快速参考 356

第十四章 Linux设备模型 359

kobject、kset和子系统 361

低层sysfs操作 368

热插拔事件的产生 372

总线、设备和驱动程序 374

类 384

各环节的整合 388

热插拔 394

处理固件 401

快速索引 403

Linux的内存管理 408

第十五章 内存映射和DMA 408

mmap设备操作 418

执行直接I/O访问 429

直接内存访问 435

快速参考 453

第十六章 块设备驱动程序 458

注册 459

块设备操作 464

请求处理 468

其他一些细节 484

快速参考 487

第十七章 网络驱动程序 491

snull设计 492

连接到内核 495

net_device结构细节 499

打开和关闭 508

数据包传输 510

数据包的接收 514

中断处理例程 516

不使用接收中断 518

链路状态的改变 521

套接字缓冲区 521

MAC地址解析 525

定制ioctl命令 527

统计信息 528

组播 529

其他知识点详解 533

快速参考 534

第十八章 TTY驱动程序 538

小型TTY驱动程序 540

tty_driver函数指针 545

TTY线路设置 551

ioctls 555

proc和sysfs对TTY设备的处理 557

tty_driver结构详解 558

tty_operations结构详解 560

tty_struct结构详解 562

快速参考 564

参考书目 567