《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接
《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》
china-pub spm=a1z10.3-b.w4011-10017777404.30.kvceXB&id=521111707813&rn=4cf013961288ab7c4dfd2016aeb21fa8&abbucket=5">天猫
China-pub 8月新书销售榜
推荐序一
技术日新月异,产业斗转星移,滚滚红尘,消逝的事物太多,新事物的诞生也更迅猛。众多新生事物如灿烂烟花,转瞬即逝。当我们仰望星空时,在浩如烟海的专业名词中寻找,赫然发现,Linux的生命力之旺盛顽强,斗志之昂扬雄壮,令人称奇。
它正以摧枯拉朽之势迅速占领包含server、云计算、消费电子、工业控制、仪器仪表、导航娱乐等在内的众多应用领域,并逐步占领很多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)中,驱动程序的代码量呈线性增长趋势。
从软件project角度来看内核代码的变化规律,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设备驱动程序方面仍然非常具有特色。它用理论联系实际。尤其是提供了大量的实例。对读者深入地理解并掌握各种驱动程序的编写大有裨益。
——飞思卡尔半导体(中国)有限公司数字网络软件技术方案部总监 杨欣欣博士
一位优秀的设备驱动开发project师须要具备多年嵌入式软件和硬件开发经验的积累,本书针对Linux设备驱动开发相关的设计思想、框架、内核,深入浅出,结合代码,从理论到实践进行重点解说。
毫无疑问。本书可谓一把通向设备驱动大师殿堂之门的金钥匙,它将激发你的味蕾。带你“品尝”嵌入式设备驱动开发这道“美味佳肴”,掩卷沉思,意味深长。
——ARM中国在线社区经理 宋斌
作者长期从事嵌入式Linux开发和教学工作,擅长Linux驱动开发。并跟踪开源软件和嵌入式处理器技术的最新发展。撰写本书。书中内容新奇有用。作者针对ARM和移动便携式设备的兴起,在书中加入了ARM Linux 设备树和Linux电源管理系统架构及驱动的内容,书中关于Linux设备驱动的软件架构思想的章节也非常有特色。
——中国软件行业协会嵌入式系统分会副理事长 何小庆
封面:
《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接的更多相关文章
- 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)--宋宝华
http://blog.csdn.net/21cnbao/article/details/45322629
- 基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(一)之miscdevice和ioctl
基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(一)之miscdevice和ioctl 0. 导语 在嵌入式的道路上寻寻觅觅很久,进入嵌入式这个行业也有几年的时间了,从2011年后 ...
- 使用U盘安装Linux最美桌面发行版Elementary OS 及常用开发环境配置(JDK,Redis,MySQL,Docker,IDEA,STS)
前言 假期在家无聊,刚好把六年前的一台笔记本电脑利用起来,原来电脑虽然说配置说不上古董机器,但是运行win系统感觉还是不流畅,所幸给换成Linux桌面版系统,在网上查阅了很多,Linux桌面系统要么推 ...
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...
- Linux字符设备驱动结构(一)--cdev结构体、设备号相关知识机械【转】
本文转载自:http://blog.csdn.net/zqixiao_09/article/details/50839042 一.字符设备基础知识 1.设备驱动分类 linux系统将设备分为3类:字符 ...
- 基于335X平台Linux交换芯片驱动开发
基于335X平台Linux交换芯片驱动开发 一.软硬件平台资料 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.Kernel版本:4.4.12,采用FDT 3.交换芯片MARVEL ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- 基于FT5x06嵌入式Linux电容触摸屏驱动
**************************************************************************************************** ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开【转】
转自:https://www.cnblogs.com/pengdonglin137/p/5248114.html#_lab2_3_1 阅读目录(Content) 作者信息 平台简介 摘要 正文 一.根 ...
随机推荐
- nyoj 题目12 喷水装置(二)
喷水装置(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的 ...
- 将数据缓存到sessionStorage中
//获取侧边栏 if (sessionStorage.getItem(`${env}${empId}leftMenu`)) { const leftMenu = JSON.parse(sessionS ...
- 【bzoj4012】[HNOI2015]开店 动态点分治+STL-vector
题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的想法当然非常好啦,但是她们也发现她们面临着一个问题 ...
- pdf生成
要用本文的方法生成PDF文件,需要两个控件:itextsharp.dll和ICSharpCode.SharpZipLib.dll,由于示例代码实在太多,我将代码全部整理出来,放在另外一个文件“示例代码 ...
- bzoj 4131: 并行博弈 (parallel)
bzoj 4131: 并行博弈 (parallel) Description lyp和ld在一个n*m的棋盘上玩翻转棋,游戏棋盘坐标假设为(x, y),1 ≤ x ≤ n,1 ≤ y ≤ m,这个游戏 ...
- docker (centOS 7) 使用笔记3 - docker swarm mode
1. 什么是docker swarm mode docker engine自带的 容器管理 工具.功能比较早的 docker swarm 更多,且集成在docker engine里. (docker ...
- UVA11806 Cheerleaders (容斥)
题目链接 Solution 可以考虑到总方案即为 \(C_{nm}^k\) . 考虑到要求的是边缘都必须至少有 \(1\) ,所以考虑不合法的. 第一行和最后一行没有的方案即为 \(C_{(n-1)m ...
- Linux下调试段错误 (gdb,core,ulimit)
Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位. (1)首先 在makefile中要增加编译调试选项 -g,才可以利用下面的gdb来调试 gc ...
- error: ‘to_string’ was not declared in this scope
错误: error: ‘to_string’ was not declared in this scope 原因: to_string是C++11引入的新功能,旧版本编译器可能不支持它,所以要给编译器 ...
- 洛谷[P3622] 动物园
状压DP 发现本题中,每个小朋友是否高兴仅取决于其后五个动物的情况,我们可以用状压DP解决本题 首先已处理 num[i][s] 表示对于位置 i ,状态为 s 时有多少在 s 的同学满意 转移方程很好 ...