《精通Linux驱动程序开发(英文版)》
在
Linux内核源代码树提供的各个子系统中,
drivers/
目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的
Linux内核支持多达
70余种设备驱动程序的庞大家族。
查看详情
本书相关信息:
http://turingbooks.iteye.com/admin/blogs/379419
《精通
Linux驱动程序开发(英文版)》主要讲解
Linux设备驱动程序,介绍了目前内核所支持的主要设备类型的设计与开发,其中包括当年我在开发
Linux-on-Watch项目时未遇到的设备。本书在讲解每种设备驱动程序家族的时候,先介绍与该驱动程序相关的技术,接着给出一个实际的开发例子,最后列出相关的内核源代码文件。在踏入
Linux设备驱动程序领域之前,本书先介绍了内核以及
Linux 2.6的重要特性,重点讲解了设备驱动程序编写者感兴趣的内核知识。
读者对象
本书面向渴望在
Linux内核上开发新设备驱动程序的中级程序员。要阅读本书,你需要具备操作系统相关的基本概念。比如,要知道什么是系统调用,理解为什么在内核开发中需要关注并发问题。本书假定你已经下载了
Linux,浏览过
Linux内核源代码,并至少浏览过一些相关的文档。另外,你必须能非常熟练地使用
C语言。
各章概述
前
4章为你阅读本书剩余部分打下了基础,接下来的
16章讨论了不同的
Linux设备驱动程序家族,之后的第
21章描述了设备驱动程序的调试技术,第
22章讲解了维护和交付设备驱动程序的相关事宜,最后一章给出了当你接到一个新设备驱动程序开发任务的时候,要首先查验的项目清单。
第
1章带你走入
Linux的世界。这一章教你下载内核源代码、进行小的代码修改并建立可启动的
Linux内核映像。
第
2章引导读者轻松地进入
Linux内核的内部结构,讲解一些必要的内核概念。这一章首先讲述了内核的启动进程,接下来描述了与驱动程序开发相关的内核
API,譬如内核定时器、并发管理以及内存分配等。
第
3章讲解了对驱动程序开发有用的一系列内核
API。这一章首先介绍了内核线程(它提供了一种在内核空间运行后台任务的能力),接下来讲解了一系列的辅助
API(如链表、工作队列、完成函数、通知链等)。这些辅助
API能简化代码、剔除内核中的冗余并有助于内核的长期维护。
第
4章为你打下驾驭
Linux设备驱动程序开发艺术的基础。这一章通过呈现一般的
PC兼容系统和嵌入式设备的体系结构的鸟瞰图介绍了设备和驱动程序,并讲解了中断处理和内核设备模型等基本的驱动程序概念。
第
5章介绍了
Linux字符设备驱动程序的体系结构。这一章引入了几个新概念,譬如轮询、异步通知和
I/O控制等。由于本书后面介绍的大多数设备都可以看作“超级”字符设备,所以这些概念也与后续章节密切相关。
第
6章讲解了内核串口设备驱动程序的层次结构。
第
7章讨论了内核中为键盘、鼠标和触摸屏控制器等输入设备服务的输入子系统。
第
8章讲解了通过
I2
C总线或
SMBus总线与系统连接的设备(如
EEPROM)的驱动程序。同时,这一章也介绍了
SPI总线和
1-wire总线等其他串行接口。
第
9章分析了
PCMCIA子系统。这一章将教会你如何编写含
PCMCIA或
Compact Flash组件的设备的驱动程序。
第
10章描述了内核对
PCI及其衍生总线设备的支持。
第
11章探讨了
USB的体系结构,并讲解了如何利用
Linux内核
USB子系统的
API来开发
USB设备驱动程序。
第
12章讲解了
Linux视频子系统。这一章分析了内核提供的帧缓冲结构的优点,并给出了帧缓冲设备驱动程序的编写方法。
第
13章描述了
Linux音频子系统的架构,并给出了音频设备驱动程序的实现方法。
第
14章集中描述存储设备(如硬盘)的驱动程序。在这一章里,你也将学习到
Linux块子系统所支持的几种不同的
I/O调度策略。
第
15章分析了网络设备驱动程序,你将学习内核中与网络相关的数据结构以及网络设备驱动程序与协议层接口的实现方法。
第
16章描述了各种无线网络设备的驱动程序,如蓝牙、红外、无线局域网
WiFi和蜂窝通信等。
第
17章讲解了如何让闪存在嵌入式设备上运行起来,这一章最后讲解了
PC上的
FWH(
Firmware Hub,固件中心)的驱动程序。
第
18章步入嵌入式
Linux的世界。这一章介绍嵌入式设备中的引导加载程序(
bootloader)、内核以及设备驱动程序等主要的固件组成。由于
Linux在嵌入式领域越来越受欢迎,你很有可能将从本书中学到的
Linux驱动程序开发技能应用于嵌入式领域。
第
19章讲解了如何在用户空间驱动各种设备。一些设备驱动程序(尤其是那些重策略、轻性能的设备)更适合在用户空间被驱动。这一章也分析了
Linux进程调度对用户空间设备驱动程序响应时间的影响。
第
20章描述了之前尚未论及的设备驱动程序系统,如错误侦测和校验(
EDAC)、火线接口以及
ACPI等。
第
21章讲解了用来调试
Linux内核代码的各种调试工具。
在这一章中,你也将学习到跟踪(
trace)工具、内核探测点(
probe)、崩溃转储(
crash-dump)和剖析器(
profiler)的使用方法。
当你在开发
Linux驱动程序的时候,请用本章学到的驱动调试技能武装自己。
第
22章给出了设备驱动程序软件开发生命周期的概况。
第
23章给出了当你开始进行一个新设备驱动程序开发工作时,应该查验的工作项目清单。本书最后是对“下一步怎么做”的思考。
设备驱动程序中有时候需要以汇编语言实现一些代码片段,因此,附录
A介绍了
Linux汇编编程的不同方面。
x86系统上的一些设备驱动程序直接或间接地依赖于
BIOS,因此,附录
B讲解了
Linux如何与
BIOS交互。附录
C描述了
2.6内核提供的
seq文件——用于监控和追踪数据点的辅助接口。
本书总体上根据设备和总线的复杂度进行组织,同时也结合了章与章之间互相依赖的客观情况。我们从讲解基本的设备类型(如字符设备、串口和输入设备)开始,紧接着介绍简单的串行总线(如
I2
C和
SMBus),之后介绍了
PCMCIA、
PCI和
USB等外部
I/O总线。由于视频、音频、块和网络设备通常通过这些
I/O总线与处理器连接,因此在介绍完这些总线之后,介绍了这些设备的驱动程序。书中接下来的部分面向嵌入式
Linux,讲述了无线连网和闪存等技术。最后讨论了用户空间的设备驱动程序。
分享到:
相关推荐
深入linux设备驱动程序内核机制 pdf深入linux设备驱动程序内核机制深入linux设备驱动程序内核机制深入linux设备驱动程序内核机制深入linux设备驱动程序内核机制深入linux设备驱动程序内核机制深入linux设备驱动程序...
本文深入探讨了Linux设备驱动程序的内核机制,并提供了一个简单的字符设备驱动程序示例。通过源码示例,详细讲解了驱动程序注册与注销、文件操作函数的实现、设备号分配等关键概念和操作方法。 通过学习本文,您将...
深入Linux设备驱动程序内核机制 知道好的下吧
LINUX设备驱动程序 嵌入式开发资料
深入Linux设备驱动程序内核机制.zip 有标签
Linux设备驱动程序学习(8)-分配内存 - Linux设备驱动程序
《精通Linux设备驱动程序开发》是Linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深人探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等...
Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序
嵌入式Linux设备驱动程序开发.pdf
Linux设备驱动程序学习(1)-字符设备驱动程序 - Linux设备驱动程序
如何编写Linux设备驱动程序,如何编写Linux设备驱动程序
精通LINUX设备驱动程序开发 高清 经典!
需要将精通LINUX设备驱动程序开发-2016 新版 01和精通LINUX设备驱动程序开发-2016 新版 02 共同下载解压
《精通Linux设备驱动程序开发》是Linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深人探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等...
学习 linux 设备驱动编程 的经典 教材!