《深入理解计算机系统》是通过程序员的视角来介绍计算机系统,首先把高级语言转换成计算机所能理解的一种中间格式(如汇编语言),然后描述计算机如何解释和执行这些中间格式的程序,是系统的哪一部分影响程序的执行效率。在讲述计算机系统知识的同时,也给出了关于
C
语言和汇编语言的编程、阅读技巧以及基本的系统编程工具,还给出一些方法帮助程序员基于对计算机系统的理解来改善程序的性能等问题。本书强调对计算机系统概念的理解,但并不意味着不动手。如果按照本书的安排做每一章后面的习题,将有助于理解和加深正文所述的概念和知识,更可以从实际动手中学习到新的知识。
第2版与第1版的差别
:查看详情
本书的主要内容是关于计算机体系结构与编译器和操作系统的交互,包括:数据表示;汇编语言和汇编级计算机体系结构;处理器设计;程序的性能度量和优化;程序的加载器、链接器和编译器;包括
I/O
和设备的存储器层次结构;虚拟存储器;外部存贮管理;中断、信号和进程控制。
本书的最大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机系统,从最底层的数据在内存中的表示(如大多数程序员一直陌生或疑惑的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户态应用。贯串本书的一条主线是使程序员在设计程序时,能充分意识到计算机系统的重要性,建立起被所写程序可能被执行的数据或指令流图,明白当程序被执行时,到底发生了什么事。从而能设计出一个高效、可移植、健壮的程序,并能够更快地对程序排错、改进程序性能等。
原书是卡耐基-梅隆大学(
CMU
)的教材,现在很多国内外著名的大学也选用其为教材或辅助性资料,因此,本书的读者不仅仅是那些因为工作和兴趣而关注本书的人,还包括一些在校的大学生。我们认为,在校学生越早接触本书的内容,将越有利于他们学习计算机的相关课程,培养对计算机系统的研究兴趣。
总的来说,《深入理解计算机系统》一书是一个桥梁,它帮助程序员衔接了计算机系统的各个领域的知识,为程序员构造了一个概念性框架。对于各个领域,如计算机系统结构、操作系统、编译器、网络、并发编程的知识进一步获取,还需要进一步阅读相关书籍。
《深入理解计算机系统》从第一版到第二版,已经是七年的时光了。由于计算机技术的飞速发展,第二版相对于第一版做了大量的修改。首先,针对硬件技术和编译器技术的变化,第二版对系统的介绍,特别是实际使用部分,做了增加和修改。例如,既保持了原有的针对
32
位系统的说明,又增加了对
64
位系统的描述。其次,第二版增加了很多关于由算术运算溢出以及缓冲区溢出造成安全漏洞的内容。第三,更详细讲述了处理器对异常的发现和处理,这是计算机系统中的一个重点和难点。第四,对存储器的描述改为了基于
Intel Core i7
处理器的存储器层次结构,还增加了固态硬盘的内容。第五,强调了并发性,并发性既体现在处理器的实现中,也体现在应用程序编程中。
这次我们不仅对第二版较第一版有改动之处做了仔细的翻译,而且对第一版之译稿做了重新审视,重新校正,精益求精。比如,在保证原意正确的情况下,对一些句式做了变动,还有尽量减少被动语态的使用等,以符合中文的习惯。再如,根据我这几年教授《计算机体系结构》课程的经验,改变了某些术语的翻译,使之更接近于中文教科书中的术语使用。
本书中有些术语的翻译还是让我们难以抉择。在此,我们预先做一些解释和说明。
Operator
这个词,如果根据上下文,它表示的是一个运算,我们就翻译成运算符。如果它对应于一个操作,我们就翻译成操作符。
Local variable
,可以翻译成局部变量,也可以翻译成本地变量。考虑到还有
local data
、
local buffer
等词,我们选择统一将
local
翻译成“局部的”。
Chunk
这个词是一片或者一块的意思,常常用来表示一块连续的内存区域。它在第
6
、
7
和
9
章中出现较多。为了使之区别于
block
(块),我们选择将其翻译成“片”。
本书内容多,篇幅长,出于降低印刷成本和最后定价的考虑,我们不得不忍痛割爱,在中文版中不附上附录。经常读计算机书籍的读者都知道附录对于一本书完整度的重要性,所以,我们还是对附录进行了翻译和编辑,放到华章图书的网站以及一些相关网站上,供大家参考使用。
由于本书内容量大,翻译时间紧迫,尽管我们尽量做到认真仔细,但还是难以避免出现错误和不尽如人意的地方。在此欢迎广大读者批评指正,我们也会把勘误表及时在网上更新,便于大家阅读。
龚奕利,雷迎春
2010
年
9
月于珞珈山
分享到:
相关推荐
深入理解计算机系统>>中的头文件csapp.h及csapp.c
《深入理解计算机系统》(英文原版,Complete Edition)是一本深受全球IT专业人士推崇的经典教材,由Randal E. Bryant和David R. O'Hallaron合著。这本书以深入浅出的方式介绍了计算机系统的各个方面,包括硬件、...
根据提供的信息,我们可以深入探讨与《深入理解计算机系统》(CSAPP)相关的关键知识点,并结合描述及部分内容提及的Linux公社中的资源,进一步扩展对这些概念的理解。 ### 深入理解计算机系统(CSAPP) #### 核心...
《深入理解计算机系统》(英文原版为"Computer Systems: A Programmer's Perspective",简称CSAPP)是一本经典的计算机科学教材,它详细介绍了计算机系统的各个方面,对于程序员和计算机专业人士来说,是一本不可或...
《深入理解计算机系统》(CSAPP)是一本广泛认可的计算机科学教材,它涵盖了计算机系统的多个核心主题,包括硬件、操作系统、编译器以及内存管理等。Molloc Lab是该书实验部分的一个章节,专注于内存管理,特别是内存...
本人对 CSAPP 做的导图 参考资料主要来源于 CSAPP 和 哈工大 PPT
深入理解计算机系统(CSAPP)第三版,适用于kindle,经典好书!
《深入理解计算机系统》(英文原版,也称为CSAPP) 是一本计算机科学的经典教材,由Randal E. Bryant和David R. O'Hallaron共同撰写。这本书是计算机科学教育的重要资源,尤其对于想要深入理解计算机工作原理的学生和...
### 深入理解计算机系统 第三版 csapp 3ed #### 一、书籍概述与作者背景 《深入理解计算机系统》第三版(CSAPP 3ed)是一本广泛被计算机科学领域的学生和专业人士所推崇的经典教材。本书由卡内基梅隆大学的两位...
《深入理解计算机系统 CSAPP(原书第三版)》是一本经典的计算机系统教材,自第二版发行以来就受到了广泛的好评,并在全球范围内被多所知名大学作为教学用书。本书的第三版在原有的基础上进行了全面更新,特别是针对...
《深入理解计算机系统》是一本深受全球IT从业者和学生喜爱的经典教材,它全面而深入地讲解了计算机系统的各个层面,包括处理器、内存、输入/输出系统、操作系统、编译器以及网络等。这本书通过理论与实践相结合的...
书的确是难得的书。我第一次试图读这本书是几个月以前,当时第2章“信息的表示和处理”没看完就放下了,觉得讲了一大堆数字表达方式很没意思……这次稍微坚持了一下,没想到就一口气读下来了…… ...
《深入理解计算机系统》(CSAPP)是卡内基梅隆大学(CMU)开设的一门经典计算机科学课程,这门课全面涵盖了计算机系统的各个方面,包括硬件、操作系统、编译器、网络以及内存管理等核心主题。提供的全套PPT旨在帮助学生...