精通linux:设备驱动程序开发pdf高清版
分享到:
精通linux:设备驱动程序开发2010年6月由人民邮电出版社出版发行,是一本讲解如何编程Linux设备驱动程序的书籍,是Linux设备驱动程序开发领域的权威著作。要成为一名能巧妙地解决多种问题的高级内核工程师,就必须理解今天的Linux内核提供的各种功能和设施。小编分享的这本书总共23章,全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深人探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例等等。精通Linux设备驱动程序开发适合中高级Linux开发人员阅读。
小编温馨提醒:这本书的内容比较多,要注意劳逸结合哦
1.1 演进
1.2 GNUCopy1eft
1.3 kerne1.org
1.4 邮件列表和论坛
1.5 Linux发行版
1.6 查看源代码
1.7 编译内核
1.8 可加载的模块
1.9 整装待发
第2章 内核
2.1 启动过程
2.1.1 BIOS.pmvided physica1 RAM map
2.1.2 758MB LOWMEM avai1ab1e
2.1.3 Kerne1 command 1in:r oroot=/dev/hda1
2.1.4 Ca1ibrating de1ay BogoMIPS(1pj=2394935)
2.1.5 Checking HLT instruction
2.1.6 NET:Registered protoco1 fami1y2
2.1.7 Freeing initrd memory:387kfreed
2.1.8 io schedu1er anticipatory registered(defau1t)
2.1.9 Setting up standard PCI resources
2.1.10 EXT3-fs:mountedfi1esystem
2.1.11 INIT:version2.8 5booting
2.2 内核模式和用户模式
2.3 进程上下文和中断上下文
2.4 内核定时器
2.4.1 HZ和Jiffies
2.4.2 长延时
2.4.3 短延时
2.4.4 Pentium时间戳计数器
2.4.5 实时钟
2.5 内核中的并发
2.5.1 自旋锁和互斥体
2.5.2 原子操作
2.5.3 读一写锁
2.5.4 调试
2.6 proc文件系统
2.7 内存分配
2.8 查看源代码
第3章 内核组件
3.1 内核线程
3.1.1 创建内核线程
3.1.2 进程状态和等待队列
3.1.3 用户模式辅助程序
3.2 辅助接口
3.2.1 链表
3.2.2 散列链表3.2.3 工作队列
3.2.4 通知链
3.2.5 完成接口
3.2.6 kthread辅助接口
3.2.7 错误处理助手3.3 查看源代码
第4章 基本概念
4.1 设备和驱动程序介绍
4.2 中断处理
4.2.1 中断上下文
4.2.2 分配IRQ号
4.2.3 设备实例:导航杆
4.2.4 softirq和task1et
4.3 Linux设备模型
4.3.1 udev
4.3.2 sysfs、kobject和设备类
4.3.3 热插拔和冷插拔
4.3.4 微码下载
4.3.5 模块自动加载
4.4 内存屏障
4.5 电源管理
4.6 查看源代码
第5章 字符设备驱动程序
5.1 字符设备驱动程序基础
5.2 设备实例:系统CMOS
5.2.1 驱动程序初始化
5.2.2 打开与释放
5.2.3 数据交换
5.2.4 查找
5.2.5 控制
5.3 检测数据可用性
5.3.1 轮询
5.3.2.Fasync
5.4 和并行端口交互
5.5 RTC子系统
5.6 伪字符驱动程序
5.7 混杂驱动程序
5.8 字符设备驱动程序注意事项
5.9 查看源代码
第6章 串行设备驱动程序
6.1 层次架构
6.2 UART驱动程序
6.2.1 设备实例:手机
6.2.2 RS.4 85
6.3 TTY驱动程序:
6.4 线路规程
6.5 查看源代码
第7章 输入设备驱动程序
7.1 输入事件驱动程序
7.2 输入设备驱动程序
7.2.1 ser1o
7.2.2 键盘
7.2.3 鼠标
7.2.4 触摸控制器
7.2.5 加速度传感器
7.2.6 输出事件
7.3 调试
7.4 查看源代码
第8章 I2C协议
8.1 12C/SMBus是什么
8.2 I2C核心
8.3 总线事务
8.4.设备实例:EEPROM
8.4.1 初始化
8.4.2 探测设备
8.4.3 检查适配器的功能
8.4.4 访问设备
8.4.5 其他函数
8.5 设备实例:实时时钟
8.6 i2c.dev
8.7 使用LM.Sensors监控硬件
8.8 SPI总线
8.9 Wire总线
8.10 调试
8.11 查看源代码
第9章 PCMCIA和CF
9.1 PCMCIA/CF是什么
9.2 Linux—PCMCIA子系统
9.3 主机控制器驱动程序
9.4 PCMCIA核心
9.5 驱动程序服务
9.6 客户驱动程序
9.6.1 数据结构
9.6.2 设备实例:PCMCIA卡
9.7 将零件组装在一起
9.8 PCMCIA存储
9.9 串行PCMCIA
9.10 调试
9.11 查看源代码
第10章 PCI
10.1 PCI系列
10.2 寻址和识别
10.3 访问PCI
10.3.1 配置区
10.3.2 I/O和内存
10.4 DMA
10.5 设备实例:以太网一调制解调器卡
10.5.1 初始化和探测
10.5.2 数据传输
10.6 调试
10.7 查看源代码
第11章 USB
......
第12章 视频驱动程序
......
第13章 音频驱动程序
......
第14章 块设备驱动程序
......
第15章 网络接口卡
......
第16章 Linux无线设备驱动
.......
第17章 存储技术设备
......
第18章 嵌入式Linux
……
第19章 用户空间的驱动程序
第20章 其他设备和驱动程序
第21章 高度设备驱动程序
第22章 维护与发布
第23章 结束语
附录
20世纪90年代末,我们IBM的一群同事将Linux内核移植到了一种智能手表上。目标设备虽然微不足道,但是移植Linux的任务却相当艰巨。在当时,内核中还不存在MTD(MemoryTeclmology Device,内存技术设备)子系统,这意味着为了让文件系统能够运行在这种手表的闪存中,我们不得不从头开发必要的存储驱动程序。由于当时内核的输入事件驱动程序接口尚未诞生,因此手表的触摸屏与用户应用程序的接口非常复杂。让x Windows运行在手表的LCD上十分困难,因为x Windows和帧缓冲设备驱动程序搭配得并不好。如果你戴着一块防水的Linux智能手表,却不能躺在浴缸里实时获得股票行情,那么这块手表还有什么用呢?Linux几年前就已集成了蓝牙技术,而当时我们却花费了数月的时间将一种专有的蓝牙协议栈移植到手表上,从而使得这种手表可以联上因特网。电源管理系统虽然只能从手表的电池中多“榨出”短短几个小时时间,但也算够意思了;实际上,为了解决这个棘手的问题,我们也没少花心思。那时候,Linux红外项目Linux-Infrared还不稳定,而为了使用红外键盘输入数据,我们不得不与其协议栈小心翼翼地周旋。最后,由于当时还没有能应用于消费类电子产品的成型的编译器发行版,我们也只能自己编个编译器,并交叉编译出一个紧凑的应用程序集。
时光飞逝,当年的小企鹅已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,就必须理解今天的Linux内核提供的各种功能和设施.
.......
禁用于商业用途!如果您喜欢《精通linux:设备驱动程序开发》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
小编温馨提醒:这本书的内容比较多,要注意劳逸结合哦
作者介绍:
温卡特斯瓦兰(Sreekrjshnan Menkateswaran),世界顶级Linux开发技术专家。在IBM工作多年。有丰富的嵌入式Linux和驱动程序开发经验。曾将Linux移植到了手表、音乐播放器、VolP电话、心脏起搏器以及远程门诊监控系统等设备上。目前是IBMI钱度公司的嵌入式解决方案组负责人。他曾担任LinuX Magazine的特邀编辑。主持内核技术专栏。目录:
第1章 引言1.1 演进
1.2 GNUCopy1eft
1.3 kerne1.org
1.4 邮件列表和论坛
1.5 Linux发行版
1.6 查看源代码
1.7 编译内核
1.8 可加载的模块
1.9 整装待发
第2章 内核
2.1 启动过程
2.1.1 BIOS.pmvided physica1 RAM map
2.1.2 758MB LOWMEM avai1ab1e
2.1.3 Kerne1 command 1in:r oroot=/dev/hda1
2.1.4 Ca1ibrating de1ay BogoMIPS(1pj=2394935)
2.1.5 Checking HLT instruction
2.1.6 NET:Registered protoco1 fami1y2
2.1.7 Freeing initrd memory:387kfreed
2.1.8 io schedu1er anticipatory registered(defau1t)
2.1.9 Setting up standard PCI resources
2.1.10 EXT3-fs:mountedfi1esystem
2.1.11 INIT:version2.8 5booting
2.2 内核模式和用户模式
2.3 进程上下文和中断上下文
2.4 内核定时器
2.4.1 HZ和Jiffies
2.4.2 长延时
2.4.3 短延时
2.4.4 Pentium时间戳计数器
2.4.5 实时钟
2.5 内核中的并发
2.5.1 自旋锁和互斥体
2.5.2 原子操作
2.5.3 读一写锁
2.5.4 调试
2.6 proc文件系统
2.7 内存分配
2.8 查看源代码
第3章 内核组件
3.1 内核线程
3.1.1 创建内核线程
3.1.2 进程状态和等待队列
3.1.3 用户模式辅助程序
3.2 辅助接口
3.2.1 链表
3.2.2 散列链表3.2.3 工作队列
3.2.4 通知链
3.2.5 完成接口
3.2.6 kthread辅助接口
3.2.7 错误处理助手3.3 查看源代码
第4章 基本概念
4.1 设备和驱动程序介绍
4.2 中断处理
4.2.1 中断上下文
4.2.2 分配IRQ号
4.2.3 设备实例:导航杆
4.2.4 softirq和task1et
4.3 Linux设备模型
4.3.1 udev
4.3.2 sysfs、kobject和设备类
4.3.3 热插拔和冷插拔
4.3.4 微码下载
4.3.5 模块自动加载
4.4 内存屏障
4.5 电源管理
4.6 查看源代码
第5章 字符设备驱动程序
5.1 字符设备驱动程序基础
5.2 设备实例:系统CMOS
5.2.1 驱动程序初始化
5.2.2 打开与释放
5.2.3 数据交换
5.2.4 查找
5.2.5 控制
5.3 检测数据可用性
5.3.1 轮询
5.3.2.Fasync
5.4 和并行端口交互
5.5 RTC子系统
5.6 伪字符驱动程序
5.7 混杂驱动程序
5.8 字符设备驱动程序注意事项
5.9 查看源代码
第6章 串行设备驱动程序
6.1 层次架构
6.2 UART驱动程序
6.2.1 设备实例:手机
6.2.2 RS.4 85
6.3 TTY驱动程序:
6.4 线路规程
6.5 查看源代码
第7章 输入设备驱动程序
7.1 输入事件驱动程序
7.2 输入设备驱动程序
7.2.1 ser1o
7.2.2 键盘
7.2.3 鼠标
7.2.4 触摸控制器
7.2.5 加速度传感器
7.2.6 输出事件
7.3 调试
7.4 查看源代码
第8章 I2C协议
8.1 12C/SMBus是什么
8.2 I2C核心
8.3 总线事务
8.4.设备实例:EEPROM
8.4.1 初始化
8.4.2 探测设备
8.4.3 检查适配器的功能
8.4.4 访问设备
8.4.5 其他函数
8.5 设备实例:实时时钟
8.6 i2c.dev
8.7 使用LM.Sensors监控硬件
8.8 SPI总线
8.9 Wire总线
8.10 调试
8.11 查看源代码
第9章 PCMCIA和CF
9.1 PCMCIA/CF是什么
9.2 Linux—PCMCIA子系统
9.3 主机控制器驱动程序
9.4 PCMCIA核心
9.5 驱动程序服务
9.6 客户驱动程序
9.6.1 数据结构
9.6.2 设备实例:PCMCIA卡
9.7 将零件组装在一起
9.8 PCMCIA存储
9.9 串行PCMCIA
9.10 调试
9.11 查看源代码
第10章 PCI
10.1 PCI系列
10.2 寻址和识别
10.3 访问PCI
10.3.1 配置区
10.3.2 I/O和内存
10.4 DMA
10.5 设备实例:以太网一调制解调器卡
10.5.1 初始化和探测
10.5.2 数据传输
10.6 调试
10.7 查看源代码
第11章 USB
......
第12章 视频驱动程序
......
第13章 音频驱动程序
......
第14章 块设备驱动程序
......
第15章 网络接口卡
......
第16章 Linux无线设备驱动
.......
第17章 存储技术设备
......
第18章 嵌入式Linux
……
第19章 用户空间的驱动程序
第20章 其他设备和驱动程序
第21章 高度设备驱动程序
第22章 维护与发布
第23章 结束语
附录
前言:
......20世纪90年代末,我们IBM的一群同事将Linux内核移植到了一种智能手表上。目标设备虽然微不足道,但是移植Linux的任务却相当艰巨。在当时,内核中还不存在MTD(MemoryTeclmology Device,内存技术设备)子系统,这意味着为了让文件系统能够运行在这种手表的闪存中,我们不得不从头开发必要的存储驱动程序。由于当时内核的输入事件驱动程序接口尚未诞生,因此手表的触摸屏与用户应用程序的接口非常复杂。让x Windows运行在手表的LCD上十分困难,因为x Windows和帧缓冲设备驱动程序搭配得并不好。如果你戴着一块防水的Linux智能手表,却不能躺在浴缸里实时获得股票行情,那么这块手表还有什么用呢?Linux几年前就已集成了蓝牙技术,而当时我们却花费了数月的时间将一种专有的蓝牙协议栈移植到手表上,从而使得这种手表可以联上因特网。电源管理系统虽然只能从手表的电池中多“榨出”短短几个小时时间,但也算够意思了;实际上,为了解决这个棘手的问题,我们也没少花心思。那时候,Linux红外项目Linux-Infrared还不稳定,而为了使用红外键盘输入数据,我们不得不与其协议栈小心翼翼地周旋。最后,由于当时还没有能应用于消费类电子产品的成型的编译器发行版,我们也只能自己编个编译器,并交叉编译出一个紧凑的应用程序集。
时光飞逝,当年的小企鹅已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,就必须理解今天的Linux内核提供的各种功能和设施.
.......
免责声明:
来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。禁用于商业用途!如果您喜欢《精通linux:设备驱动程序开发》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
使用说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
精通linux:设备驱动程序开发pdf高清版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: