Linux设备驱动程序

Linux设备驱动程序
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Corbet J.) , , ,
2006-01
版次: 1
ISBN: 9787508338637
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 569页
字数: 597千字
正文语种: 简体中文
原版书名: Linux Device Drivers,Third Edition
  •   本书是经典著作《Linux设备驱动程序》的第三版。如果您希望在Linux操作系统上支持计算机外部设备,或者在Linux上运行新的硬件,或者只是希望一般性地了解Linux内核的编程,就一定要阅读本书。本书描述了如何针对各种设备编写驱动程序,而在过去,这些内容仅仅以口头形式交流,或者零星出现在神秘的代码注释中。
      本书的作者均是Linux社区的领导者。JonathanCorbet虽不是专职的内核代码贡献者,但他是备受关注的LWN.net新闻及信息网站的执行编辑。AlessandroRubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。GregKroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统(本书均有讲述)的维护者。
      本书的这个版本已针对Linux内核的2.6.10版本彻底更新过了。内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。
      要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,本书提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了PCI、USB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,本书也深入阐述了地址空间、异步事件以及I/O等方面的内容。
      本书涵盖的主题包括:
      ●完整的字符、块、tty(终端)及网络驱动程序
      ●驱动程序的调试
      ●中断
      ●计时问题
      ●并发、锁定和对称多处理器系统(SMP)
      ●内存管理和DMA
      ●驱动程序模型和sysfs
      ●热插拔设备
      ●对常见总线的描述,包括SCSI、PCI、USB和IEEE1394(火线)。   Jonahan Corbet,早在1981年就开始接触BSD Unix的源代码。那时,科罗拉多大学的一名讲师让他“修正”其中的分页算法。从那时起直到现在。他深入研究了他所遇到的每一个系统,其中包括VAX、Sun、Arden以及x86系统的驱动程序。他在1993年首次接触Linux系统,从此以后一直从事Linux的开发。Corbet先生是《Linux Weekly News》的创始人和执行主编。他和妻子及两个孩子生活在科罗多州的玻尔得市。
    前言
    第一章设备驱动程序简介
    设备驱动程序的作用
    内核功能划分
    设备和模块的分类
    安全问题
    版本编号
    许可证条款
    加入内核开发社团
    本书概要
    第二章构造和运行模块
    设置测试系统
    HelloWorld模块
    核心模块与应用程序的对比
    编译和装载
    内核符号表
    预备知识
    初始化和关闭
    模块参数
    在用户空间编写驱动程序
    快速参考
    第三章字符设备驱动程序
    scull的设计
    主设备号和次设备号
    一些重要的数据结构
    字符设备的注册
    open和release
    scull的内存使用
    read和write
    试试新设备
    快速参考
    第四章调试技术
    内核中的调试支持
    通过打印调试
    通过查询调试
    通过监视调试
    调试系统故障
    调试器和相关工具
    第五章并发和竞态
    scull的缺陷
    并发及其管理
    信号量和互斥体
    completion
    自旋锁
    锁陷阱
    除了锁之外的办法
    快速参考
    第六章高级字符驱动程序操作
    ioctl
    阻塞型I/O
    poll和select
    异步通知
    定位设备
    设备文件的访问控制
    快速参考
    第七章时间、延迟及延缓操作
    度量时间差
    获取当前时间
    延迟执行
    内核定时器
    tasklet
    工作队列
    快速参考
    第八章分配内存
    kmalloc函数的内幕
    后备高速缓存
    get_free_page和相关函数
    vmalloc及其辅助函数
    per-CPU变量
    获取大的缓冲区
    快速参考
    第九章与硬件通信
    I/O端口和I/O内存
    使用I/O端口
    I/O端口示例
    使用I/O内存
    快速参考
    第十章中断处理
    准备并口
    安装中断处理例程
    实现中断处理例程
    顶半部和底半部
    中断共享
    中断驱动的I/O
    快速参考
    第十一章内核的数据类型
    使用标准C语言类型
    为数据项分配确定的空间大小
    接口特定的类型
    其他有关移植性的问题
    链表
    快速参考
    第十二章PCI驱动程序
    PCI接口
    ISA回顾
    PC/104和PC/104+
    其他的PC总线
    SBus
    NuBus
    外部总线
    快速参考
    第十三章USB驱动程序
    USB设备基础
    USB和Sysfs
    USBurb
    编写USB驱动程序
    不使用urb的USB传输
    快速参考
    第十四章Linux设备模型
    kobject、kset和子系统
    低层sysfs操作
    热插拔事件的产生
    总线、设备和驱动程序

    各环节的整合
    热插拔
    处理固件
    快速索引
    第十五章内存映射和DMA
    Linux的内存管理
    mmap设备操作
    执行直接I/O访问
    直接内存访问
    快速参考
    第十六章块设备驱动程序
    注册
    块设备操作
    请求处理
    其他一些细节
    快速参考
    第十七章网络驱动程序
    snull设计
    连接到内核
    net_device结构细节
    打开和关闭
    数据包传输
    数据包的接收
    中断处理例程
    不使用接收中断
    链路状态的改变
    套接字缓冲区
    MAC地址解析
    定制ioctl命令
    统计信息
    组播
    其他知识点详解
    快速参考
    第十八章TTY驱动程序
    小型TTY驱动程序
    tty_driver函数指针
    TTY线路设置
    ioctls
    proc和sysfs对TTY设备的处理
    tty_driver结构详解
    tty_operations结构详解
    tty_struct结构详解
    快速参考
    参考书目
  • 内容简介:
      本书是经典著作《Linux设备驱动程序》的第三版。如果您希望在Linux操作系统上支持计算机外部设备,或者在Linux上运行新的硬件,或者只是希望一般性地了解Linux内核的编程,就一定要阅读本书。本书描述了如何针对各种设备编写驱动程序,而在过去,这些内容仅仅以口头形式交流,或者零星出现在神秘的代码注释中。
      本书的作者均是Linux社区的领导者。JonathanCorbet虽不是专职的内核代码贡献者,但他是备受关注的LWN.net新闻及信息网站的执行编辑。AlessandroRubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。GregKroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统(本书均有讲述)的维护者。
      本书的这个版本已针对Linux内核的2.6.10版本彻底更新过了。内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。
      要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,本书提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了PCI、USB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,本书也深入阐述了地址空间、异步事件以及I/O等方面的内容。
      本书涵盖的主题包括:
      ●完整的字符、块、tty(终端)及网络驱动程序
      ●驱动程序的调试
      ●中断
      ●计时问题
      ●并发、锁定和对称多处理器系统(SMP)
      ●内存管理和DMA
      ●驱动程序模型和sysfs
      ●热插拔设备
      ●对常见总线的描述,包括SCSI、PCI、USB和IEEE1394(火线)。
  • 作者简介:
      Jonahan Corbet,早在1981年就开始接触BSD Unix的源代码。那时,科罗拉多大学的一名讲师让他“修正”其中的分页算法。从那时起直到现在。他深入研究了他所遇到的每一个系统,其中包括VAX、Sun、Arden以及x86系统的驱动程序。他在1993年首次接触Linux系统,从此以后一直从事Linux的开发。Corbet先生是《Linux Weekly News》的创始人和执行主编。他和妻子及两个孩子生活在科罗多州的玻尔得市。
  • 目录:
    前言
    第一章设备驱动程序简介
    设备驱动程序的作用
    内核功能划分
    设备和模块的分类
    安全问题
    版本编号
    许可证条款
    加入内核开发社团
    本书概要
    第二章构造和运行模块
    设置测试系统
    HelloWorld模块
    核心模块与应用程序的对比
    编译和装载
    内核符号表
    预备知识
    初始化和关闭
    模块参数
    在用户空间编写驱动程序
    快速参考
    第三章字符设备驱动程序
    scull的设计
    主设备号和次设备号
    一些重要的数据结构
    字符设备的注册
    open和release
    scull的内存使用
    read和write
    试试新设备
    快速参考
    第四章调试技术
    内核中的调试支持
    通过打印调试
    通过查询调试
    通过监视调试
    调试系统故障
    调试器和相关工具
    第五章并发和竞态
    scull的缺陷
    并发及其管理
    信号量和互斥体
    completion
    自旋锁
    锁陷阱
    除了锁之外的办法
    快速参考
    第六章高级字符驱动程序操作
    ioctl
    阻塞型I/O
    poll和select
    异步通知
    定位设备
    设备文件的访问控制
    快速参考
    第七章时间、延迟及延缓操作
    度量时间差
    获取当前时间
    延迟执行
    内核定时器
    tasklet
    工作队列
    快速参考
    第八章分配内存
    kmalloc函数的内幕
    后备高速缓存
    get_free_page和相关函数
    vmalloc及其辅助函数
    per-CPU变量
    获取大的缓冲区
    快速参考
    第九章与硬件通信
    I/O端口和I/O内存
    使用I/O端口
    I/O端口示例
    使用I/O内存
    快速参考
    第十章中断处理
    准备并口
    安装中断处理例程
    实现中断处理例程
    顶半部和底半部
    中断共享
    中断驱动的I/O
    快速参考
    第十一章内核的数据类型
    使用标准C语言类型
    为数据项分配确定的空间大小
    接口特定的类型
    其他有关移植性的问题
    链表
    快速参考
    第十二章PCI驱动程序
    PCI接口
    ISA回顾
    PC/104和PC/104+
    其他的PC总线
    SBus
    NuBus
    外部总线
    快速参考
    第十三章USB驱动程序
    USB设备基础
    USB和Sysfs
    USBurb
    编写USB驱动程序
    不使用urb的USB传输
    快速参考
    第十四章Linux设备模型
    kobject、kset和子系统
    低层sysfs操作
    热插拔事件的产生
    总线、设备和驱动程序

    各环节的整合
    热插拔
    处理固件
    快速索引
    第十五章内存映射和DMA
    Linux的内存管理
    mmap设备操作
    执行直接I/O访问
    直接内存访问
    快速参考
    第十六章块设备驱动程序
    注册
    块设备操作
    请求处理
    其他一些细节
    快速参考
    第十七章网络驱动程序
    snull设计
    连接到内核
    net_device结构细节
    打开和关闭
    数据包传输
    数据包的接收
    中断处理例程
    不使用接收中断
    链路状态的改变
    套接字缓冲区
    MAC地址解析
    定制ioctl命令
    统计信息
    组播
    其他知识点详解
    快速参考
    第十八章TTY驱动程序
    小型TTY驱动程序
    tty_driver函数指针
    TTY线路设置
    ioctls
    proc和sysfs对TTY设备的处理
    tty_driver结构详解
    tty_operations结构详解
    tty_struct结构详解
    快速参考
    参考书目
