# 译者序

本书第 1 版出版于 2003 年，第 2 版出版于 2011 年，去年发行的已经是原书第 3 版了。第 3 版还是采用以下组合方式∶在经典的 x86 架构机器上运行 Linux 操作系统，采用 C 语言编程。这样的组合经受住了时间的考验。这一版的一个明显变化就是从讲解 IA32 和 x86-64 转变为完全以 x86-64 为基础，相应地修改了第 3、4、5、6 和 7 章。同时，还改写了第 2 章，使之更易读、好懂; 用近期的新技术更新了第 6、11 和 12 章。这些变化使得本书既和新技术保持了同步，又保留了描述系统本质的内容以及从程序员角度出发的特色。

除了翻译本书，我们也开始以本书为教材讲授 "计算机系统基础" 课程，对这本书的理解也随之越来越深人，意识到除了阅读之外，动手实践更是学习计算机系统的必经之路。本书的官网提供了很多实验作业（Lab Assignment），其中不乏有趣且有一定难度的实验，比如 Bomb Lab。有兴趣的读者除了阅读本书的内容之外，还应该试着去完成这些实验，让纸面上的内容在实际动手中得到巩固和加强。本书的官方博客也不断更新着有关这本书和配套课程的最新变化，这也是对本书的有益补充。

第 3 版从翻译的角度来说，我们尽量做到更流畅，更符合中文表达的习惯。对于一些术语，比如 memory，以前怕出错就统一翻译成存储器，现在则尽可能地按照语境去区分，翻译成内存或者存储器。 在此，要感谢本书的编辑朱劫、姚蕾以及和静，有她们的支持、鼓励和耐心细致的工作，才能让本书如期与读者见面。

由于本书内容多，翻译时间紧迫，尽管我们尽量做到认真仔细，但还是难以避免出现错误和不尽如人意的地方。在此欢迎广大读者批评指正。我们也会一如既往地维护勘误表，及时在网上更新，方便大家阅读。（另外，本版第 1 次印刷时，我们已经根据官网 2016 年 3 月 1 日前发布的勘误进行了修正，就不在中文勘误中再翻译了。）

龚奕利 贺莲

2016 年 5 月于珞珈山
