近来,在知乎看见一个问题,“嵌入式Linux有什么好书推荐”。我读研期间也喜欢收藏一些书籍,每次见到易迅有活动,总是忍不住想买一些书籍回去。
随着时间越来越久,我买的书越来越多,而且都看完不太现实。后来发觉书不在于多,而在于精典。
买了书搬家是个麻烦事,我从网上收集了一套计算机电子书,从中筛选了我看过的好书分享给你们。
在这儿我推荐我看过的比较好的书,从入门到进阶。
这是我上学期间买过的一些书,其中的很大一部份还没看完:
我整理的那些书你们可以在这儿免费白嫖,都是嵌入式领域的精典书籍,从入门到深入理解,整理全了!
推荐一个github库房,里面放了上百本精典的嵌入式,计算机书籍,可以star一下,上次找书直接在里面搜索就可以了:
github链接:
gitee链接:
@
数据结构与算法ARM体系与构架操作系统计算机组成原理计算机网路Linux环境Linux驱动Linux内核编程语言C《Cprimerplus》
这本书几乎涵盖了C语言所有的知识点,而且书中对于每一个句型细节都有好多生动简单的事例,同时给出了程序的运行结果linux内核书籍推荐,学上去会很舒服,不会这么无趣。
仍然觉得,能把printf函数讲清楚的书一定是好书。从本书对printf函数的讲解的篇幅之大,就可以看出它的专业性。
600多页的书,算是第一本认真读完的C语言类书籍。倘若不是由于它的趣味并且专业、详细但不是指南类型的书籍,我肯定是读不下去的。
总是认为厚书一般屁话多,而且这本书却值得细细品读。常常性的,书中所提及的问题正好是困惑了你好久的问题,读下然后,有想抱着作者亲一口的冲动!!
总的来说,上面的比较基础,前面的稍有难度。上面似乎简单,而且也有好多比其他书出彩的地方,旁边其实难了点,而且并非虎头蛇尾,但是这一部份一般很有趣。
强烈建议想好好学C语言的人,一定要读这本书。假如你就会点汇编知识,而且有探究的精神,这么这本书真的会让你很有成就感和共鸣感!
菜鸟学习的时侯一定要自己动手敲每一个反例,这样就能学得好,代码能读懂跟能写下来差别还是挺大的。
《C和表针》
学会C的基本理论后,想要从中级水平进阶到初级水平,该书无疑是最好的一本参考书。表针可以说是C语言的灵魂,随意看一下linuxkernel源码,能够发觉上面四处都有表针的身影,好多让人眼前一亮的方法都是通过表针实现的。
这儿须要提醒一点,尽管本书书名是《C和表针》,然而其它的C句型都有详尽介绍,只不过书中对表针的介绍比较多。
《C圈套与缺陷》
这本书是AndrewKoenig高手以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩充而成的。作者写作本书的出发点不是要批判C语言,而是要帮助C程序员绕开编程过程中的圈套和障碍。
相比较这些大部头的计算机图书,这本只有100多页的小图册会让你有读下去的欲望,本书的内容是短小精悍。
全书分为8章,分别从词法剖析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面剖析了C编程中可能碰到的问题。
读过这本书以后,当自己写代码时,要时刻回想书中的内容linux rar,避免自己犯同样的错误!
《C专家编程》
这本书与展示了最优秀的C程序员所使用的编码方法,并专门开辟了一章对C++的基础知识进行了介绍。
书中C的历史、语言特点、声明、数组、指针、链接、运行时、内存以及怎样进一步学习C++等问题进行了细致的讲解和深入的剖析。全书依循几十个实例进行讲解,对C程序员具有特别高的实用价值。
C++《C++Primer》
这本书完全是从一个专业开发者的角度去写的,把基础知识讲的很的深入和很透彻,让你理解哪些是c++开发思想,讲解了好多在实际开发中的用法,问题,注意点等。
你可以感遭到作者的水平之高,心态之认真,学完这本书,会让你对整个c++语言有个比较清晰的认识,对代码的规范化,对显存管理机制,对效率问题就会有不少提高。
《EffectiveC++》
这是一本C++的入门书籍,Lippman之所以写这本书就是由于《C++Primer》对于初学者来说太笨重了,而这本书却是从不同的方面——C++的本质和组织结构对语言进行解构,可以帮助初学者对这门语言有一个大致的了解。
对于初学者而言,不要在最开始就深陷到C++的细节之中,否则会有“不识庐山真面目,只缘身在此山中”的觉得,C++的句型实在太多了。。。
《STL源码分析》
对这本精典的书我早已难以用简单的词句来形容了。我只能说,学C/C++的人若果没有看过这本书,实在是可惜。
这本书,侯捷老师对STL中的各个组件进行了探讨,对STL的用法给出了一些示例,另外把STL中几乎所有功能都讲了一遍,在容器部份对其中用到的数据结构进行了细致的讲解。
尤其值得一提的是,书中有大量的插图,对于读者理解数据结构和算法才能起到事半功倍的疗效,可见侯捷老师是下了大量工夫的。C++程序员都应当读读这本书。
数据结构与算法《大话数据结构》
假如你跟我一样不是计算机科班出身,又想自学数据结构以及初步了解算法,这么就从这样的书籍开始吧。
十分棒的一本入门数据结构的书,每一章节就会有一个场景举例帮助理解数据结构,书中代码也可以边调试边学习。
《数据结构与算法剖析-C语言描述》
在学习过C语言后,不要拖太久了,就看它,书挺好,讲解透彻简明,尽管范围有点广,并且比国外大部份早已好好多了,建议刷完前面的题目,做有意见挑战性的锻练能力的题目。
这本讲算法的似乎只有300多页linux内核书籍推荐,比不上算法概论那样的大部头,不过讲了许多的算法设计技术,整本书的信息量很大,好好细读,一定会有较大收获。
ARM体系与构架《ARM体系结构与编程》
这本书可以看作是对ARM参考指南的英文摘译版,看ARM中文指南有难度的,可以参考下这本书。
《嵌入式Linux应用开发完全指南》
韦老师写的完全指南,很全面。从裸机到驱动再到嵌入式应用。结合着开发板和视频食用疗效更好。
操作系统《现代操作系统》
介绍计算机操作系统很不错的一本书,看的时侯有种膜拜感啊,入门操作系统必看的一本书。
从各个层面上进行介绍,够广也够深,最后一章的各方面综合介绍也好有意思,末尾的相关书籍推荐也大赞。这也是我认为写操作系统原理写的最好的书,很适宜初学者入门操作系统阅读,可以全方面了解操作系统原理。
缺点:英文翻译版不给力,某些地方可能会影响理解,但基本意思是不会有显著出入的。假如你时间精力准许,建议渐渐啃原版;假如实在没这么多精力,翻译版也还将就。
《操作系统——精髓与设计原理》
这本书和《现代操作系统》类似,两本书看一本就好了,另一本可以拿来当做工具书查阅。
《操作系统真相还原》
力荐此书,但建议先读完操作系统原理教材再看,你会发觉阅读教材的过程中形成的好多疑惑都被这本书解答了。
教材为了将操作系统原理讲得具有普适性,会故意将好多原理具象化,防止其中的细节,所以读上去常常觉得云里雾里,似懂非懂。并且为了变得权威,语言会比较拗口,生涩难懂。
这本书会把这些因为知识局限性造成的无法描述清楚的疑虑都回答了,让你对操作系统有更清晰更全面的认识。
我以前对操作系统的好多实现细节形成过疑惑,但google半天也找不到满意的回答,因为是很细节的东西,关键词少了如同大海捞针,关键词多了结果常常寥寥无几,并且还答非所问,虽然能搜到好多都是带着讲一下,并没有深入剖析。
其实,这本书特别适宜这些对操作系统有很强兴趣的朋友,读后绝对获益颇丰。
推荐一个github库房,里面放了上百本精典的嵌入式,计算机书籍,可以star一下,上次找书直接在里面搜索就可以了:
github链接:
gitee链接:
计算机组成原理《程序是怎么跑上去的》
计算机的本质本没有这么复杂,都被专家院士的一大堆外星语搞得没人想学。
这本书用人类可以理解的语言配合示例简略的介绍了cpu,显存,硬碟,操作系统等基本概念,及她们是怎么演弄成如今这样的。将一个概念讲下来不难,但将一个概念给他人讲懂了才难。
读完这本书,印象最深的是它当中对于进制的描述。“将二补码数的各数位的数值全部取反,之后再将结果加1”,这些描述与我看过的教材很不一样。
我看过的教材都是说“除第一位的其他位取反”,这使得我上网进一步了解了一下,才总算明白了为何当年我老是记不明白进制的估算方式。。。由于先前教材给出的方式就是很不自然且很呆板的做法。。。。
《编码-隐匿在计算机软硬件背后的语言》
作为电子专业的中学生,见到这本书认为很亲切,电路+数电+微机原理的科普版本。上面涉及了模拟电路,数字电路,组成原理,汇编语言,操作系统,中级编程语言等计算机专业课程。非常侧重模拟电路和数字电路。
若果在我大二的时侯见到这本书,我的数电、计算机原理乃至整个学院生涯的理科知识结构就会有翻天覆地的变化。
作者用丰富的想像和清晰的笔端将看似琐碎的理论论述得浅显易懂,你丝毫不会倍感沉闷和粗俗。更重要的是,你会为此而获得对计算机工作原理较深刻的理解。这些理解不是具象层面上的,而是具有一定深度的。深入浅出!从逻辑门到操作系统!
《深入理解计算机系统》
CSAPPyyds,被誉为计算机科学中的旧约。学习这本书,一定要做一下官方的实验课,若果只看书,大约能学到四成,看书+做lab才可能学到七八成。
所以你们一定要去完成lab,但是这种lab都是十分有趣的,例如拆炸弹、缓冲区溢出功击、代理服务器等。
lab链接:
视频教程:
看完你会对计算机底层机制有一个overview式的理解,清楚地晓得一个"helloworld"程序从编撰,编译,链接,最后实际运行的全过程。
作者在开篇提及,"假如你全心涉足学习本书中的概念,完全理解底层计算机系统以及它对应用程序的理解,你会步上成为为数不多的大牛之路"。
没错,是"步上","渐渐成为"大牛。CSAPP是一本很基础的书,承袭了计算机组成原理,操作系统,体系结构,网路编程,并行程序设计原理等课程的基础知识。
除第一章外,每一章甚至是一小节都可以扩充成一本书来讲授。对于刚接触编程,或则像我这些非CS专业出身的人来说,这是一本方向性的书,它会告诉你,要想成为一个优秀的程序员,你应该重点理解什么计算机底层原理,告诉你应当在之后的自学过程中,应当重点学习什么课程。
不了解底层,永远不可能写出好的C程序,也不可能写出高效的程序。计算机没有这么智能,不会思索,只会依照数字逻辑模式去判定问题,这就须要程序员对计算机原理有一定了解。
计算机网路《网络是如何联接的》
将一个又大又硬的花生砸破,剖开,弄碎,喂给你吃,夫复何求?读上去真的非常痛快,少有些冗长的字词语须要反复吞咽,多的是基本简单易懂的解释和说明。
开局就给出整本书的整体建筑构架,章章开头剖析咱到第几层了,还有几层,又点明几个重点,段落间还有些小总结,重要的是插图做的太好了,具象变具体图起到了极大的作用。读着能让我感觉有种自己学到了,赚到了的觉得,真的棒。
《计算机网路:自顶向上方式》
一本很适宜自学的书,讲解细致而富于条理,同时略去了好多细枝末节的信息,因而不至于让初学者无所适从。可以说是学计算机网路最好的图书,没有之一。
无论是对每一层的解释,还是整个计算机网路的总体描述都浅显易懂由浅入深,第七版还更新了sdn等比较新的内容与时俱进,惟一的缺点就是翻译在一些地方不够认真,有能力还是看原版比较好。
《TCP/IP解读》
计算机网路入门书籍红旗linux桌面版,全面度还是不错的,尽管举例上有点老。想对网路合同有较全面了解的可以一看,但卷一关注的是合同部份。
推荐一个github库房,里面放了上百本精典的嵌入式,计算机书籍,可以star一下,上次找书直接在里面搜索就可以了:
github链接:
gitee链接:
Linux环境《鸟哥的LINUX私房菜》
最好的英文Linux入门书,案头必备的工具书,内容很全,基本想晓得的都可以在上面找到,适宜当成工具书来查阅,不适宜默读。
《UNIX环境中级编程》
百科全书式的书籍,思路清晰,借着一圈儿介绍各类系统调用的过程,基本上就顺带把每位api旁边的实现大约也都讲了。
翻译有些生硬。建议先快速通览,之后用到时再细细翻看所需章节。
《UNIX网路编程》
unix网路编程的宝典,这是一本很厚的书(800页),而且假如学完这本书就以为精通网路编程的话,那就错了。
网路编程水很深,学完这本书只是个开始。我个人感觉好多章节不用细看,大致了解就行,遇见的时侯有能有映像,之后翻下来再详尽瞧瞧,当指南用。
《Linux命令行与Shell脚本编程大全》
嵌入式开发中,shell脚本偶而也会用到。这本书既有基础又有进阶。日常工作中很难系统性学习,通过这本书可以查缺补漏。
有些脚本用shell写恐怕比Python会快一些,前提是对shell要足够熟悉!总的来讲这本书还是不错的!
Linux驱动《Linux设备驱动开发解读》
这本书当成驱动开发的入门书籍不错。非常是上面讲的devicetree以及platformbus部份,解释了之前的一些疑虑。
整体而言这本书尚可,挺实用,可以作为入门,但不适宜深入学习。
《Linux设备驱动程序》
对于写Linux驱动的人来说,这本书应当是教科书级别的!精典的书籍就是一时半会看不懂,建议你们实践以后再回过头来看一看。
尽管如今的linux设备驱动的插口和作者写书时的差异早已很大了,而且其中的主要框架基本没有哪些变化。
可以按照自己的兴趣去阅读一个完整的驱动,再通过驱动模型的视角去理解一个驱动怎样在模型中表现,就可以把整个驱动的框架了然于心了。剩下的就是去熟悉特定类型驱动的特性和对应插口了。
Linux内核《Linux内核完全分析-基于0.12内核》
首先膜拜一下赵博士,通过这本书能感遭到他钻研的心态和无私分享成果的肚量。
假如想了解一个操作系统的实现过程,这么这本书就是你的最佳选择,它选择Linux0.12内核讲解了整个内核代码,一个简单的操作系统就是这样子的!
强烈建议所有欲考量系统编程的朋友们研读一遍,一方面对x86系统会有一个比较深刻的理解,另一方面对提升阅读代码能力也有很大的帮助。
《Linux内核设计与实现》
这本书对于想玩Linux内核开发的人来说,算得上是入门宝典了。基本上囊括了Linux内核开发须要的知识,即使有些地方写得不够深入,但我如今每读一次都有新的理解和收获。
《深入理解LINUX内核》
精典无需多言!内核设计里有不少精妙绝伦的设计值得学习和揣测!
这本书主要内容包括进程管理,显存管理,虚拟文件系统,设备驱动等。读完这本书,对Linux中断的硬件原理,进程调度类型时间片原理,显存缺页中断处理流程这三部份技术内容感悟愈发深刻。
惟一的缺点就是翻译的有点拘谨,建议与英语原版对照一起阅读。
《深入Linux内核构架》
讲的很细致,基于2.6的源码来讲解,而且几乎所有东西在5.0里仍然是适用的。此书要和《深入理解内核》结合上去看,简直完美极了。
《Linux内核源代码情境剖析》
基于场景跟随作者去阅读内核源码,学习疗效还是挺好的。作者对各个核心的功能从入口到出口一步步详尽的解释,将各个函数依据功能串联上去,产生一条条清晰的主线,产生一个有机的整体。
书本似乎很厚,阅读上去十分痛快,跟看小说一样。书本也不止是分析代码,而是先把概念讲的很清楚。毋须在意它的源码版本老旧,核心的框架还是一样的。
这本书对相关细节的描述十分清楚,缺点就是在一堆又一堆代码中穿梭找不到森林,很容易迷失掉自我。就似乎是用sourceinsight跟踪函数一样,懒得读源代码的同学,可以先读读这本。
。。。。未完待续,后续会整体得更健全,更加成体系。
我整理的那些书你们可以在这儿免费白嫖,都是嵌入式领域的精典书籍,从入门到深入理解,整理全了!
推荐一个github库房,里面放了上百本精典的嵌入式,计算机书籍,可以star一下,上次找书直接在里面搜索就可以了:
github链接:
gitee链接: