第198章我有1间实验室

作者:从前有只坏猪 加入书签推荐本书

是运行在操作系统上,还是在遵循着某个规律在运行着,了解一些内部的工作机制也有助于我们写出更好的应用程序。

说来也奇怪,虽然各种语言,框架发展地越来越好,按理来说我们写程序也应该越来越容易。但是现在看来,一些基础性的内容反而也变得越来越重要了,例如在并行计算面前,计算系统的一些细节,如内存一致性模型,线程调度,程序的局部性(locality)又被提上台面,否则我们很难写出高效的应用程序。同样,一些如函数式编程,monad等在几年前看起来十分科研型,数学化的事物也离我们越来越近了,如linq,reactiveframework等等,其实它们都已经是我们身边的事物了。

《putersystems:aprogrammer’sperspective》这本书覆盖面很广,章杉认为并非要一字不漏地读完才行。

根据章杉的个人观点,我们应该着重阅读书的第1章“atourofputersystems”和第一部分“programstructureandexecution”(从第2章开始,大约占据了书中一半篇幅),其中包含了数据的机器级别表示方法,汇编语言和执行方式以及cpu架构方面的内容,我们应该关键性地理解其原理。

如第6章“optimizingprogramperformance”提出了许多种机器级别的优化方式,在现在看来,其中的某些方式过于细致,乃至在实际工作过程中已经不再推荐了(如内联一些方法以提高性能),我们要在把握住“为什么”而并不是单纯的吸收“怎么做”。对于书中的第二部分“runningprogramsonasystem”主要讲述的是操作系统方面的内容,可以读得略为简单一些,但其中的第10章“virtualmemory”,它谈论了操作系统中虚拟内存机制的各个方面,非常关键,需要细读。至于书中的第三部分“interactionandmunicationbetweenprograms”便可以更加“选择性”地阅读,章杉只阅读了第13章“ncu

entprogramming”,而其他两章都只是简单地扫过而已。

作为经典的教材它一定有许多附加资源,例如在它的官方站点给出了一些链接,其中最关键的可能是学习者站点,其中包括这本书所需要的各种工具,参考文档等各种资源。

章杉读书的过程中又想起来之前某大牛提及两本书,一本是国产书精品《链接、装载与库》。

这本书主要讲解了编译过程中的“生成文件”的过程,以及应用程序执行时文件是如何被操作系统加载的,并且同时涉及到linux和windows两个平台。

第二本书书是《windowsinternals5thedition》,人民邮电出版社已经引进了其影印版。

上一章 返回目录 下一章