计算机系统结构,也称『计算机系统』或『计算机组成』,是了解软件底层的重要视角,如果对计算机如何工作没有具体的概念,那么你所做出的所有高级抽象都是空中楼阁。学习计算机系统的最佳入门书是深入理解计算机系统。
如果你既想了解计算机系统又想兼顾软硬件知识,可以从计算机系统要素这本书开始,又名『从与非门到俄罗斯方块(Nand2Tetris)』。它从用 HDL 写基本的逻辑门电路开始,途径 CPU、汇编,最终抵达诸如俄罗斯方块这样规模的应用程序,可以让我们对计算机内的所有部分如何协同工作有完全的认识。不过这本书没有涉及流水线和存储层次结构(现代计算机体系结构中最重要的两个概念),我们最终还是要回到 CSAPP 这本书。
学习 Nand2Tetris 时,可以结合 Coursera 上的课程从第一原理构建现代计算机。学习 CSAPP 时,可以结合 CMU 15-213 和 CS61C。
推荐阅读 C语言程序设计:现代方法