Linux设备驱动开发详解4.0电子书PDF下载最新完整版|百度网盘下载

编辑评论:

Linux设备驱动开发详解介绍Linux设备驱动开发的理论、框架和实例。内存和I/O映射和Linux设备驱动理论如异步通知、阻塞I/O、非阻塞I/O,以及字符设备、块设备、tty设备、I2c设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动架构中各种复杂的数据结构和功能之间的关系,并讲解了大量Linux驱动开发的例子,让读者可以独立开发各种Linux设备驱动。

20201111161508.png

编辑推荐

历时8年3次重构,内容越来越完善。

所有代码都更新到了新的 Linux 4.0 版本。

新版ARM Linux内核架构综合讲解,如设备树等

不仅注重知识和程序的讲解,更注重程序的思想、演进、架构和算法

对于嵌入式工程师来说,学习Linux设备驱动开发无疑是进入更高阶段后的职业“重生”。这是因为Linux设备驱动开发不仅涉及操作系统的改造、开发方式的改造,还涉及思维的改造。对于Linux这样的复杂系统,如何从复杂的代码中把握设备驱动开发的关键,是任何Linux设备驱动开发者在入门时都需要面对的挑战。除了知识和工具之外,通常还需要有关想法的指导。本书不仅帮助Linux设备驱动开发的初学者理清必要的概念,还引导读者从具体的例子和设备驱动开发的指导原则逐步进入学习环境。为了让读者达到Linux设备驱动开发的极致境界,作者从软件工程的角度抽象出设备驱动开发的大致思路。毫无疑问,本书将成为读者学习Linux设备驱动开发过程中的“灯塔”。

[注:本书第11页链接,第6行已过期,替换为:https://pan.baidu.com/s/1472ejtnyguaKiULOWPahhw 密码:moua]

关于作者

宋宝华,Linux布道者,知名嵌入式系统专家,《Linux必备设备驱动》译者。作为较早从事Linux内核和设备驱动研究的专家之一,曾在国内外多家知名公司进行Linux技术培训。他还是一位活跃的 Linux 开发人员和深度实践者,为官方 Linux 内核贡献了大量 Linux 源代码并承担了代码审查工作。到目前为止,已经有超过数万行代码和数百个补丁提交给了官方的 Linux 内核。他的《Linux 设备驱动开发》系列书籍在嵌入式Linux 开发者中享有盛誉,是众多Linux 书籍中为数不多的畅销书籍之一。

精彩的书评

理解软件必须从某个逻辑起点开始。通过逻辑的扩展和数据的堆叠,我们首先知道了软件是如何解决框架中的目标问题的。然后使用这个框架来了解程序的较小细节,以添加新功能或修复遇到的问题。之前我想,如果有一本书在解释之前详细介绍了程序的思想、演进、架构和主要算法,然后通过代码来回顾程序的实现,那绝对是一个秘诀。现在终于有了,感谢@宋宝华为我们带来的神经!

——CSR(剑桥硅无线电)平台软件高级经理刘永生

”宋宝华的书是国内为数不多的可以与《Linux设备驱动》、《Linux内核开发》相媲美的Linux内核书籍之一,甚至是所有技术书籍中的精品。与死板的教条相比抄袭国内大量技术书籍,让人昏昏欲睡,看不懂,书中生动深刻,知识点全面提炼。内核相关的底层实现机制,“授人以鱼”更像是“授人以渔”,让读者真正了解和学习内核中大牛们的设计思想和技巧社区,从而快速提升能力。希望本书的读者通过学习,真正实现从“码农”到“内核大师”的华丽蜕变。”

——中国科学院上海微系统研究所朱军

“关于Linux内核的书很多,但是为什么好书很少,与时俱进的好书就更少了。这是因为Linux内核每两三个月更新一次,而且不断有新的技术,新的框架加入,不知道哪位作者能一直写Linux内核的新变化和新技术,就连国外的经典著作《Linux设备驱动》和《理解Linux内核》也早就没有了更新了作品,但是宋宝华先生一直用他在一线Linux内核开发的独特视角和工作实践,为大家带来了新的很好的《Linux设备驱动开发详解》,希望每一位Linux内核开发者和爱好者都能向宋老师学习的同时,学习他执着的精神,为Linux内核社区提供更多好的技术和作品。”

—— Bryan Wu,NVIDIA 高级系统软件工程师

书籍结构

本书首先介绍了 Linux 设备驱动程序的基础知识。第一章简要介绍了设备驱动程序,从无操作系统的设备驱动程序引出Linux操作系统下的设备驱动程序,并介绍了本书所基于的开发环境。第2章系统讲解了Linux驱动工程师应掌握的硬件知识,为工程师编写Linux驱动程序奠定了硬件基础,详细介绍了各类CPU、存储器和常用外设,并介绍了硬件时序分析方法和方法。如何阅读数据表。第3章以Linux 2.6内核为背景,以Linux设备驱动为背景,讲解Linux内核的编程方法。由于驱动程序编程也属于内核编程的范畴,本章本质上为编写 Linux 设备驱动程序奠定了软件基础。

其次,将讲解Linux设备驱动程序编程的基本理论、字符设备驱动程序和并发控制、同步等设备驱动程序设计中涉及的问题。第 4 章和第 5 章分别解释了 Linux 内核模块和 Linux 设备文件系统;第6~9章以虚拟设备globalmem和globalfifo为主线,逐步加入高级控制功能;涉及到中断和定时器、内核和I/O操作处理方法。

接下来,分析复杂设备驱动以及块设备和网络设备驱动的架构。本文讲解了设备和驱动的分离,主机控制器驱动和外设驱动的分离,并有大量实例支持(如输入、tty、LCD、平台、I2C、SPI、USB等)。其中第12章和第17章相互呼应,力图充分展示驱动架构。 Linux有100多个驱动子系统,一一讲解和学习是不现实的。授人以鱼不如授人以渔。因此,我们将更多地关注架构解释,以便读者可以相互借鉴。

本书最后四章分析了Linux设备树,Linux移植到新SoC的具体工作,以及Linux内核和驱动的一些调试方法。这些内容对于理解如何从头构建一个Linux以及整个Linux板卡支持包之间的关系尤为重要。

另外,本书主要代码均引用自Linux源码。为保持原汁原味,对代码英文注释进行了扩展,其他非引用代码使用中文注释或无注释,特此说明。

阅读剩余
THE END