本书通过程序员的视角来介绍计算机系统,首先把**语言转换成计算机所能理解的一种中间格式(如汇编语言),然后描述计算机如何解释和执行这些中间格式的程序,系统的哪一部分影响程序的执行效率。在讲述计算机系统知识的同时,也给出了关于c语言和汇编语言的编程、阅读技巧以及基本的系统编程工具,还给出一些方法帮助程序员基于对计算机系统的理解来改善程序的性能等问题。本书强调对计算机系统概念的理解,但并不意味着不动手。如果按照本书的安排做每一章后面的习题,将有助于加深对正文所述概念和知识的理解,更可以从实际动手中学习到新的知识。
本书的主要内容是关于计算机体系结构与编译器和操作系统的交互,包括:数据表示,汇编语言和汇编级计算机体系结构,处理器设计,程序的性能度量和优化,程序的加载器、链接器和编译器,i/o和设备的存储器层次结构,虚拟存储器,外部存储管理,中断、信号和进程控制。
本书的*大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机系统,从*底层的数据在内存中的表示(如大多数程序员一直陌生或疑惑的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库