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

  • 购买积分:15 如何计算积分?
  • 作  者:(美)A.鲁宾尼(Alessandro Rubini)著;(Linux源码小组)LISOLEG译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2000
  • ISBN:7508302214
  • 页数:475 页
图书介绍:本书是针对那些想在Linux操作系统下支持计算机外设或者是想在Linux下开发并运行新硬件的人而写的。Linux是UNIX市场中份额增长最快的操作系统,在许多应用领域中赢得了众多热心的追随者。本书展示了迄今为止流传于口头上的或隐含在源代码评注背后的信息,并引导您为众多的设备编写驱动程序。您不必成为一个内核的"黑客"才可以理解并欣赏这本书。您所需要具备的只是对C语言和一些UNIX系统调用的背景知识的了解。本书循序渐进地描述了字符设备、块设备和网络接口的驱动程序,并附之以功能完善的示例以及有关驱动程序设计的事项,而且这些示例不用在特定的硬件上就能运行。对于那些想知道操作系统是怎样进行工作的人来讲,本书也为他们提供了有关寻址空间、异步事件及I/O方面的知识。贯穿全书的一个重点是可移植性。它涉及了从1.2.13到2.0的内核版本,以及2.0以后至2.1.43之间的开发版本。本书也告诉你怎样在硬件平台上最大限度地移植代码。本书涵盖的内容包括:建立驱动程序并装载模块完善字符设备、块设备和网络设备驱动程序调试驱动程序计时内存管理和DMA中断可移植性事项外部设备互连(PCI)内核内幕的导览

前言 1

第一章 Linux内核简介 11

驱动程序作者的作用 12

划分内核 13

设备和模块的分类 16

安全问题 18

版本编号 19

许可证术语 21

全书概貌 22

第二章 编写和运行模块 25

模块与应用程序 26

编译和加载 31

版本相关性 33

内核符号表 35

初始化和终止 37

使用资源 42

自动和手动配置 48

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

快速索引 52

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

scull的设计 57

主设备号和次设备号 59

文件操作 66

file结构 70

Open 和Close 71

Scull的内存使用 76

读和写 80

试试新设备 86

快速索引 86

第四章 调试技术 89

用打印信息调试 89

通过查询调试 94

通过监视进行调试 98

调试系统故障 100

使用调试器 111

第五章 字符设备驱动程序的扩展操作 117

ioctl 118

阻塞型I/O 130

Select 140

异步触发 145

定位设备 148

设备文件的访问控制 150

快速索引 156

内核中的时间间隔 161

第六章 时间流 161

获取当前时间 162

延迟执行 164

任务队列 168

内核定时器 179

快速索引 183

第七章 获取内存 185

kmalloc函数的内幕 185

get_free_page和相关函数 188

vmalloc和相关函数 191

“脏”的处理方法(Playing Dirty) 194

快速索引 195

第八章 硬件管理 197

使用I/O端口 198

使用并口 203

访问设备卡上的内存 206

访问字符模式的视频缓冲区 211

快速索引 212

准备并口 215

第九章 中断处理 215

安装中断处理程序 216

实现中断处理程序 228

下半部 233

共享中断 239

中断驱动的I/O 243

竞争条件 244

中断处理的版本相关性 253

快速索引 255

第十章 合理使用数据类型 259

使用标准C类型 260

分配确定的空间大小给数据项 261

接口特定的类型 262

其他与移植有关的问题 263

快速索引 266

第十一章 Kerneld和高级模块化 269

按需加载模块 269

模块中的版本控制 275

跨过卸载/装载的持久存储 280

快速索引 282

第十二章 加载块设备驱动程序 285

注册驱动程序 285

头文件blk.h 290

处理请求 293

挂载(Mounting)是如何工作的 300

ioctl方法 301

可拆卸的设备 305

可分区设备 308

中断驱动的块设备驱动程序 317

快速索引 320

第十三章 MMAP和DMA 323

Linux中的内存管理 323

mmap设备操作 332

直接内存访问(DMA) 347

快速索引 358

第十四章 网络驱动程序 361

snull如何设计 362

与内核相连 366

设备结构的细节 371

打开和关闭 380

包发送 382

包接收 384

中断驱动的操作 386

插座缓冲区 388

地址解析 391

加载时配置 394

运行时配置 395

自定义ioctl命令 397

统计信息 399

选播(multicasting) 399

快速索引 403

第十五章 外设总线概览 407

PCI接口 407

回顾:ISA 423

其他PC总线 425

Sbus 427

快速索引 428

第十六章 内核源代码的物理布局 431

引导内核 431

引导之前 433

Init进程 438

Kernel目录 439

mm目录 441

fs目录 443

网络 448

IPC和lib函数 449

Drivers 450

体系结构相关性 452

第十七章 最新进展 453

模块化 454

文件操作 459

访问用户空间 463

任务队列 469

中断管理 469

位操作 470

转换函数 470

vremap 471

虚拟内存 472

处理内核空间错误 472

其他变化 474