《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)网购链接_linux设备驱动开发详解:基于最新的linux4.0内核-程序员宅基地

技术标签: Linux设备驱动开发详解  Linux Driver开发  

《Linux设备驱动开发详解:基于最新的Linux 4.0内核》


china-pub   天猫     dangdang   京东   


China-pub 8月新书销售榜



推荐序一

  技术日新月异,产业斗转星移,滚滚红尘,消逝的事物太多,新事物的诞生也更迅猛。众多新生事物如灿烂烟花,转瞬即逝。当我们仰望星空时,在浩如烟海的专业名词中寻找,赫然发现,Linux的生命力之旺盛顽强,斗志之昂扬雄壮,令人称奇。它正以摧枯拉朽之势迅速占领包括服务器、云计算、消费电子、工业控制、仪器仪表、导航娱乐等在内的众多应用领域,并逐步占据许多WINCE、VxWorks的传统嵌入式市场。

  Linux所及之处,所向披靡。这与Linux的社区式开发模式,迅速的迭代不无关系。Linux每2~3月更新一次版本,吸纳新的体系架构、芯片支持、驱动、内核优化和新特性,这使得Linux总是能够在第一时间内迎合用户的需求,快速地适应瞬息万变的市场。由Linux以及围绕着Linux进行产品研发的众多企业和爱好者构成了一个庞大的Linux生态圈。而本书,无疑给这个庞大的生态圈注入了养料。

  然而,养料的注入应该是持续不断的。至今,Linux内核的底层BSP、驱动框架和内核实现发生了许多变更,本书涵盖了这些新的变化,这将给予开发者更多新的帮助。内核的代码不断重构并最优化,而本书也无疑是一次重大的重构。

  生命不息,重构不止。

  周立功

  推荐序二

  在翻译了《Understanding the Linux Kernel》和《Linux Kernel Development》这两本书后,每当有读者询问如何学习Linux内核时,我都不敢贸然给出建议。如此庞大的内核,各个子系统之间的关系错综复杂,代码不断更新和迭代,到底该从何入手?你的出发点是哪里?你想去的彼岸又是哪里?相应的学习方法都不同。

  一旦踏入Linux内核领域,要精通Linux内核的精髓,几乎没有捷径可走。尽管通往山顶的路有无数条,但每条路上都布满荆棘,或许时间和毅力才是斩荆披棘的利器。

  从最初到现在,Linux内核的版本更新达上千个,代码规模不断增长,平均每个版本的新增代码有4万行左右。在源代码的10个主要子目录(arch、init、include、kernel、mm、IPC、fs、lib、net、drivers)中,驱动程序的代码量呈线性增长趋势。

  从软件工程角度来看内核代码的变化规律,Linux的体系结构相对稳定,子系统数变化不大,平均每个模块的复杂度呈下降趋势,但系统整体规模和复杂性分别呈超线性和接近线性增长趋势。drivers和arch等模块的快速变化是引起系统复杂性增加的主因。那么,在代码量最多的驱动程序中,有什么规律可循?最根本的又是什么?

  本书更多的是关于Linux内核代码背后机理的讲解,呈现给读者的是一种思考方法,让读者能够在思考中举一反三。尽管驱动程序只是内核的一个子系统,但Linux内核是一种整体结构,牵一发而动全局,对Linux内核其他相关知识的掌握是开发驱动的基础。本书的内容包括中断、定时器、进程生命周期、uevent、并发、编译乱序、执行乱序、等待队列、I/O模型、内存管理等,实例代码也被大幅重构。

  明代著名的思想家王明阳有句名言“知而不行,是为不知;行而不知,可以致知”。因此在研读本书时,你一定要亲身实践,在实践之后要提升思考,如此,你才可以越过代码本身而看到内核的深层机理。

  陈莉君

  西安邮电大学


媒体评论

  十多年前,我在海外一家路由器公司从事底层软件开发时,一本《Linux Device Driver》(LDD)使我受益匪浅。近年来,我在从事基于ARM的嵌入式操作系统教学时发现,很多Linux设备驱动中的新技术,比如Device Tree、sysfs等,在LDD3中均没有涉及。而市面上的翻译书晦涩难懂,有的还不如英文原书好理解。宋宝华是我尊敬的技术人员,十年如一日,在Linux内核及设备驱动领域潜心耕耘,堪称大师。本书无论从汉语的遣词造句,案例的深入浅出,还是对前沿技术的掌握,对难点技术丝丝入扣的分析,都体现出了强烈的“工匠精神”,堪称经典,值得推荐。
  ——Xilinx前大中华区大学计划经理、慕客信CEO  谢凯年


  设备驱动程序是连接计算机软件和硬件的纽带和桥梁,开发者在嵌入式操作系统的开发移植过程中,有将近70%~80%的精力都用在了驱动程序的开发与调试方面。这就对设备驱动程序开发人员提出了极高的要求。开发者不仅要同时具备软件和硬件的知识和经验,而且还要不断地学习、更新自己,以便跟上嵌入式系统日新月异的发展。研究前人的总结和动手实践是不断提高自己的有效途径。虽然市面上已经有多种设备驱动的书籍,但本书在总结Linux设备驱动程序方面仍然非常具有特色。它用理论联系实际,尤其是提供了大量的实例,对读者深入地理解并掌握各种驱动程序的编写大有裨益。
  ——飞思卡尔半导体(中国)有限公司数字网络软件技术方案部总监  杨欣欣博士


  一位优秀的设备驱动开发工程师需要具备多年嵌入式软件和硬件开发经验的积累,本书针对Linux设备驱动开发相关的设计思想、框架、内核,深入浅出,结合代码,从理论到实践进行重点讲解。毫无疑问,本书可谓一把通向设备驱动大师殿堂之门的金钥匙,它将激发你的味蕾,带你“品尝”嵌入式设备驱动开发这道“美味佳肴”,掩卷沉思,意味深长。
  ——ARM中国在线社区经理   宋斌


  作者长期从事嵌入式Linux开发和教学工作,擅长Linux驱动开发,并跟踪开源软件和嵌入式处理器技术的最新发展,撰写本书,书中内容新鲜实用。作者针对ARM和移动便携式设备的兴起,在书中添加了ARM Linux 设备树和Linux电源管理系统架构及驱动的内容,书中关于Linux设备驱动的软件架构思想的章节也很有特色。
  ——中国软件行业协会嵌入式系统分会副理事长 何小庆


