如何阅读《深入理解计算机系统》这本书？
首先谈一谈日常的奇奇怪怪中文译名，csapp本意并不是深入理解，而是“程序员的视角”，a programmer's perspective，与之相对，是系统开发者的视角（这是我们院长作为csapp的引进者的原话，这句话的解释让我至今记忆犹新），换而言之，就是要让程序员学会如何调包。 了解了这个，应该可以先定个基调了，这是本操作系统入门书，而不是所谓读一本就精通os的万灵药。所以无论是北大上交还是cmu，这本书都是作为大一大二的ICS计算机系统导论课进行教学。 书中对于os的各个范畴都做了全面的描述，但是全面而不深入。例如，在调度方面，ostep讲的多级反馈队列，完全公平调度就更贴近现代os的实现。在内存分配方面，书中提到的也是最原始的实现，所以我之前写笔记文章的时候很多人也会质疑这个实现。在cpu方面，也只涉及到了基本的harzard。 但是全面而不深入并不是贬义词，因为如果要深入，那么csapp的页数至少还要再翻好几倍。csapp给人提供的是视角，正如书名所说，读了这本书之后，你会去开始思考代码的底层运作原理，而不是把os当做黑盒，也许书中提到的原理并不是最先进的，但是授人以渔比授人以鱼更重要。你会去更多地挖掘，其他情况下，csapp没有提到的那些机制和策略，它们的实现是什么。 csapp更像是开蒙，而不是毕业，所以读完csapp就认为操作系统完全尽在掌握是不存在的，但是尽管如此，它依然值得所有没有读过类似书籍的人去读。