译者序
译者序
本书第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月于珞珈山