最近,在知乎看到一个问题,“嵌入式Linux有哪些好书举荐”。我读研期间也喜爱珍藏一些书籍,每次看到京东有流动,总是忍不住想买一些书籍回来。
随着工夫越来越久,我买的书越来越多,然而都看完不太事实。起初发现书不在于多,而在于经典。
买了书搬家是个麻烦事,我从网上收集了一套计算机电子书,从中筛选了我看过的好书分享给大家。
在这里我举荐我看过的比拟好的书,从入门到进阶。
这是我上学期间买过的一些书,其中的很大一部分还没看完:
我整顿的这些书大家能够在这里收费白嫖,都是嵌入式畛域的经典书籍,从入门到深刻了解,整顿全了!
举荐一个 github仓库,下面放了上百本经典的嵌入式,计算机书籍,能够star一下,下次找书间接在下面搜寻就能够了:
github 书籍宝藏仓库
gitee 书籍宝藏仓库
@[toc]
编程语言
C
《C primer plus》
这本书简直囊括了C语言所有的知识点,并且书中对于每一个语法细节都有很多活泼简略的例子,同时给出了程序的运行后果,学起来会很难受,不会那么干燥。
始终认为,能把printf函数讲清楚的书肯定是好书。从本书对printf函数的解说的篇幅之大,就能够看出它的专业性。
600多页的书,算是第一本认真读完的C语言类书籍。如果不是因为它的趣味而且业余、具体但不是手册类型的书籍,我必定是读不上来的。
总是感觉厚书通常废话多,然而这本书却值得细细品读。经常性的,书中所提到的问题恰好是困扰了你很久的问题,读下之后,有想抱着作者亲一口的激动!!
总的来说,后面的比拟根底,前面的稍有难度。后面尽管简略,然而也有很多比其余书出彩的中央,前面尽管难了点,然而并非头重脚轻,而且这一部分通常很乏味。
强烈建议想好好学C语言的人,肯定要读这本书。如果你还会点汇编常识,并且有探索的精力,那么这本书真的会让你很有成就感和共鸣感!
老手学习的时候肯定要本人入手敲每一个例子,这样能力学得好,代码能看懂跟能写进去差距还是挺大的。
《C和指针》
学会C的根本实践后,想要从高级程度进阶到中级程度,该书无疑是最好的一本参考书。指针能够说是C语言的灵魂,轻易看一下linux kernel源码,就能发现外面到处都有指针的身影,很多让人眼前一亮的技巧都是通过指针实现的。
这里须要揭示一点,尽管本书书名是《C和指针》,然而其它的C语法都有具体介绍,只不过书中对指针的介绍比拟多。
《C陷阱与缺点》
这本书是Andrew Koenig大神以本人1985年在Bell实验室时发表的一篇论文为根底,联合本人的工作教训扩大而成的。作者写作本书的出发点不是要批评C语言,而是要帮忙C程序员绕过编程过程中的陷阱和阻碍。
相比拟那些大部头的计算机图书,这本只有100多页的小册子会让你有读上来的欲望,本书的内容是短小精悍。
全书分为8章,别离从词法剖析、语法语义、连贯、库函数、预处理器、可移植性缺点等几个方面剖析了C编程中可能遇到的问题。
读过这本书之后,当本人写代码时,要时刻回忆书中的内容,避免本人犯同样的谬误!
《C专家编程》
这本书与展现了最优良的C程序员所应用的编码技巧,并专门开拓了一章对C++的基础知识进行了介绍。
书中C的历史、语言个性、申明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了粗疏的解说和深刻的剖析。全书撷取几十个实例进行解说,对C程序员具备十分高的实用价值。
C++
《C++ Primer》
这本书齐全是从一个业余开发者的角度去写的,把基础知识讲的很的深刻和很透彻,让你了解什么是c++开发思维,解说了很多在理论开发中的用法,问题,留神点等。
你能够感触到作者的程度之高,态度之认真,学完这本书,会让你对整个c++语言有个比拟清晰的意识,对代码的规范化,对内存管理机制,对效率问题都会有不少晋升。
《Effective C++ 》
这是一本C++的入门书籍,Lippman之所以写这本书就是因为《C++ Primer》对于初学者来说太轻便了,而这本书却是从不同的方面——C++的实质和组织构造对语言进行阐释,能够帮忙初学者对这门语言有一个大抵的理解。
对于初学者而言,不要在最开始就陷入到C++的细节之中,否则会有“不识庐山真面目,只缘身在此山中”的感觉,C++的语法切实太多了。。。
《STL 源码分析》
对这本经典的书我曾经无奈用简略的词语来形容了。我只能说,学C/C++的人如果没有看过这本书,切实是惋惜。
这本书,侯捷老师对 STL 中的各个组件进行了分析,对 STL 的用法给出了一些示例,另外把 STL 中简直所有性能都讲了一遍,在容器局部对其中用到的数据结构进行了粗疏的解说。
尤其值得一提的是,书中有大量的插图,对于读者了解数据结构和算法可能起到事倍功半的成果,可见侯捷老师是下了大量功夫的。 C++程序员都应该读读这本书。
数据结构与算法
《大话数据结构》
如果你跟我一样不是计算机科班出身,又想自学数据结构以及初步理解算法,那么就从这样的书籍开始吧。
十分棒的一本入门数据结构的书,每一章节都会有一个场景举例帮忙了解数据结构,书中代码也能够边调试边学习。
《数据结构与算法剖析-C语言形容》
在学习过C语言后,不要拖太久了,就看它,书很好,解说透彻扼要,尽管范畴有点广,然而比国内大部分曾经好很多了,倡议刷完前面的题目,做有意见挑战性的锤炼能力的题目。
这本讲算法的尽管只有300多页,比不上算法导论那样的大部头,不过讲了许多的算法设计技术,整本书的信息量很大,好好研读,肯定会有较大播种。
ARM体系与架构
《ARM体系结构与编程》
这本书能够看作是对ARM参考手册的中文摘译版,看ARM英文手册有难度的,能够参考下这本书。
《嵌入式Linux利用开发齐全手册》
韦老师写的齐全手册,很全面。从裸机到驱动再到嵌入式应用。 联合着开发板和视频食用成果更好。
操作系统
《古代操作系统》
介绍计算机操作系统很不错的一本书,看的时候有种膜拜感啊,入门操作系统必读的一本书。
从各个层面上进行介绍,够广也够深,最初一章的各方面综合介绍也好有意思,开端的相干书籍举荐也大赞。这也是我感觉写操作系统原理写的最好的书,很适宜初学者入门操作系统浏览,能够全方面理解操作系统原理。
毛病:中文翻译版不给力,个别中央可能会影响了解,但根本意思是不会有显著出入的。如果你工夫精力容许,倡议缓缓啃原版;如果切实没那么多精力,翻译版也还对付。
《操作系统——精华与设计原理》
这本书和《古代操作系统》相似,两本书看一本就好了,另一本能够用来当作工具书查阅。
《操作系统假相还原》
力荐此书,但倡议先读完操作系统原理教材再看,你会发现浏览教材的过程中产生的很多疑难都被这本书解答了。
教材为了将操作系统原理讲得具备普适性,会成心将很多原理抽象化,防止其中的细节,所以读起来常常感觉云里雾里,似懂非懂。而且为了显得权威,语言会比拟僵硬,艰涩难懂。
这本书会把那些因为常识局限性导致的难以描述分明的纳闷都答复了,让你对操作系统有更清晰更全面的意识。
我已经对操作系统的很多实现细节产生过疑难,但 google 半天也找不到称心的答复,因为是很细节的货色,关键词少了犹如海底捞针,关键词多了后果往往寥寥无几,而且还答非所问,即便能搜到很多都是带着讲一下,并没有深入探讨。
总之,这本书非常适合那些对操作系统有很强趣味的同学,读后相对受益匪浅。
举荐一个 github仓库,下面放了上百本经典的嵌入式,计算机书籍,能够star一下,下次找书间接在下面搜寻就能够了:
github 书籍宝藏仓库
gitee 书籍宝藏仓库
计算机组成原理
《程序是怎么跑起来的》
计算机的实质本没有那么简单,都被专家教授的一大堆外星语搞得没人想学。
这本书用人类能够了解的语言配合示例简要的介绍了cpu,内存,硬盘,操作系统等基本概念,及他们是如何演变成当初这样的。将一个概念讲进去不难,但将一个概念给他人讲懂了才难。
读完这本书,印象最深的是它当中对于补码的形容。 “将二进制数的各数位的数值全副取反,而后再将后果加1”,这种形容与我看过的教材很不一样。
我看过的教材都是说“除第一位的其余位取反”,这促使我上网进一步理解了一下,才终于明确了为什么当初我老是记不明确补码的计算方法。。。因为本来教材给出的办法就是很不天然且很僵硬的做法。。。。
《编码-隐匿在计算机软硬件背地的语言》
作为电子业余的学生,看到这本书感觉很亲切,电路+数电+微机原理的科普版本。外面波及了模仿电路,数字电路,组成原理,汇编语言,操作系统,高级编程语言等计算机专业课程。特地并重模仿电路和数字电路。
如果在我大二的时候看到这本书,我的数电、计算机原理乃至整个大学生涯的文科知识结构都会有天翻地覆的变动。
作者用丰盛的设想和清晰的笔墨将看似繁冗的实践论述得通俗易懂,你丝毫不会感到干燥和僵硬。更重要的是,你会因而而取得对计算机工作原理较粗浅的了解。这种了解不是形象层面上的,而是具备肯定深度的。 深入浅出!从逻辑门到操作系统!
《深刻了解计算机系统》
CSAPP yyds,被誉为计算机科学中的圣经。学习这本书,肯定要做一下官网的实验课,如果只看书,大略能学到四成,看书+ 做lab 才可能学到七八成。
所以大家肯定要去实现lab,而且这些lab都是十分乏味的,比方拆炸弹、缓冲区溢出攻打、代理服务器等。
lab链接:http://csapp.cs.cmu.edu/3e/la...
视频教程:https://www.bilibili.com/vide...
看完你会对计算机底层机制有一个overview式的了解,分明地晓得一个"hello world"程序从编写,编译,链接,最初理论运行的全过程。
作者在开篇提到,"如果你全心投身学习本书中的概念,齐全了解底层计算机系统以及它对应用程序的了解,你会步上成为为数不多的大牛之路"。
没错,是"步上","逐步成为"大牛。CSAPP是一本很根底的书,糅合了计算机组成原理,操作系统,体系结构,网络编程,并行程序设计原理等课程的基础知识。
除第一章外,每一章甚至是一大节都能够扩大成一本书来讲授。对于刚接触编程,或者像我这种非CS业余出身的人来说,这是一本方向性的书,它会通知你,要想成为一个优良的程序员,你该当重点了解哪些计算机底层原理,通知你应该在当前的自学过程中,应该重点学习哪些课程。
不理解底层,永远不可能写出好的C程序,也不可能写出高效的程序。计算机没有那么智能,不会思考,只会依照数字逻辑模式去判断问题,这就须要程序员对计算机原理有肯定理解。
计算机网络
《网络是怎么连贯的》
将一个又大又硬的核桃 砸破,掰开,揉碎,喂给你吃,夫复何求?读起来真的非常畅快,少有些艰涩的字词句须要重复咀嚼,多的是根本简略易懂的解释和阐明。
开局就给出整本书的整体修建架构,章章结尾剖析咱到第几层了,还有几层,又点明几个重点,段落间还有些小总结,重要的是插图做的太好了,形象变具体图起到了极大的作用。读着能让我感觉有种本人学到了,赚到了的感觉,真的棒。
《计算机网络:自顶向下办法》
一本很适宜自学的书,解说粗疏而富裕条理,同时略去了很多细枝末节的信息,从而不至于让初学者莫衷一是。能够说是学计算机网络最好的图书,没有之一。
无论是对每一层的解释,还是整个计算机网络的总体形容都通俗易懂由浅入深,第七版还更新了sdn等比拟新的内容与时俱进,惟一的毛病就是翻译在一些中央不够认真,有能力还是看原版比拟好。
《TCP/IP 详解》
计算机网络入门书籍,全面度还是不错的,尽管举例上有点老。想对网络协议有较全面理解的能够一看,但卷一关注的是协定局部。
举荐一个 github仓库,下面放了上百本经典的嵌入式,计算机书籍,能够star一下,下次找书间接在下面搜寻就能够了:
github 书籍宝藏仓库
gitee 书籍宝藏仓库
Linux环境
《鸟哥的LINUX私房菜》
最好的中文Linux入门书,案头必备的工具书,内容很全,根本想晓得的都能够在外面找到,适宜当作工具书来查阅,不适宜通读。
《UNIX环境高级编程》
百科全书式的书籍,思路清晰,借着一圈儿介绍各种零碎调用的过程,基本上就顺带把每个 api 前面的实现大略也都讲了。
翻译有些生涩。倡议先疾速通览,而后用到时再细细翻看所需章节。
《UNIX网络编程》
unix网络编程的宝典,这是一本很厚的书(800页),然而如果学完这本书就认为精通网络编程的话,那就错了。
网络编程水很深,学完这本书只是个开始。 我集体感觉很多章节不必细看,大抵理解就行,遇到的时候有能有映像,而后翻出来再具体看看,当手册用。
《Linux命令行与Shell脚本编程大全》
嵌入式开发中,shell脚本偶然也会用到。这本书既有根底又有进阶。日常工作中很难系统性学习,通过这本书能够查缺补漏。
有些脚本用shell写预计比Python会快一些,前提是对shell要足够相熟!总的来讲这本书还是不错的!
Linux驱动
《Linux设施驱动开发详解》
这本书当作驱动开发的入门书籍不错。特地是外面讲的device tree以及platform bus局部,解释了之前的一些纳闷。
整体而言这本书尚可,挺实用,能够作为入门,但不适宜深刻学习。
《Linux设施驱动程序》
对于写Linux驱动的人来说, 这本书应该是教科书级别的!经典的书籍就是一时半会看不懂,倡议大家实际之后再回过头来看一看。
尽管当初的linux设施驱动的接口和作者写书时的差异曾经很大了,然而其中的次要框架根本没有什么变动。
能够依据本人的趣味去浏览一个残缺的驱动,再通过驱动模型的视角去了解一个驱动如何在模型中体现,就能够把整个驱动的框架了然于心了。剩下的就是去相熟特定类型驱动的特点和对应接口了。
Linux内核
《Linux内核齐全分析-基于0.12内核》
首先膜拜一下赵博士,通过这本书能感触到他钻研的态度和自私分享成绩的肚量。
如果想理解一个操作系统的实现过程,那么这本书就是你的最佳抉择,它抉择Linux 0.12内核解说了整个内核代码,一个简略的操作系统就是这样子的!
强烈建议所有欲深究零碎编程的同学们通读一遍,一方面对x86零碎会有一个比拟粗浅的了解,另一方面对进步浏览代码能力也有很大的帮忙 。
《Linux内核设计与实现》
这本书对于想玩Linux内核开发的人来说,算得上是入门宝典了。基本上涵盖了Linux内核开发须要的常识,尽管有些中央写得不够深刻,但我当初每读一次都有新的了解和播种。
《深刻了解LINUX内核》
经典无需多言!内核设计里有不少精妙绝伦的设计值得学习和琢磨!
这本书次要内容包含过程治理,内存治理,虚构文件系统,设施驱动等。读完这本书,对Linux中断的硬件原理,过程调度类型工夫片原理,内存缺页中断解决流程这三局部技术内容领悟更加粗浅。
惟一的毛病就是翻译的有点僵硬, 倡议与英文原版对照一起浏览。
《深刻Linux内核架构》
讲的很粗疏,基于 2.6 的源码来解说,然而简直所有货色在 5.0 里仍然是实用的。此书要和《深刻了解内核》联合起来看,几乎完满极了。
《Linux内核源代码情景剖析》
基于场景跟着作者去浏览内核源码,学习效果还是很好的。作者对各个外围的性能从入口到进口一步步具体的解释,将各个函数依据性能串联起来,造成一条条清晰的主线,造成一个有机的整体。
书本尽管很厚,浏览起来十分畅快,跟看小说一样。书本也不止是分析代码,而是先把概念讲的很分明。不用在乎它的源码版本老旧,外围的框架还是一样的。
这本书对相干细节的形容十分分明,毛病就是在一堆又一堆代码中穿梭找不到森林,很容易迷失掉自我。就如同是用source insight跟踪函数一样,懒得读源代码的敌人,能够先读读这本。
。。。。未完待续,后续会整体得更欠缺,更加成体系。
我整顿的这些书大家能够在这里收费白嫖,都是嵌入式畛域的经典书籍,从入门到深刻了解,整顿全了!
举荐一个 github仓库,下面放了上百本经典的嵌入式,计算机书籍,能够star一下,下次找书间接在下面搜寻就能够了:
github 书籍宝藏仓库
gitee 书籍宝藏仓库