查看详情
相关图书 / 更多
Linux设备驱动程序
Linux系统配置及运维项目化教程(工作手册式)
李志杰
Linux设备驱动程序
Linux服务器配置与管理(基于CentOS 7.2)
潘军
Linux设备驱动程序
Linux核心技术从小白到大牛
黄林峰 翟文学
Linux设备驱动程序
Linux网络服务器配置与管理项目教程(第三版)(微课版)
谢树新;潘玫玫;王浦衡
Linux设备驱动程序
Linux系统及编程基础
李晓红;唐晓君;肖鹏
Linux设备驱动程序
Linux嵌入式系统开发从小白到大牛
赵凯 著
Linux设备驱动程序
Linux实战宝典
大竹龍史 山本道子
Linux设备驱动程序
Linux网络操作系统(CentOS8.0)
刘猛、张文库、苏伟斌、王浩、黄超强 编
Linux设备驱动程序
Linux命令行与Shell脚本编程
何伟娜 郝军
Linux设备驱动程序
Linux系统编程
李成勇
Linux设备驱动程序
Linux服务器配置与管理(高等职业教育计算机专业规划教材)
李治西 编
Linux设备驱动程序
Lightroom Classic原创高级实战教程
姜同辉
您可能感兴趣 / 更多
Linux设备驱动程序
哥伦比亚中国文学史(全8卷)(2版)
[美]梅维恒 编;马小悟、张治、刘文楠 译
Linux设备驱动程序
精神病院里的正常人
[美]苏珊娜•、卡哈兰(Susannah、Cahal 著
Linux设备驱动程序
我们季候的诗歌:史蒂文斯诗文集
[美]华莱士·史蒂文斯 著;陈东东 编;陈东飚、张枣 译
Linux设备驱动程序
明天,很可能……(奇想国童眸图书,中英双语诗歌图画书)
[美]戴夫·艾格斯 著;陈赛 译;[美]莱恩·史密斯 绘
Linux设备驱动程序
血流动力学监测
[美]迈克尔·R·平斯基 编;陈德昌、刘娇 译
Linux设备驱动程序
别让鸽子开巴士!(平装全6册):3-6岁习惯养成互动绘本爱心树童书
[美]莫•威廉斯 著;阿甲 译
Linux设备驱动程序
梦魇之书(普利策奖诗人高威·金奈尔首部中译本诗集,美国当代诗歌史上颇具震撼力的诗集之一。)
[美]高威·金奈尔 著;叶春 译
Linux设备驱动程序
探寻复杂问题中的关键X:公共卫生与医疗服务体系建模
[美]桑杰·巴苏(Sanjay Basu) 著;王力男、陈玉倩、徐嘉婕 译
Linux设备驱动程序
神奇动物救援队:海归小轮船/猴子卡车/小蓝象直升机(全3册)(麦克米伦世纪童书馆)
[美]迈克尔·斯莱克 著;张雪萌 译
Linux设备驱动程序
临渊而立(美国畅销书作家罗宾·科克代表作:潜回历史深处,揭开千年未解古埃及法老之谜。)
[美]罗宾·科克 著;孙致礼、宋佩铭 译
Linux设备驱动程序
不平衡发展——自然、资本和空间的生产(文化地理学译丛)
[美]尼尔·史密斯(Neil Smith)著 刘怀玉 付清松 译
Linux设备驱动程序
美国伪狂犬病根除经历回顾
[美]美国农业部动植物检疫署 编;翟新验、张淼洁 译