LINUX设备驱动程序:涵盖Linux 2.4

LINUX设备驱动程序:涵盖Linux 2.4
作 者: Alessandro Rubini Jonathan Corbet 魏永明
出版社: 中国电力出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Linux
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Alessandro Rubini在获得电子工程师资格后不久,他就安装了Linux 0.99.14版本。后来,他在Pavia大学获得了计算机科学博士学位。但很快就离开了大学,因为他实在不想写文章。现在,他是一名自由撰写人,编写有关设备驱动程序方面的文章(这也是命运的安排)。在他的小孩出世之前,他曾是一名年轻的黑客,而现在他是一位老练、偏爱非PC计算机平台开发的自由软件鼓吹者。

内容简介

本书面向的读者是那些想在Linux操作系统下支持各种计算机外设,或者想开发新的硬件并在Linux下运行的人们。Linux是Unix市场中增长最快的部分,并且在许多应用领域获得了广泛的支持。现在,人们越来越清楚地认识到Linux是嵌入式系统的一个极佳平台,本书第二版已经成为该领域的经典之作。本书作者将以往那些口述式的经验和知识、或者隐晦的源代码注释上升为系统地讲述各种设备驱动程序编写方法的著作。Linux内核的2.4版在设备驱动程序方面发生了重大变化,它简化了许多工作,但同时提供了许多精细的新功能,可让驱动程序更加高效、灵活。本书第二版透彻地讲述了这些变化,并介绍了许多新的处理器和总线结构。要阅读和欣赏本书,并不要求您是一名内核黑客,您所需要具备的只是对C语言和一些Unix系统调用的背景知识的了解。本书循序渐进地讲述了字符设备、块设备和网络接口的驱动程序,并且给出了功能完善的示例驱动程序。这些示例驱动程序说明了驱动程序设计中的许多问题以及解决方法,并且不需要任何特定的硬件就可以运行。本书第二版的重要修订包括:对对称多处理器(SMP)系统和锁机制的讨论、对新CPU以及新近支持的总线的讨论等等。如果您对操作系统完成其任务的方式感兴趣,那么本书还提供了对地址空间、异步事件和I/O的深入讨论。可移植性是本书的一个主要关注点。尽管本书主要讲述2.4版本,但在可能的情况下,我们也讲述了2.4版本以前直到2.0版本的相关内容。本书还介绍了如何在各种硬件平台上实现最大程度的可移植性。示例驱动程序已经在IA32(PC)和IA64、PowerPC、SPARC和SPARC64、Alpha、ARM以及MIPS等平台上经过了测试。

图书目录

前言

第一章 设备驱动程序简介

设备驱动程序的作用

内核功能划分

设备和模块分类

安全问题

版本编号

许可证条款

加入内核开发社团

本书概要

第二章 构建和运行模块

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

编译和装载

内核符号表

初始化和关闭

使用资源

自动和手动配置

在用户空间编写驱动程序

向后兼容性

快速参考

第三章 字符设备驱动程序

scull的设计

主设备号和次设备号

文件操作

file结构

open和release

scull的内存使用

竞态简介

read 和 write

试试新设备

设备文件系统

向后兼容性

快速参考

第四章 调试技术

通过输出调试

通过查询调试

通过监视调试

调试系统故障

调试程序和相关工具

第五章 增强的字符驱动程序操作

inctl

阻塞型I/O

poll和 select

异步通知

定位设备

设备文件的访问控制

向后兼容性

快速参考

第六章 时间流

内核中的时间间隔

获取当前时间

延迟执行

任务队列

内核定时器

向后兼容性

快速参考

第七章 获取内存

kmalloc函数的内幕

后备高速缓存

get_free_page和相关函数

vmalloc与相关函数

引导时的内存分配

向后兼容性

快速参考

第八章 硬件管理

I/O端口和 I/O内存

使用I/O端口

使用数字 I/O端口

使用I/O内存

向后兼容性

快速参考

第九章 中断处理

中断的整体控制

准备并口

安装中断处理程序

实现中断处理程序

tasklet和底半部处理

中断共享

中断驱动的I/O

竞态

向后兼容性

快速参考

第十章 合理使用数据类型

使用标准C语言类型

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

接口特定的类型

其他有关移植性的问题

链表

快速参考

第十一章 kmod和高级模块化

按需加载模块

模块间通信

模块中的版本控制

向后兼容性

快速参考

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

注册驱动程序

头文件bib.h

请求处理简介

请求处理详解

挂装和卸装是如何工作的

ioctl方法

可移动设备

可分区设备

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

向后兼容性

快速参考

第十三章 mmap和 DMA

Linux的内存管理

mmap设备操作

kiobuf接口

直接内存访问和总线主控

向后兼容性

快速参考

第十四章 网络驱动程序

snull的设计

连接到内核

net_device结构的细节

打开和关闭

数据包传输

数据包的接收

中断处理程序

链路状态的改变

套接字缓冲区

MAC地址解析

定制ioctl命令

统计信息

组播

向后兼容性

快速参考

第十五章 外设总线综述

PCI接口

ISA回顾

PC/104和 PC/104+

其他的PC总线

SBus

NuBus

外部总线

向后兼容性

快速参考

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

引导内核

引导之前

init进程

kernel目录

fs目录

mm目录

net目录

ipc和lib

include和 arch

drivers目录

参考文献

词汇表