封面:


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/21cnbao/article/details/47398393

智能推荐

Java网络编程——NIO的阻塞IO模式、非阻塞IO模式、IO多路复用模式的使用_nio io模式-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏6次。NIO虽然称为Non-Blocking IO(非阻塞IO),但它支持阻塞IO、非阻塞IO和IO多路复用模式这几种方式的使用。_nio io模式

整数规划蒙特卡洛模拟(Matlab实现)(1)-程序员宅基地

文章浏览阅读283次,点赞3次,收藏3次。matlab生成的随机数是伪随机数,因此可生成时间相关的随机数,总之和当前时间相关。%产生一行三列的区间在【0,99】上的随机整数。%设置该命令是因为每次产生随机数的时候,随机数生成器触发器的状态都会翻转一次。if p0

Python:求最大公约数与最小公倍数(辗转相除与递归两种方法)_python求最大公约数和最小公倍数-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏50次。导读 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]欧几里得算法 _python求最大公约数和最小公倍数

AndroidStudio插件 GsonFormatPlus使用_android studio gsonformatplus怎么用-程序员宅基地

文章浏览阅读8.9k次,点赞4次,收藏24次。How to use lombok plugin in Android Studio?https://stackoverflow.com/questions/37991892/how-to-use-lombok-plugin-in-android-studio_android studio gsonformatplus怎么用

安装pyaudio的正确方法_pyaudio 安装-程序员宅基地

文章浏览阅读975次。安装pyaudio的正确方法_pyaudio 安装

开山-机器学习(1)矩阵分解-多视角数据表示的多样非负矩阵分解_多视图矩阵分解-程序员宅基地

文章浏览阅读1.7k次,点赞4次,收藏17次。欢迎来到theFlyer的博客—希望你有不一样的感悟前言:这是一篇要讲的论文,以下内容是基于个人理解写的,从简单的NMF讲到论文的多视角方法,由于之前做了PPT所以以下图片可能比较多。 论文名称 Diverse Non-Negative Matrix Factorization for Multiview Data Representation目录欢迎来到theFl..._多视图矩阵分解

随便推点

Windows下 VSCode配置cuda编译环境_code runner cuda编程 windows-程序员宅基地

文章浏览阅读1.6w次,点赞16次,收藏51次。Windows系统下,在Visual Studio 里配置CUDA环境网上已经有很多资料了,而在轻量级IDE VScode上编译CUDA的材料不是很多,本篇博文将简要介绍在Windows 系统下配置CUDA环境的方法。一、VScode插件 code-runner法在VScode里安装插件——coder-runner,在settings.json里添加(win10下的)"code-runner.executorMap": { "cu": "cd $dir; nvcc $fileN_code runner cuda编程 windows

iOS常见问题之苹果证书无法导出p12格式的文件_development 证书 无法选择 p12-程序员宅基地

文章浏览阅读1.4w次。本文介绍了苹果证书无法导出p12格式的文件的解决方法.一.打开钥匙串导出证书的默认界面,发现p12选项为灰色,无法选择.说明: 我对这种情况的证书进行测试,将直接导出.cer的证书,拷贝到其他电脑上并安装,打包项目时,提示:No valid signing identities matching the team ID "xxx" were found.在项目中,快捷键 command + ,选择_development 证书 无法选择 p12

[精品毕设]Python考务监考管理系统-程序员宅基地

文章浏览阅读19次。该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功!

UE4-(蓝图)第三十课使用动画蒙太奇_蓝图蒙太奇动画资源打点-程序员宅基地

文章浏览阅读5.6k次,点赞4次,收藏15次。一、创建蒙太奇动画1.在文件夹空白处右键创建Animation下的动画蒙太奇2.选择动画蒙太奇基于的骨骼,创建完成后命名为FppRifleFire_Montage二、编辑动画蒙太奇1.双击打开刚创建的动画蒙太奇,在编辑窗口右下角有个资源管理器,其中为所有动画,选择一个动画后拖拽到Montage栏下方空白处。(也可以放置多个片段,自己排序组合)2.设置游戏开始时 使用..._蓝图蒙太奇动画资源打点

iOS 使用AVAudio播放音乐中断处理-程序员宅基地

文章浏览阅读832次。在使用AVFoundation框架中的AVAudioPlayer播放音乐时,会出现中断的情况,比如接听电话,或者接听FaceTime,这就要通过注册通知来处理,[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(handleInterruption:) name :AVAudioSess..._avaudiosession 打开其他音频不回停止播放

SSD的基础知识介绍_ssd硬件基础知识-程序员宅基地

文章浏览阅读721次。SSD测试服务器_ssd硬件基础知识

推荐文章

热门文章

相关标签