搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
精通Linux设备驱动程序开发
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787115221674
  • 作      者:
    (印)Sreekrishnan Venkateswaran著
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2010
收藏
编辑推荐
  时至今日,Linux操作系统充分展现了其跨平台、开源、支持众多应用软件和网络协议等优点。已经成为应用最广泛的开发平台。
  在这部贴近实战、实例丰富的著作中。享誉世界的Linux驱动程序开发大师将与你面对面。系统深入地阐述如何为各种设备开发可靠的驱动程序。在回顾了驱动程序开发的各种基础知识和最新的Linux 2.6内核相关特性之后。作者不仅讲述了其他设备驱动程序图书中都会涉及的较容易的内容,更迎难而上,深入探讨了包括嵌入式Linux开发在内的驱动程序开发中必须面对的难点。比如PCMCIA、LJSB、12C、视频、音频、内存、无线通信等。揭示了许多技术内幕。对每种驱动程序。书中除了剖析关键技术。还带你查看相关的内核源代码。提供完整的实例。
  全面深入的Linux设备驱动程序名著,世界级Linux技术大师力作,大量底层技术内幕首次公开。
展开
作者简介
  温卡特斯瓦兰(Sreekrjshnan Menkateswaran),世界顶级Linux开发技术专家。在IBM工作多年。有丰富的嵌入式Linux和驱动程序开发经验。曾将Linux移植到了手表、音乐播放器、VolP电话、心脏起搏器以及远程门诊监控系统等设备上。目前是IBMI钱度公司的嵌入式解决方案组负责人。他曾担任LinuX Magazine的特邀编辑。主持内核技术专栏。
展开
内容介绍
  《精通Linux设备驱动程序开发》是Linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深人探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例。
  《精通Linux设备驱动程序开发》适合中高级Linux开发人员阅读。
展开
精彩书评
  “这是我读过的最全面的Linux设备驱动程序开发著作。”
  ——Theodore Tso,Linux基金会首席平台战略师。北美第一位内核开发者
  “我要找的就是这样一本书。它告诉我的不只是实例,更重要的是设备驱动程序的开发思路。”
  ——Anthony Lawrence,知名操作系统咨询师
展开
精彩书摘
  第1章 引言
  Linux具有诱人的魅力,它是一个由全世界不同民族、不同信仰、不同性别的人共同参与和协作的国际性项目。Linux免费提供源代码,并且具有与Unix类似的为人们所熟悉的应用程序编程环境,这一切造就了它今天的巨大成功。通过互联网从专家处即时获得的高质量的免费支持也发挥了重要作用,它促成了一个庞大的Linux社区。
  在技术方面,开发人员可以获得所有源码,并由此得出一些创新方案,他们因此感到无比振奋。譬如,你可以修改(hack)①Linux的源码,并做定制,让设备在几秒钟之内启动,而使用一个有专利的商业操作系统则很难完成这样的壮举。
  1.1  演进
  1991年,一位名为Linus Torvalds的芬兰大学生开发了Linux操作系统。起初这只是他个人的爱好,但它很快就发展成为在全世界范围内广受欢迎的先进的操作系统。Linux第一次发布时仅支持Intel 386处理器,但是后来,它的内核复杂性逐步增加,可以支持众多的体系架构、多处理器硬件和高性能集群。Linux所支持的体系结构非常多,主要支持的一些硬件架构是x86、IA64、ARM、PowerPC、Alpha、s390、MIPS和SPARC。Linux已经被移植到成千上万的基于这些处理器的硬件平台之上。与此同时,其内核还在不断完善,系统性能也在飞速提升。
展开
目录
第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
11.1 I.ISB体系架构
11.1.1 总线速度
11.1.2 主机控制器
11.1.3 传输模式
11.1.4 寻址
11.2 Linux.USB子系统
11.3 驱动程序的数据结构
11.3.1 usb—device结构体
11.3.2 URB
11.3.3 管道
11.3.4 描述符结构
11.4 枚举
11.5 设备实例:遥测卡
11.5.1 初始化和探测过程
11.5.2 卡寄存器的访问
11.5.3 数据传输
11.6 类驱动程序
11.6.1 大容量存储设备
11.6.2 USB.串行端口转换器
11.6.3 人机接口设备
11.6.4 蓝牙
11.7 gadget驱动程序
11.8 调试
11.9 查看源代码

