您的位置:首页 > 理论基础

深入理解计算机系统 - 引言

2014-04-08 20:01 211 查看

深入理解计算机系统(CSAPP)

简单的说这是一本所有计算机学生都必读的经典教材,其内容涵盖非常广,包括了:

底层数据的基础表示,主要是二进制补码,浮点数的IEEE标准等;

CPU内部的重要设计,例如流水线设计,指令集设计等;

C语言的各种底层细节,各种语法细节对应的汇编实现,调用规范等;

编译链接的细节,到底什么是链接,以及链接中究竟做了哪些事等;

IO开发、并发、网络编程,一些基础的IO开发原理,socket编程,死锁与互斥等问题;

虚拟内存,经典问题;

我最早接触到这本书是大二时,在图书馆的偶遇,那时还是电力出版的绿色封面的修订版(我一直觉得图书馆的价值不是在于坐在里面看书,更重要的是不定期的进去在一排排书架中发掘好书)。对这本教材可以说当场看了第一章就惊为天人,感觉这本书写的真好,把我很多以前模糊不清的东西都写透了,整个文字非常通俗易懂(中文翻译的也非常好。向本书的译者龚奕利,雷迎春致敬)。再配上书后大量高质量的习题(很有一种高中时的数学教材的感觉)。

可以说本书两个优点也是很多现在计算机教材的缺点:

1、很多教材写得云里雾里,中文翻译往往更加糟糕(还是应该多看英文原版教材,不过如果有中文译本很多时候确实能加快看书的效果和速度)。我一直坚信大多数情况下一本教材我看不懂不是我的问题,而是这本教材的问题;

2、缺乏高质量习题。这一点ACM竞赛中广为采用的OJ平台应该更多的推广到计算机本科教学中(不仅仅是算法和数据结构领域!)。计算机教材还应多向数学教材学习,本科基础阶段一定要有大量高质量的习题练习,把基础打好才是最重要的;

可以说,CSAPP在以上两个问题解决的非常完美,在广度和深度上也非常适合大学本科2年级以上的学生入手,这里就再推荐一次吧(现实中已经向无数人推荐过这本教材了)。

有了好的教材,还得好好深入研读才行,我记得有个数学家说过:“读数学书若不做习题,如入宝山而空返”。这里把数学书替换为CSAPP非常恰当。如果不做习题不写代码,光是看书那真是浪费了这本好教材!

这本书我个人从头到尾断断续续读过2遍了,很多习题都手写或上机完成过,但始终缺乏一个好的总结。我现在觉得总结也是学习的一个重要部分,假设随便选择CSAPP中的一章,能在背着书的情况下给别人讲清这一章的内容是非常具有挑战性的。我曾在组内给师弟讲过其中几章,发现很多问题看似简单,自己似乎已经会了,但真要给别人讲却又说不出来了,这就是没真正学会的表现。

我想不妨就在这里,从今天开始重新记录每一章的阅读总结(当然还会把自己OneNote和Evernote中已有的其他技术总结慢慢整理上来)。

之后我会慢慢整理每一章的阅读笔记总结,欢迎各位与我讨论,大家共同进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息