精通Linux设备驱动程序开发
2010-5
人民邮电出版社
Sreekrishnan Venkateswaran
468
宋宝华,吴国成,史海滨,何昭然
无
20世纪90年代末,我们IBM的一群同事将Linux内核移植到了一种智能手表上。目标设备虽然微不足道,但是移植Linux的任务却相当艰巨。在当时,内核中还不存在MTD(MemoryTeclmology Device,内存技术设备)子系统,这意味着为了让文件系统能够运行在这种手表的闪存中,我们不得不从头开发必要的存储驱动程序。由于当时内核的输入事件驱动程序接口尚未诞生,因此手表的触摸屏与用户应用程序的接口非常复杂。让x Windows运行在手表的LCD上十分困难,因为x Windows和帧缓冲设备驱动程序搭配得并不好。如果你戴着一块防水的Linux智能手表,却不能躺在浴缸里实时获得股票行情,那么这块手表还有什么用呢?Linux几年前就已集成了蓝牙技术,而当时我们却花费了数月的时间将一种专有的蓝牙协议栈移植到手表上,从而使得这种手表可以联上因特网。电源管理系统虽然只能从手表的电池中多“榨出”短短几个小时时间,但也算够意思了;实际上,为了解决这个棘手的问题,我们也没少花心思。那时候,Linux红外项目Linux-Infrared还不稳定,而为了使用红外键盘输入数据,我们不得不与其协议栈小心翼翼地周旋。最后,由于当时还没有能应用于消费类电子产品的成型的编译器发行版,我们也只能自己编个编译器,并交叉编译出一个紧凑的应用程序集。时光飞逝,当年的小企鹅已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,就必须理解今天的Linux内核提供的各种功能和设施。
本书是Linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例。 本书适合中高级Linux开发人员阅读。
作者:(印度)温卡特斯瓦兰(Sreekrishnan Venkateswaran) 译者:宋宝华 何昭然 史海滨 等温卡特斯瓦兰(Sreekrjshnan Menkateswaran),世界顶级Linux开发技术专家。在IBM工作多年。有丰富的嵌入式Linux和驱动程序开发经验。曾将Linux移植到了手表、音乐播放器、VolP电话、心脏起搏器以及远程门诊监控系统等设备上。目前是IBMI钱度公司的嵌入式解决方案组负责人。他曾担任LinuX Magazine的特邀编辑。主持内核技术专栏。
第1章 引言 第2章 内核 第3章 内核组件 第4章 基本概念 第5章 字符设备驱动程序 第6章 串行设备驱动程序 第7章 输入设备驱动程序 第8章 I2C协议第9章 PCMCIA和CF 第10章 PCI 第11章 USB第12章 视频驱动程序 第13章 音频驱动程序 第14章 块设备驱动程序 第15章 网络接口卡 第16章 Linux无线设备驱动 第17章 存储技术设备 第18章 嵌入式Linux 第19章 用户空间的驱动程序 第20章 其他设备和驱动程序 第21章 调试设备驱动程序 第22章 维护与发布 第23章 结束语 附录A Linux汇编 附录B Linux与BIOS 附录C seq文件
插图:为了确保系统在处理器故障时仍然能够进行恢复,即使主处理器上集成有强大的看门狗模块(例如我们的例子中),一些规则制定者规定要使用外部看门狗芯片。因此,一些嵌入式设备有时使用较为便宜的、简单的看门狗芯片(例如Maxim的MAX6730),外部的看门狗芯片通过硬件连线发挥作用,而不像片上集成看门狗通过寄存器接口产生效果。看门狗的输入引脚在固定的复位超时时间内如果没有检测到电压脉冲,就会设置复位引脚。复位引脚和处理器的复位逻辑相连,而输入引脚和处理器的通用目的I/O端口(GPIO)相连。软件必须周期性地在芯片的复位超时时间内向输入引脚输送脉冲,以免看门狗复位。如果为此类设备编写驱动程序,ioctl方法并不合适。当应用软件需要向相应的设备节点写入数据时,就会利用驱动程序提供的write方法向输入引脚输送脉冲。为了帮助生产和现场排障,看门狗通过导线和处理器相连,这样可以通过断开GPIO引脚和看门狗的连接来停用看门狗。考虑到起动时间,外部看门狗芯片通常允许较长的初始超时时间,但随后的复位超时时间会变短。
“这是我读过的最全面的Linux设备驱动程序开发著作。” ——Theodore Ts'o,Linux基金会首席平台战略师。北美第一位内核开发者“我要找的就是这样一本书。它告诉我的不只是实例,更重要的是设备驱动程序的开发思路。” ——Anthony Lawrence,知名操作系统咨询师
《精通Linux设备驱动程序开发》:时至今日,Linux操作系统充分展现了其跨平台、开源、支持众多应用软件和网络协议等优点。已经成为应用最广泛的开发平台。在这部贴近实战、实例丰富的著作中。享誉世界的Linux驱动程序开发大师将与你面对面。系统深入地阐述如何为各种设备开发可靠的驱动程序。在回顾了驱动程序开发的各种基础知识和最新的Linux 2.6内核相关特性之后。作者不仅讲述了其他设备驱动程序图书中都会涉及的较容易的内容,更迎难而上,深入探讨了包括嵌入式Linux开发在内的驱动程序开发中必须面对的难点。比如PCMCIA、LJSB、12C、视频、音频、内存、无线通信等。揭示了许多技术内幕。对每种驱动程序。书中除了剖析关键技术。还带你查看相关的内核源代码。提供完整的实例。全面深入的Linux设备驱动程序名著,世界级Linux技术大师力作,大量底层技术内幕首次公开。
无
作者不仅讲述了设备驱动的内容,同时深入探讨了嵌入式linux开发在内的驱动程序开发中面对的一些难点....
精通Linux设备驱动程序开发这本书有一定的难度,适合有一定基础的人看
精通Linux设备驱动程序开发这本书很好。。。。。
Linux设备驱动的的经典书籍就那么几本。总感觉老外写书的通病,通俗易懂,内容也比较全,但就是讲的不深。具体使用还用多配合Google啊。至于做嵌入式Linux开发,这本书也只能是参考,引导入门。适合做设备驱动的初学者。
个人觉得这本书可以和《Linux设备驱动 第三版》并称Linux驱动界的倚天屠龙,不过这个书还是稍微深入一些,没有几页就进入主题,适合有基础的朋友。
结合《linux设备驱动程序》看,一个理论一个实践,不错
设备驱动程序的经典,适合中级开发人员
学Linux驱动跟内核的好书,很经典
内容比较粗略,对于Linux上内核开发有帮助。
Linxu驱动程序开发必备
linux驱动经典
很好,有我想看的视频驱动,无线设备蓝牙,红外 wifi。
非常好,内容详细、深入,并且通俗易懂,适合学习,是学习LINUX的必备用书
适合有一定基础的开发人员阅读。
内容很全面,这么薄的书,全面了内容的深度就会下降,很适合想全面了解驱动的同学
这本书同学推荐了好久,说是入门驱动的必读之物,所以毫不犹豫的就买下了,确实有点小贵。。。
设备多,但每个设备不可能都详细
书不错,适合有基础的读者
书挺好,正在阅读中
结合别的相关书籍,这本书还是很不错的
没有想象中的那么好,入门还行,但说得不是很深入
看了一大半了,感觉这书很好很经典,例程也很方便,支持!
覆盖的内容较全,写的较简,可与其它书籍一起学习
收到书发现有了一点破损,有些遗憾。
好好看吧,很不错的 书,不多说了
值得一读的书,并且书的质量很好。
点到为止,很好的一本书。
好像对朋友很有帮助~~~
还不错,例子讲的很详细,但是不合适初学者。
实用效果非常好哦
帮同事买的,封面上好像有刀划了的痕迹,内容还不知道怎样
感觉还不错,送货快
比较全面实用,翻译的也不错!
前一天晚上下单,第二天上午就收到了,效率没得说
强迫自己个去看、、、
学到的很多
给老公买的,老公说很好,爱不释手
一本好书,值得细细研读。
the content is enough.
送货速度超快,纸张不错
还没有看完。等看完在评论*_*
还可以的,值得买回家好好看看。
本书是Linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例。
书挺好的,建议刚入手驱动,内核的初级开发人员看看,代码比较多。大牛的话偶尔可以翻翻。
写的一般,没什么新意,和一般的Linux驱动的书没多大差别。
比较新的驱动书籍,基于较新的内核,讲解的驱动类型比ldd3全面一些
对驱动开发写得很详细,例子丰富
一直就有买的冲动,图灵程序设计书籍还是值得一读。
感觉这本书不适合初学者,比较适合工程师级别
内容涉及很广泛,但比价使用,适合有一定经验的当手册用
还没具体去阅读,不过应该不错吧!
经典书,不评论
给同学买的,不知咋样,不过看网上评价挺高的才买的
经典书籍,很好,慢慢学习
其实我还没有看,“这是一本好书”不是我一个人的评价。
内容很全,很详细,经典就是不一样
还没来得及看,感觉还不错...
纸张不错,就有点磨损,内容还可以了,内容我还可以了,我是个初学者
书写的还不错,就是太贵了。
就是发现有错误 不知道译者出勘误没
面对当前的linux开发模式 该书已没有太大的价值
但对于学习 还是不错的
描述简练,需要一定基础才能很好的理解一些linux 系统概念的描述
这本书是泛泛之谈,不具体,不适合实际开发用,思想讲得较多。
书很不错,但内容有点深,不适合初学者
这本书不太适合初学者,对我刚入门的菜鸟来说有些难。
刚刚拿到书,看了看纸张还是不错的,但印刷质量差了些。书的内容待看,翻了翻讲得不是怎么详细。
书哈行吧
感觉这本书的含金量没有LDD3要好,定位有问题。基础不基础,实战非实战。
可能是我的基础的原因,此书写的太深,看完后收获不大!
感觉有点名不副实,有点失望
挺全面的,但深度一般了,大都在讲系统调用,没有具体深入。入门还可以
相对于初学者太难了,看不懂
可能是我的水平有限吧,总的感觉是讲解得有点杂乱,每种设备驱动都介绍了,但是都是点到为止,毕竟也是篇幅有限,如果你是linux的新手,又不是有意在驱动方面发展,建议还是不要买了!
非常好,全面,难度适中~
不像LDD那样注重源码,本书更多的是经验的总结
看懂内容需要一定的基础
送货快,虽然是最后几本,也没有什么瑕疵
非常好的书,喜欢的风格内容
内容比较高级,不关心细节,适合有基础的人看。
朋友推荐的书,挺不错的。讲解得很到位。
感觉比较详细,建议初学者来学习~
昨天才收到,书籍的质量不错,内容要仔细看过再评价
书写得很好,很多关键的点都讲到了,读着收获很大。当然真要深入的话,就要去研究源码了
书还是很不错的,就是翻译有些地方不懂,要联系上下文才能看懂,呵呵。有些地方还写错了,总体架构和思路还是明白的。
编辑的推荐
对于驱动这块代码比较多,例子很多,很不错
现在在看
公司要买的书
传说中不错
对于linux驱动讲解很不错