第12章 视频驱动程序
12.1 显示架构
12.2 Linux视频子系统
12.3 显示参数
12.4 帧缓冲API
12.5 帧缓冲驱动程序
12.6 控制台驱动程序
12.6.1 设备实例:手机
12.6.2 启动1ogo
12.7 调试
12.8 查看源代码

第13章 音频驱动程序
13.1 音频架构
13.2 Linux声音子系统,
13.3 设备实例:MP3播放器
13.3.1 驱动程序函数和结构体
13.3.2 ALSA编程
13.4 调试
13.5 查看源代码

第14章 块设备驱动程序
14.1 存储技术
14.2 Linux块I/O层
14.3 I/O调度器
14.4 块驱动程序数据结构和方法
14.5 设备实例:简单存储控制器
14.5.1 初始化
14.5.2 块设备操作
14.5.3 磁盘访问
14.6 高级主题
14.7 调试
14.8 查看源代码

第15章 网络接口卡
15.1 驱动程序数据结构
15.1.1 套接字缓冲区
15.1.2 网络设备接口
15.1.3 激活
15.1.4 数据传输
15.1.5 看门狗
15.1.6 统计
15.1.7 配置
15.1.8 总线相关内容
15.2 与协议层会话
15.2.1 接收路径
15.2.2 发送路径
15.2.3 流量控制
15.3 缓冲区管理和并发控制
15.4 设备实例:以太网NIC
15.5 ISA网络驱动程序
15.6 ATM
15.7 网络吞吐量
15.7.1 驱动程序性能
15.7.2 协议性能
15.8 查看源代码

第16章 Linux无线设备驱动
16.1 蓝牙
16.1.1 B1ueZ
16.1.2 设备实例:CF卡
16.1.3 设备实例:USB适配器
16.1.4 RFCOMM
16.1.5 网络
16.1.6 HID
16.1.7 音频
16.1.8 调试
16.1.9 关于源代码
16.2 红外
16.2.1 Linux—IrDA
16.2.2 设备实例:超级I/0芯片
16.2.3 设备实例:IRDong1e
16.2.4 IrCOMM
16.2.5 联网
16.2.6 IrDA套接字
16.2.7 LIRC
16.2.8 查看源代码
16.3 WiFi
16.3.1 配置
16.3.2 设备驱动程序
16.3.3 查看源代码
16.4 蜂窝网络
16.4.1 GPRS
16.4.2 GDMA
16.5 当前趋势

第17章 存储技术设备
17.1 什么是闪存
17.2 Linux.MTD子系统
17.3 映射驱动程序
17.4 NOR芯片驱动程序
17.5 NAND芯片驱动程序
17.6 用户模块
17.6.1 块设备模拟
17.6.2 字符设备模拟
17.6.3 JFFS2
17.6.4 YAFFS2
17.7 MTD工具
17.8 配置MTD
17.9 XIP
17.10 FWH
17.11 调试
17.12 查看源代码

第18章 嵌入式Linux
18.1 挑战
18.2 元器件选择
18.3 工具链
18.4 Boot1oader
18.5 内存布局
18.6 内核移植
18.7 嵌入式驱动程序
18.7.1 闪存
18.7.2 LIART
18.7.3 按钮和滚轮
18.7.4 PCMCIA/CF
18.7.5 SD/MMC
18.7.6 USB
18.7.7 RTC
18.7.8 音频
18.7.9 触摸屏
18.7.10 视频
18.7.11 CPLD/FPGA
18.7.12 连接性
18.7.13 专用领域电子器件
……
第19章 用户空间的驱动程序
第20章 其他设备和驱动程序
第21章 高度设备驱动程序
第22章 维护与发布
第23章 结束语
附录
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证