精通Linux驱动程序开发

出版时间:2009  出版社:人民邮电出版社  作者:Venkateswaran, S  页数:714  
Tag标签:无  

前言

20世纪90年代末,我们IBM的一群同事进行了一项将Linux内核移植到一种智能手表上的工作。目标设备虽然微不足道,但是移植Linux的任务却相当艰巨。在当时,内核中还不存在MTD(MemoryTechnologyDevice,内存技术设备)子系统,这意味着在文件系统能够运行在这种手表的闪存之前,我们不得不从头开发必要的存储驱动器。由于当时内核的输入事件驱动接口尚未诞生,因此手表的触摸屏与用户应用程序的接口非常复杂。让XWindows运行在手表的LCD上十分困难,因为XWindows和帧缓冲设备驱动程序搭配得并不好。如果你戴着一块防水的Linux智能手表,却不能躺在浴缸里实时获得股票行情,那么这块手表还有什么用?Linux几年前就已集成了蓝牙技术,而当时我们却花费了数月的时间将一种专有的蓝牙协议栈移植到手表上,从而使得这种手表具备了Internet连网能力。电源管理系统可以让这种手表的电池多运行几个小时,因此我们又设计了一个省电方案。那时候,Linux红外项目Linux-Infrared还不稳定,我们十分小心地用红外协议栈,设计出使用红外键盘作为手表的数据输入设备。最后,由于当时还没有能应用于消费类电子产品的成型的编译器发行版,我们也不得不编译出编译器,并交叉编译出一个紧凑的应用程序集。时光飞逝,当年嗷嗷待哺的企鹅宝宝已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天的时间就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,你需要理解今天的Linux内核提供的各种功能和设施。关于本书在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序的庞大家族。本书主要讲解Linux设备驱动程序,介绍了目前内核所支持的主要设备类型的设计与开发,其中包括当年我在开发Linux-on-Watch项目时未遇到的设备。本书在讲解每种设备驱动程序家族的时候,先介绍与该驱动程序相关的技术,接着给出一个实际的开发例子,最后列出相关的内核源代码文件。在踏入Linux设备驱动程序领域之前,本书先介绍了内核以及Linux2.6的重要特性,重点讲解了设备驱动程序编写者感兴趣的内核知识。

内容概要

  本书是Linux设备驱动程序领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或辄止浅尝的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线、视频、音频、无线连网和闪存等技术。在解释每一个技术时,均讲解了相关的内核源码文件,并给出了完整的开发实例。  本书适合中高级Linux 开发人员阅读。

作者简介

Sreekrishnan Venkateswaran 世界顶级Linux开发技术专家。在IBM工作多年,有丰富的嵌入式Linux和驱动程序开发经验,曾经将Linux移植到了手表、音乐播放器、VoIP电话、心脏起搏器以及远程门诊监控系统等各种设备上。目前负责IBM印度公司的嵌入式解决方案组。他曾担任Linux Magazine的特邀编辑,主持内核技术专栏作。

书籍目录

Chapter 1 Introduction Chapter 2 A Peek Inside the Kernel Chapter 3 Kernel FacilitiesChapter 4 Laying the GroundworkChapter 5 Character DriversChapter 6 Serial DriversChapter 7 Input DriversChapter 8 The Inter-Integrated Circuit ProtocolChapter 9 PCMCIA and Compact FlashChapter 10 Peripheral Component InterconnectChapter 11 Universal Serial Bus Chapter 12 Video DriversChapter 13 Audio Drivers Chapter 14 Block Drivers Chapter 15 Network Interface CardsChapter 16 Linux Without WiresChapter 17 Memory Technology Devices Chapter 18 Embedding Linux Chapter 19 Drivers in User Space Chapter 20 More Devices and DriversChapter 21 Debugging Device Drivers Chapter 22 Maintenance and DeliveryChapter 23 Shutting DownAppendix A Linux Assembly Appendix B Linux and the BIOSAppendix C Seq Files Index 

章节摘录

插图:Linux has trekked many a terrain and is now state of the art, so you can use it as avehicle to understand operating system concepts, processor architectures, and evenindustry domains. When you learn a technique used by a device driver subsystem,look one level deeper and probe the underlying reasons behind that design choice.  Wherever not explicitly stated, the text assumes the 32-bit x86 architecture. Thebook is, however, mindful of the fact that you are more likely to write device driversfor embedded devices than for conventional PC-compatible systems. The chapter onserial drivers, for example, examines two devices: a touch controller on a PC deriva-tive and a UART on a cell phone. Or the chapter on I2C device drivers looks at anEEPROM on a PC system and a Real Time Clock on an embedded device. The bookalso teaches you about the core infrastructure that the kernel provides for most driverclasses, which hides architecture dependencies from device drivers.  Device driver debugging techniques are discussed near the end of the book inChapter 21, so you might find it worthwhile to forward to that chapter as you developdrivers while reading the book.  This book is based on the 2.6 kernel, which has substantial changes across the boardfrom 2.4, touching all major subsystems. Hopefully, you have installed a 2.6,basedLinux on your system by now and started experimenting with the kernel sources. Eachchapter takes the liberty, of profusely pointing you to relevant kernel source files fortwo main reasons:

