作者:道哥,10+年嵌入式开发老兵,专注于:C/C++、嵌入式、Linux。
近来,有朋友问我:假如从零开始学嵌入式软件开发,有什么好书值得推荐。
于是就花点时间,把我觉得不错的一些好书整理了一下,在这儿分享给你们!
马上新年了,选购书籍的电商都在打折促销,趁此机会多拿下几本,虽然阅读纸质的书籍是电子版本不可比拟的。
倘若您口袋中的银子不多,也可以参考文末的PDF电子版下载链接。
计算机第1本《深入理解计算机系统》
9.8分!
编程人员应当人手一本的四星好书!
假如想全面、深入的了解计算机系统,不要再找其他书籍了,这一本就够了!
最后linux嵌入式开发大全 pdf,夸奖一下出版社:纸张用的特别好,并且是彩色彩印,对于这些大部头书籍,阅读上去很友好!
第2本《NULL》
把第一本书再看几遍!
Linux系统相关的书籍就多如牛毛,并且有好多的细分领域。
对于嵌入式开发来说,须要根据自己的需求来选择相应的细分领域和深度的书籍来系统学习。
若果是从零开始,想对Linux有一个循序渐进、由浅入深的学习,下边这5本书足矣,千万不要贪多!
若果是内核开发、驱动开发、网络开发等,这么旁边有几本书也是很不错的。
第1本:《鸟哥的Linux私房菜》
相信好多男子伴在刚入门Linux的时侯,就会选择鸟哥的Linux系列书籍,由于内容讲解的真的是浅显易懂,完全就是站在小白的角度来讲解的,保姆级的细度、全面而详尽地介绍了Linux操作系统。
从安装操作系统开始,介绍文件系统、文件、目录与c盘的管理;;文字编辑器vim;帐号的管理,系统与程序的管理等等,所有基础内容一网打尽!
各类功能和的介绍,都配以大量的实例操作和详细的解析,是初学者学习Linux不可多得的一本入门好书。
第2本:《UNIX环境中级编程(第3版)》or《Linux/UNIX系统编程指南》
这明明是两本书,为何要放到一起推荐?
由于这两本书的定位是一样的,都是以Linux应用层的开发为主,可以分别翻阅一下目录或部份章节,之后按照自己的须要和习惯来选择其中的一本就可以了。
这本书被誉为UNIX编程“圣经”,我曾经学习的时侯看的是第二版本(浅红色封面)。
书中不仅介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通讯、网络IPC、伪终端等方面的内容,还在此基础上介绍了诸多应用实例,包括怎样创建数据库函数库以及怎样与网路复印机通讯等。
本书的最大特征就是深度和全面,适宜所有层次UNIX/Linux程序员,可以作为手边的参考书。
这本书分为上下两册,主要以Linux应用层开发为主,Linux系统编程中的关键概念讲解非常透彻!
内容包括:高效读写文件,对讯号、时钟和定时器的运用,创建进程、执行程序,编撰安全的应用程序,运用posix线程技术编撰多线程程序,创建和使用共享库,运用管线、消息队列、共享显存和讯号量技术来进行进程间通讯,以及运用套接字API编撰网路应用等内容。
在阅读的过程中linux教程,假如碰到与计算机平台相关的内容不理解时,可以查阅《深入了解计算机系统》这本书。
第3本:《现代操作系统:原理与实现》
这是2020年初版的“新书”,也就意味着书中的内容是跟得上时代的。
这本书并不是专门针对Linux操作系统的linux嵌入式开发大全 pdf,而是着眼于各类不同的操作系统设计,把每一个操作系统都要解决的共性问题进行具象,来讲解常见的设计思路。
比如:操作系统结构、内存管理、进程与线程、操作系统调度、进程间通讯、同步子句、文件系统与储存、设备管理和系统虚拟化。
读这本书不要指望能获得具体的编程技能,个人认为真本书最大的收获就是:站在一个更高的层次,以全局的角度来理解一个操作系统包括什么模块,每一个模块的常见解决方案是哪些。
对操作系统的这种结构化模块有了更清晰的认识以后,再去看Linux内核相关的书籍,才会有优缺,晓得自己该去看哪些、怎么看。
第4本:《深入理解LINUX内核》
Linux内核相关的书籍,假如只推荐一本的话,那就是它了,Linuxkernel居家旅行必备!
对Linux内核的讲解非常的细致,从代码的角度来理解操作系统,初学者不建议直接看此书。
对Linux应用层的编程有了一定的经验以后,再来学习这本书,收获会更大。
缺点:内核的版本有点老,跟明天常用的Linux内核源码有好多不同。
这就要回到阅读这本书的目的了,正由于版本比较老,所以代码量也更少一些,对于学习Linux内核反倒是有用处的。
把握了低版本的内核代码,再反过来阅读最新的Linux内核代码,学习效率肯定是不一样的。
另外,假如看这本书觉得难度太大,可以选择《linux内核设计与实现》这本书作为中间过渡一下。
第5本:《程序员的自我修养》
个人认为:这本书的豆瓣打分有点过高了,如何着也应当9分以上。
这本书主要介绍系统软件的运行机制和原理,包括Windows和Linux两个系统平台上。
一个应用程序在编译、链接和运行时刻所发生的各类事项。
包括:代码指令是怎样保存的,库文件怎样与应用程序代码静态链接,应用程序怎样被装载到显存中并开始运行,动态链接怎样实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是怎样被调用的。
书中对装载、链接和库进行了深入浅出的分析,假如你须要研究动态链接库,这么这本书肯定是跳不过去的,一定要读一下,强烈推荐!
第6本:《Linux设备驱动程序》
不多说,这也是一本精典书籍,对于从事Linux驱动开发的男子伴来说,是必备书籍!
第7本:《深入理解LINUX网路黑幕》
系统地阐明了网路的基本概念,并指导你怎么用C语言实现。
同时描述了Linux网路的概貌,解释了Linux代码是怎样工作的,主要网路特点的目的,网路通讯的主要问题,以及在不同解决方案间是怎样取舍的。
同时,本书还包含了大量的流程图和其他图表以帮助读者理解。
C语言第1本:《啊哈C语言》入门级别
一本十分有趣的编程启蒙书,生动开朗的动漫和诙谐诙谐的文字,配合超萌的编程软件,由浅入深地述说编程的思维。
对于C语言入门的男子伴十分友好,起码不会让你的学习过程倍感很无趣。
第2本:《C语言程序设计-现代设计方式》中级
若果只推荐一本C语言书籍,我会推荐这一本!
这本书最大的特征就是:兼容了全面性,而且有一定的深度。
每一个章节从语言层面开始,仍然深入到系统调用层面,由浅入深的讲解每一个知识点。
在比较深入的部份,会提出一些特别有启发性的问题来引导读者进行思索。
我觉得这本书,无论对于刚步入C语言编程的初学者,或则对于工作多年的大牛,都是值得一读的,可以对C语言的知识进行全面的梳理。
倘若您的工作是Linux应用层开发,这么这本书就是你研究C库、研究系统调用的前哨。
第3本:《CPrimerPlus》中级
我个人认为,这本书与《C语言程序设计-现代设计方式》相比,少了一些理论,多了一些实践操作。
从难度上来说,也稍稍低这么一点点,因而也更适宜刚入门C语言的初学者。
可以作为辅助教材,和上一本书结合上去看,不须要从头到尾看一遍。
第4本:《C圈套与缺陷》中中级
这本书出版的年份比较早,而且既然在明天依旧收到欢迎,就说明它是一本精典书籍!
这本书不是要批判C语言,而是要帮助C程序员绕开编程过程中的圈套和障碍。
分别从词法剖析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面剖析了C编程中可能碰到的问题。
在项目开发过程中,倘若能遵循书中给出的一些忠告,这么在领导、同事的眼里,你一定是一个逻辑严谨、思维周密、编程功底很深的编程前辈!
C++语言
C++语言博大精深,也很惊悚。
Linus曾说过:“C++是一门很惊悚的语言,而比它更惊悚的是好多不合格的程序员在使用着它”。
假如你是C++初学者,千万不能抱着速成的态度去学,不然就深陷一知半解状态,这个状态是很危险的,写出的代码就是在给自己下套。
为了成为一个合格的C++程序员,须要在错误中总结经验教训,通过阅读C++精典好书和优秀的开源代码来磨练自己。
结合我自己的开发经历,我只推荐下边这6本书:
注意:选书的时侯,一定要选择根据C++11以后的标准来讲解的。若果是根据之前的旧标准来讲解,这么很可能一本书学习结束以后才发觉:白看了!
第1本:《C++PrimerPlus第6版英文版》(入门级)
这本书主要是针对C++初学者来讲解的,假如说存在缺点的话,就是讲得太细了,很锻练一个人的耐心!
每一章就会标明出重点,而且对习题做了详尽解答。
若果是初学者,有理解不了的地方,千万不要恋战,直接放过去。
学习完以后,只要对C++有整体的概念即可,要把主要经历置于下边的第2本书上,那才是真正的权威之作。
其实了,理解难度也会上一个台阶,Plus这本书只是爽口菜。
第2本:《C++Primer》(中中级)
假如只能推荐一本书,绝对是这一本!
瞧瞧翻译和审校的阵容就晓得这书值得拥有,这本书在C++领域的权威地位也是不可动摇的!
C++大师StanleyB.Lippman的丰富实践经验,C++标准委员会原负责人JoséeLajoie对C++标准的深入理解,以及C++先驱BarbaraE.Moo在C++教学方面的真知灼见外,更是基于全新的C++11标准进行了全面而彻底的内容更新。
另外,这本书不是读了一遍就可以的,而是要边读边做笔记,置于手边作为参考书籍。
遇见不懂、模糊的概念,随时翻阅一下。三遍以后,C++功底倍增!
假如俄文不错的话,也可以阅读中文原版。
第3、4本:《C++Primer》,《MoreEffectiveC++(英文版)》(中级)
先看一下译者:侯捷老师,这而且大名鼎鼎的C++书籍翻译大师,在B站上,C++相关教学视频最好的就是侯捷老师了(不接收指责)。
他的视频含金量非常高,会穿插好多个人对C++语言、标准的个人思索。
再回到这两本书,有个颇具名气的段子:C++程序员可以分为两类,读过EffectiveC++的和没读过的。
这两本书根据不同的主题来透彻的讲解一个知识点,有理论、有示例,对于一个高级C++开发者,好多地方看不懂是很正常的。
对于初学者,还是要把里面的两本书啃完以后,再来学习Effective系列会更有信心一些!
另外,这不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考指南,而是须要你去反复阅读揣测的。
第5本:《深度探求C++对象模型》(中级)
学习任何一门编程语言,心里一定要有显存模型这个概念,也就是一个对象(包括基础类型)在显存中是怎样布局的(也就是在显存中是怎样储存的)。
理解了C++的对象模型,还会对一些深奥的知识点,比如:虚表、多态等机制的底层实现会有更深入的理解。
这本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟承继。
这本书让你晓得:一旦你才能了解底层实现模型,你的程序代码将获得多么大的效率。
假如你对C++底层机制感兴趣,这本书一定会让你大呼过瘾!
第6本:《C++标准库(第2版)》(初、中、高级)
也是侯捷老师翻译的大作!
这本书详尽讲解了每一标准库组件,包括其设计目的和技巧、复杂概念的探讨、实用而高效的编程细节、存在的圈套、重要的类和函数,又辅以大量用C++11标准实现的实用代码范例。
面对这本大部头,就不要指望从头到尾系统学习了,把它当作一本字典,作为参考书是最好不过了,由于它真的太厚了!
汇编语言
首先要明晰:学习汇编语言的目的是哪些!
学习目的不同,选择的书籍和须要把握的程度也就不同。
对于嵌入式开发来说,汇编语言通常用在这几个场合:系统引导代码、驱动程序、应用程序调优。
若果是是这个学习目标的话,下边这3本书就足够了。
第1本:《汇编语言(第4版)》(王爽)
若果是从零开始学汇编,一定要把这本书作为第一学习教材!精典中的精典!
这是一本讲解8086CPU汇编语言的入门书,内容安排得挺好,小白也能挺好上手。
循序渐进、通俗易懂,每一个示例程序都是经过悉心设计的。
采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索。
在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的探讨。
第2本:《x86汇编语言-从实模式到保护模式》(李忠/王晓波/余洁)
假如说第一本书是以学习汇编语言为主的话,这么这一本就是把汇编语言与x86平台紧密结合的精典书籍。
尽管x86构架博大精深,并且跟随作者的思路一路学习出来,一点都不会感觉无趣无味。
假如完整的学习了这本书,不仅仅是对汇编语言有很深入的把握,也会对x86系统的一些概念、原理、机制有更深入的理解,这对之后学习Linux操作系统会有特别大的帮助。
第3本:《汇编语言程序设计》(RichardBlum)
市面上甚少有讲GNUgcc汇编(AT&T)的书,这是为数不多的最好的AT&TASM入门书籍,无论是实例和原理的论述都十分简约、实用。
书中非常是对内联汇编部份,从简单到复杂,引人入胜,基本上把所有可能的嵌入汇编代码形式都描述的清清楚楚。
另外,这本书是结合C语言来讲解的,所以对于有C语言基础的男子伴会更容易一些。
嵌入式书籍第1本:《嵌入式系统开发之道》
用平易质朴的语言,以一个完整的嵌入式系统的开发流程为构架,通过一位“菜鸟”工程师与项目总监的幽默对话,故事性地带出嵌入式系统概念及开发要素。
并点出要成为一名称职的嵌入式系统工程师,在实际工作中所必须具备的各项知识及技能。
第2本:《嵌入式C语言自我修养》
这是一本专门为嵌入式读者构筑的C语言进阶学习图书。
本书的学习重点不再是C语言的基本句型,而是和嵌入式、C语言相关的一系列知识。
作者以`C语言为切入点,分别阐述了嵌入式开发所须要的众多核心理论和技能,力图帮助读者从零搭建嵌入式开发所须要的完整知识体系和技能树。
有些读者觉得这本书面面俱到,而且又面面不深入。我觉得这本书追求的就是以广度为主,囊括了嵌入式软件开发所须要的知识体系地图,涉及到具体的知识点时,还须要结合其他的书籍。
第3本:《嵌入式Linux基础教程(第2版)》
全面深入而又简明地探讨了建立嵌入式Linux系统的真谛。
书中除了探讨了嵌入式Linux系统,但是述说了处理器、内核、引导加载程序、设备驱动程序、文件系统等关键组件,介绍了嵌入式Linux系统的开发工具、调试技术。
第4本:《测试驱动的嵌入式C语言开发》
深入介绍怎样把测试驱动的开发方式应用于嵌入式C语言开发。
包括:测试框架,与系统中其他模块进行交互的代码的测试技术,如测试替身、仿制对象等,设计与持续改进代码,如写出更好代码的一些重要原则,构建可测并灵活设计的中级技术linux 关机,改进已有代码的实践方式。
第5本:《实时嵌入式系统设计原则与工程实践》
这本书豆瓣上目前没有评分,可能是由于它使用的场景不是这么普遍吧。
假如你的项目或产品,对于系统的实时性要求比较高,这么这本书里的好多设计思路就十分的有帮助!
在嵌入式实时系统的领域,大多是借助实时操作系统来达到实时性的目的的。
然而在X86平台上,对于应用层怎样进行实时性任务的设计,市面上的书籍真的不多。
这本书就是从这个角度来量化,怎么对应用层的任务(线程)进行调度,以达到产品设计要求。
电子-版本PDF下载
在学习过程中,积累了部份精典的电子书籍,你们按照学习须要自取。
在公众号【IOT物联网小镇】后台回复关键字:220120,即可获取下载地址。
假如可以的话,还是尽量订购纸质书籍,支持作者!
原创不易,请支持一下道哥,把文章分享给更多的嵌入式男子伴,感谢!
------End------
本文原创地址://q13zd.cn/rgclksxqrsrj.html编辑:刘遄,审核员:暂无