`

目前最全面深入的Linux设备驱动程序著作

阅读更多

《精通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,讲述了无线连网和闪存等技术。最后讨论了用户空间的设备驱动程序。

分享到:
评论

相关推荐

    基于百度地图实现的定位功能.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    加载本地图片,绝对不会出现OOM.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    2015年中国移动电子竞技游戏发展趋势报告(1).zip

    2015年中国移动电子竞技游戏发展趋势报告(1).zip

    CKplayer-v6.8.zip

    ckplayer是一款在网页上播放视频的免费的播放器,功能强大,体积小巧,跨平台,使用起来随心所欲。 CKplayer播放器主要以adobe的flash(所使用的版本是CS5)平台开发,所以在支持flash插件的平台和浏览器上都可以使用,而无需下载其它插件,如果你需要修改完整版里提供的相关的flash源文件,请使用adobe的flash cs5以上版本打开源文件修改。 ckplayer同时也支持

    46.书籍学习平台的设计与实现-Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)论坛

    46.书籍学习平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)论坛,公告,付费专区,免费专区,销售,会员办理,书籍分类 详细设计文档链接:http://t.csdnimg.cn/GSeDN 内容概要: 全套项目源码+详尽文档,一站式解决您的学习与项目需求。 适用人群: 计算机、通信、人工智能、自动化等专业的学生、老师及从业者。 使用场景及目标: 无论是毕设、期末大作业还是课程设计,一键下载,轻松部署,助您轻松完成项目。 项目代码经过调试测试,确保直接运行,节省您的时间和精力。 其他说明: 项目整体具有较高的学习借鉴价值,基础能力强的可以在此基础上修改调整,以实现不同的功能。

    密码学实验报告2.docx

    密码学实验报告2.docx

    各种旋转动画的ImageView(1).zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    S7200基本编程指令.ppt

    S7200基本编程指令.ppt

    基于python+OpenCV的火车票识别源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于python+OpenCV的火车票识别源码+使用文档+全部资料(优秀项目).zip基于python+OpenCV的火车票识别源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    WordPress.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    移动机器人机械臂的设计小论文.doc

    移动机器人机械臂的设计小论文.doc

    基于Python+OpenCV+tinker的指纹识别系统,使用的硬件为AS608源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于Python+OpenCV+tinker的指纹识别系统,使用的硬件为AS608源码+使用文档+全部资料(优秀项目).zip基于Python+OpenCV+tinker的指纹识别系统,使用的硬件为AS608源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    xiuno模板知乎蓝魔改版源码附多个插件.zip

    xiuno模板知乎蓝魔改版源码附多个插件

    2022年 【24页】从孪生到融生,AIGC成为长期方向.zip

    2022年 【24页】从孪生到融生,AIGC成为长期方向.zip

    [信息与通信]使用EMIF将Xilinx_FPGA与TI_DSP平台接口.pdf

    [信息与通信]使用EMIF将Xilinx_FPGA与TI_DSP平台接口.pdf

    基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    仿QQ消息列表(ListView)滑动删除效果源码.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    最新招标流程图.pdf

    1.招标投标活动不受地区或者部门的限制。任何单位和个人不得违法限制或者排斥本地区、 本系统以外的法人或者其他组织参加投标,不得以任何方式非法干涉招标投标活动。 2.招标人设有标底,标底必须保密 3.可以不招标的情况之一都可以不招标:①不可替代②采购人自行建设、生产或提供③已通 过招标方式特许的④需要向原中标人采购的,否则影响配套要求的,但是不得超过合同金额 的10%⑤国家规定的其他特殊情况

    C++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 C++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zipC++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zipC++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    基于单片机的遥控机械臂设计.doc

    基于单片机的遥控机械臂设计.doc

Global site tag (gtag.js) - Google Analytics