本文发表在 rolia.net 枫下论坛1) 操作系统方面:
如果你对操作系统原理很好奇,想一探究竟,推荐你必读的几本书,记住不要在汤子赢的书上浪费精力,看过以下的书,就知道什么是水平上的差距了:)
Abraham Silberschatz的两本书:
1. 实用操作系统概念(影印版)高教出版社
2. 操作系统概念(第六版影印版)高教出版社
这个作者的level是顶尖级的,来自贝尔实验室,是目前世界上操作系统方面的领军人物,我个人认为比坦尼伯姆要强,虽然坦也很强:),这两本书第二本和第一本很多地方相似,区别在于第二本理论偏重一些,第一本实例讨论的更多一些。这两本书别看很厚,但是写的非常流畅,属于比较易读的一类。
3.现代操作系统---坦尼伯姆,这本书我没完整看过,只是大略的翻过,是第4本书的升级版,里面添加了一些新的操作系统方面的讨论,原理部分比第四本稍有增强。个人认为,是除了前面两本之外的最好的书。
4.操作系统-设计与实现---这个比较有名了,主要是分析minix源代码的书,顺带着讲了下原理,应该说是偏于实践的,可能当年的linus的教材就是这本,影响较大,可以帮助你了解一个文件系统或系统调用之类是如何实现的。当然,和目前的操作系统来讲,稍简单了一些。想做linux kernel hacker的同学此书可以一读。
5.操作系统:现代观点(第二版试验更新版)
Operating Systems: A design-Oriented Approach
这两本一般,但是还是比国内抄袭的教材强很多,可以作为补充阅读的书籍。
6.与特定操作系统相关的书:
understanding linux kernel:千万别买中文版,那叫一个烂
linux internal:这两本我都有电子版,是打印出来看的:(
linux内核情景分析:这三本是最nb的linux内核分析书籍,前两本讲2.2内核,第三本讲2.4,好是好,就是钱遭罪,赫赫,要100多块吧。
4.4BSD操作系统设计与实现:不说少了,原来berkeley那帮写bsd的其中几个人写的,经典就是它了,前几年我恨不得直接花$去amazon买了:(,不过这几年国内出版业发展真快,原来很多梦寐以求的书,现在都摆上书架了,haha,很有成就感呢~~~
unix操作系统设计:古老的unix设计方面的书籍,应该说这本书在unix世界里面的影响是十分巨大的,很多后来的unix分枝,思想都是缘于此书。里面主要讲解unix各个部分实现时所用的算法,其中一些目前还在使用中。想了解一下unix实现但又没什么时间扣minix或linux内核的朋友可以看看,在这本书上花费几十个小时,绝对超值:)
2) 计算机系统结构:
我是搞体系结构的,所以对这方面还是比较了解,不免又要批判一下国内的书籍了,李学干的书,我怎么看都像是上古作品,讨论的东西基本上是80年代以前的玩意儿,看了也是白看,它里面介绍的东西,基本上我们是没有可能遇到的。除非你去计算机历史博物馆。清华的郑伟民有两本书,一厚一薄,都叫计算机体系结构,薄的讲的太浅,反正我看完了还是不清楚体系结构是干啥的,做什么用处。厚的我没全看完,但是感觉和李学干的书一样,不少都是copy黄凯的那本高级计算机体系结构,至少我就看见过一张一
莫一样的图。讲道这里,不免要推荐一下唐老师的计算机组成原理,(虽然不能是体系结构),这本书相当好,我想这和唐老师严谨认真的治学作风十分不开的,计算机组成原理的书,别的都不用读了,我还没见过比这本更好的。
国外体系方面的书:
1. hennessy和patternson的计算机硬软接口和计算机量化研究方法:作者一个是斯坦福的校长,一个是伯克里的资深教授,体系方面最牛会议的审稿人。这两本书可谓是千锤百炼,绝世好书,呵呵。我都推荐给进入体系实验室的师弟师妹们。硬软接口里面讲的是简单的处理器体系结构,最难得地方也只讲到流水线,本科水平阅读应该没有问题。它与国内的书不同,并不是从理论方面泛泛而谈,而是针对某个问题,深入讨论,不弄个水落石出决不罢休,这点使得读起来非常过瘾。第二本量化研究方法比较难读,不
仅仅是因为英文写的有点晦涩(相对于硬软接口),而且讨论的东西也是最先进的,新接触这一领域的读者比较难于理解,这本书基本上涵盖了2000年以前的微处理器体系结构方面的先进技术,如果你想了解2000年左右微处理器体系结构已经发展到什么程度,可以从这本书读起,它以前的书可以不用读拉。对了,忘了说明,这两本书都是主要讨论微处理器体系结构的,呵呵,这也是它们的新颖之处,我个人也觉得现在还大讲特将什么向量机有点不合时宜。强烈推荐,看完整两本书,你就会知道处理器到底是如何工
作的。另外,千万别买这本书的翻译版,看着闹心,翻译的往往和原意差出好几百里地,浪费时间不说,也对身心健康不好哦
2. William stalling的计算机体系结构-性能设计:由于看了前两本书,所以这本就不太起眼了。想比较而言,这本书讨论的问题太过于表面化,缺乏对问题的深入剖析,看完之后没有那种刺破肉皮见骨头的快感。不过我觉得这也很正常,因为william stalling只是个科技作家(别看china-pub上好像对他的吹捧好像是个神,其实他也是人),他和前两位世界级的教授根本不在一个数量级上。不过老威倒是也真够狠,什么都写,os阿,网络阿,体系阿,看着比坦尼伯姆还nb。看过这本书之后,我发誓再也不看他的书了
。这本书当作科普读物可以,了解一下体系结构。
3. 黄凯的高等计算机系统结构:这本书影响非常大,国内的凡是体系结构的书,基本上很多都是copy这本的。但是,我不得不说,他太老了,老的已经不再适合做体系的教材了。计算机技术发展多么迅速阿,这个10几年前的东西现在怎么应用啊? 里面讲的机器估计以后没人能见到,呵呵,说到这里不得不向大牛cray致敬(虽然大师已经挂了),他的cray机真是太牛了,不让ibm专美与前啊。Sorry,扯远了,这本书如同鸡肋,弃之可惜(毕竟是好书),但食之无味。喜欢跳出微处理器的圈子,试图俯瞰一下计算机体
系结构各个领域在1990年以前是什么情况的同志可以look through一下。
4. 坦尼伯母的结构化计算机组成:这本书不是专讲体系结构的,它连从c程序,到编译,汇编,连接加上硬软接口ISA和处理器内部实现统统讲到。一气贯通,让你了解这个程序是咋在处理器上刺溜刺溜跑起来的,对大家对于计算机系统的宏观认识非常有帮助。
3)编译原理:
编译这块我了解不多,应该说不怎么了解,我甚至还打算从头学一边编译原理:(,不过这方面的好书我可是注意好久了:现在隆重推荐:
1) 编译原理:技术与工具:作者之一就是lalala, ullman,我记得是计算机界目前论文被应用最多的一个活人(fix me),他在编译和数据库方面地位很高,这方面我估计李建中老师的门下弟子比我知道的多多了,我就不说了。这本书据说是讲解经典编译原理的宝典,也被称为"龙书"。想学编译?ok,别的书先抛在一边,把这本先读了再说。但是要提醒一下,目前的编译器基本上和体系结合的很紧密了,有的编译器甚至连程序运行时功耗都考虑进去了,所以,要想一窥现在编译器内部构造,光看这本就不够了
2) Optimizing Compilers for Modern Architectures: A Dependence-based Approach
这本书能弥补第一本的不足,讲的都是如何让编译器利用体系结构方面的技术。不过,国内没有出版,不过,别灰心,呵呵,我这里有电子版。如果实在感兴趣,看看编译器是如何根据体系结构进行优化的,可以打印出来读。
Ok, 累死我了,先推到这里把,对了,希望在别的领域很有研究的同学也推荐些书,让
我们知识共享,经验共享,共同进步,共同提更多精彩文章及讨论,请光临枫下论坛 rolia.net
如果你对操作系统原理很好奇,想一探究竟,推荐你必读的几本书,记住不要在汤子赢的书上浪费精力,看过以下的书,就知道什么是水平上的差距了:)
Abraham Silberschatz的两本书:
1. 实用操作系统概念(影印版)高教出版社
2. 操作系统概念(第六版影印版)高教出版社
这个作者的level是顶尖级的,来自贝尔实验室,是目前世界上操作系统方面的领军人物,我个人认为比坦尼伯姆要强,虽然坦也很强:),这两本书第二本和第一本很多地方相似,区别在于第二本理论偏重一些,第一本实例讨论的更多一些。这两本书别看很厚,但是写的非常流畅,属于比较易读的一类。
3.现代操作系统---坦尼伯姆,这本书我没完整看过,只是大略的翻过,是第4本书的升级版,里面添加了一些新的操作系统方面的讨论,原理部分比第四本稍有增强。个人认为,是除了前面两本之外的最好的书。
4.操作系统-设计与实现---这个比较有名了,主要是分析minix源代码的书,顺带着讲了下原理,应该说是偏于实践的,可能当年的linus的教材就是这本,影响较大,可以帮助你了解一个文件系统或系统调用之类是如何实现的。当然,和目前的操作系统来讲,稍简单了一些。想做linux kernel hacker的同学此书可以一读。
5.操作系统:现代观点(第二版试验更新版)
Operating Systems: A design-Oriented Approach
这两本一般,但是还是比国内抄袭的教材强很多,可以作为补充阅读的书籍。
6.与特定操作系统相关的书:
understanding linux kernel:千万别买中文版,那叫一个烂
linux internal:这两本我都有电子版,是打印出来看的:(
linux内核情景分析:这三本是最nb的linux内核分析书籍,前两本讲2.2内核,第三本讲2.4,好是好,就是钱遭罪,赫赫,要100多块吧。
4.4BSD操作系统设计与实现:不说少了,原来berkeley那帮写bsd的其中几个人写的,经典就是它了,前几年我恨不得直接花$去amazon买了:(,不过这几年国内出版业发展真快,原来很多梦寐以求的书,现在都摆上书架了,haha,很有成就感呢~~~
unix操作系统设计:古老的unix设计方面的书籍,应该说这本书在unix世界里面的影响是十分巨大的,很多后来的unix分枝,思想都是缘于此书。里面主要讲解unix各个部分实现时所用的算法,其中一些目前还在使用中。想了解一下unix实现但又没什么时间扣minix或linux内核的朋友可以看看,在这本书上花费几十个小时,绝对超值:)
2) 计算机系统结构:
我是搞体系结构的,所以对这方面还是比较了解,不免又要批判一下国内的书籍了,李学干的书,我怎么看都像是上古作品,讨论的东西基本上是80年代以前的玩意儿,看了也是白看,它里面介绍的东西,基本上我们是没有可能遇到的。除非你去计算机历史博物馆。清华的郑伟民有两本书,一厚一薄,都叫计算机体系结构,薄的讲的太浅,反正我看完了还是不清楚体系结构是干啥的,做什么用处。厚的我没全看完,但是感觉和李学干的书一样,不少都是copy黄凯的那本高级计算机体系结构,至少我就看见过一张一
莫一样的图。讲道这里,不免要推荐一下唐老师的计算机组成原理,(虽然不能是体系结构),这本书相当好,我想这和唐老师严谨认真的治学作风十分不开的,计算机组成原理的书,别的都不用读了,我还没见过比这本更好的。
国外体系方面的书:
1. hennessy和patternson的计算机硬软接口和计算机量化研究方法:作者一个是斯坦福的校长,一个是伯克里的资深教授,体系方面最牛会议的审稿人。这两本书可谓是千锤百炼,绝世好书,呵呵。我都推荐给进入体系实验室的师弟师妹们。硬软接口里面讲的是简单的处理器体系结构,最难得地方也只讲到流水线,本科水平阅读应该没有问题。它与国内的书不同,并不是从理论方面泛泛而谈,而是针对某个问题,深入讨论,不弄个水落石出决不罢休,这点使得读起来非常过瘾。第二本量化研究方法比较难读,不
仅仅是因为英文写的有点晦涩(相对于硬软接口),而且讨论的东西也是最先进的,新接触这一领域的读者比较难于理解,这本书基本上涵盖了2000年以前的微处理器体系结构方面的先进技术,如果你想了解2000年左右微处理器体系结构已经发展到什么程度,可以从这本书读起,它以前的书可以不用读拉。对了,忘了说明,这两本书都是主要讨论微处理器体系结构的,呵呵,这也是它们的新颖之处,我个人也觉得现在还大讲特将什么向量机有点不合时宜。强烈推荐,看完整两本书,你就会知道处理器到底是如何工
作的。另外,千万别买这本书的翻译版,看着闹心,翻译的往往和原意差出好几百里地,浪费时间不说,也对身心健康不好哦
2. William stalling的计算机体系结构-性能设计:由于看了前两本书,所以这本就不太起眼了。想比较而言,这本书讨论的问题太过于表面化,缺乏对问题的深入剖析,看完之后没有那种刺破肉皮见骨头的快感。不过我觉得这也很正常,因为william stalling只是个科技作家(别看china-pub上好像对他的吹捧好像是个神,其实他也是人),他和前两位世界级的教授根本不在一个数量级上。不过老威倒是也真够狠,什么都写,os阿,网络阿,体系阿,看着比坦尼伯姆还nb。看过这本书之后,我发誓再也不看他的书了
。这本书当作科普读物可以,了解一下体系结构。
3. 黄凯的高等计算机系统结构:这本书影响非常大,国内的凡是体系结构的书,基本上很多都是copy这本的。但是,我不得不说,他太老了,老的已经不再适合做体系的教材了。计算机技术发展多么迅速阿,这个10几年前的东西现在怎么应用啊? 里面讲的机器估计以后没人能见到,呵呵,说到这里不得不向大牛cray致敬(虽然大师已经挂了),他的cray机真是太牛了,不让ibm专美与前啊。Sorry,扯远了,这本书如同鸡肋,弃之可惜(毕竟是好书),但食之无味。喜欢跳出微处理器的圈子,试图俯瞰一下计算机体
系结构各个领域在1990年以前是什么情况的同志可以look through一下。
4. 坦尼伯母的结构化计算机组成:这本书不是专讲体系结构的,它连从c程序,到编译,汇编,连接加上硬软接口ISA和处理器内部实现统统讲到。一气贯通,让你了解这个程序是咋在处理器上刺溜刺溜跑起来的,对大家对于计算机系统的宏观认识非常有帮助。
3)编译原理:
编译这块我了解不多,应该说不怎么了解,我甚至还打算从头学一边编译原理:(,不过这方面的好书我可是注意好久了:现在隆重推荐:
1) 编译原理:技术与工具:作者之一就是lalala, ullman,我记得是计算机界目前论文被应用最多的一个活人(fix me),他在编译和数据库方面地位很高,这方面我估计李建中老师的门下弟子比我知道的多多了,我就不说了。这本书据说是讲解经典编译原理的宝典,也被称为"龙书"。想学编译?ok,别的书先抛在一边,把这本先读了再说。但是要提醒一下,目前的编译器基本上和体系结合的很紧密了,有的编译器甚至连程序运行时功耗都考虑进去了,所以,要想一窥现在编译器内部构造,光看这本就不够了
2) Optimizing Compilers for Modern Architectures: A Dependence-based Approach
这本书能弥补第一本的不足,讲的都是如何让编译器利用体系结构方面的技术。不过,国内没有出版,不过,别灰心,呵呵,我这里有电子版。如果实在感兴趣,看看编译器是如何根据体系结构进行优化的,可以打印出来读。
Ok, 累死我了,先推到这里把,对了,希望在别的领域很有研究的同学也推荐些书,让
我们知识共享,经验共享,共同进步,共同提更多精彩文章及讨论,请光临枫下论坛 rolia.net