媒体关注与评论

目前最全面深入的Linux设备驱动程序著作,世界级Linux技术大师力作,大量技术内幕首次公开。“这是我读过的最全面的Linux设备驱动程序著作。”   ——Alan Cox,Linux内核维护者“这本书涵盖了各种Linux设备驱动程序,全面而翔实。”  ——Theodore Ts’o,Linux基金会CTO,北美第一位内核开发者

编辑推荐

在回顾了驱动开发的各种基础知识和最新的Linux 2.6内核相关特性之后,《精通Linux驱动程序开发(英文版)》的作者不仅讲述了其他设备驱动程序图书中都会涉及的较容易的内容,更迎难而上,深入探讨了驱动开发包括嵌入式Linux开发中必须面对的难点,比如PCMCIA、USB、I2C、视频、音频、闪存、无线通信等,揭示了许多内幕技术的秘密。对每种驱动程序,书中在剖析关键技术之外,还带你查看相关的内核源代码,提供完整的实例。时至今日,Linux操作系统以其跨平台、开源、支持众多应用软件和网络协议等优点,已经成为应用最广泛的开发平台。在这部贴近实战、实例丰富的著作中,世界上经验最丰富的Linux驱动程序开发者之一系统全面地阐述了如何为各种设备开发可靠的驱动程序。

图书封面

图书标签Tags

评论、评分、阅读与下载


    精通Linux驱动程序开发 PDF格式下载


用户评论 (总计37条)

 
 

  •   书的内容丰富,linux驱动的方方面面都有涉及,深入学习还得研究linux内核源码
  •   深入浅出地讲解了linux驱动的知识, 书里的内容如果靠一个人的自学是很难学到的, 而且是图灵系列的图书,值得推荐, 如果想攀登计算机领域的顶峰, 必须要阅读的一本书籍。
  •   这是本很不错的介绍linux驱动的书。值得一看。
  •   这本书是我读过所有linux书中最好的!真的是受益匪浅!
  •   英文版看着才过瘾,深入浅出,需要一定基础
  •   刚看了第一章,感觉英文也不是很累,就当锻炼一下自己的英文水平了。
    书很好懂吧,也许是第一章的缘故,努力看完。
    (当当写评价不给啥好处的啊?)
  •   书籍质量还可以,至于书的内容怎么样看个人
  •   书的内容和质量都很不错,就是物流不给力
  •   书的质量还是挺好的,有机会就拜读一下
  •   总体很不错了,专门做某一方面得再买专门的书
  •   以前的评论不能全信,要买书最好能到书店看看。
  •   还是原版的书看上去有感觉
  •   书是不错,但从351页开始到366页,变成了31-46,怎么搞的?
  •   已经看过电子版的,很好,很强大,推荐!
  •   LDD3给出了理论知识点,这本书是理论和实际相结合。只能说相当给力。
  •   很好!很好!很好!很好!很好!很好!
  •   怕困难的别买!怕辛苦的别买!能够坚持的必须购买!
  •   soperfect!!!
  •   读了1
    左右 里面每章基本是先讲解相关概念 然后给出源代码目录 看完这本书能大体上对linux驱动有相关了解 只有由于不够详细 具体的还需要自己另找资料 毕竟这本书所包含的内容实在是不少~
  •   书是非常好,可是外壳有一道皱纹。心理有些纠结到底是换还是不换!
  •   书很不错哦, 值得研读。
  •   就是买到的像是箱底的书,封皮也太“新”了~~
  •   很有用的书,而且书的质量很好,慢慢学习
  •   看了一部分,感觉讲的很实用
  •   刚拿到书 还没有看内容 感觉像盗版的 印刷质量很差
  •   刚看了一部分,感觉还可以吧,但是最好配合别的书籍和代码,有的地方不是很详细
  •   书的质量太差了,封面被划花的痕迹很难看,内容就是严重的盗版,字体很难看
  •   买的页数比较厚的书,没有一次不给我把封皮折了!!有的明显就是包装之前的折痕!!到底搞什么搞!这么厚的书还没看,看到折痕就心里不爽!!!!!!!!!!!!!!!!!!气死我了!!!!
  •   英文字体好不习惯。你能
  •   书的内容很详尽,有很多内容是别的书没有的。E文,读起来有点挑战阿!
  •   相比于其他影印的书籍,这本书的纸的质量很不错,和原版的差不多。内容不用说了,绝对的经典。
  •   纸很薄 ,714页的书厚度和600页的一样。
  •   拿到手上一看,感觉有点别扭,细一看,好大的字体!比Understand Linux Kernel 影印版的字体大一号,页数上少近两百页,标价却还贵一块钱。。。。。
  •   纸质量不好 发灰, 味道不好
  •   配合LDD一起看,可以学到更多东西
  •   总的来讲,是本好书,较之《linux驱动程序》,看这本书对初学者而言可能比较容易上手,但最好还是结合《linux驱动程序》来看,因为有的地方没有那本讲的清楚。
  •   这本书是英文的,读起来有些难度,自己正在翻译,只做学习之用,呵呵,这本书介绍的很全面,是驱动开发人员的很好参考
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7