这是我心仪已久的一本书,相信很多读者也会有同样的感受。Linux在国内的普及还不成熟,而关于内核方面的中文资料却又都偏向大而全,细节部分描述得相当不够。这些书籍往往由于篇幅问题而仅仅选择性地讲解内核源代码,不少读者无法真正吃透内核的实际实现方式,存在看不下去或不能理解等问题。还有的书籍代码注释较为粗略,省去了很多内核实现细节,初、中级水平的读者阅读起来也有困难。而另有一部分内核书籍由于时代久远,很多系统调用方面,特别是与硬件相关的代码使读者产生不少疑问,对于中、高级内核开发人员以及在较新内核版本下进行开发的人员就略显不足了。一次较为偶然的机会我在网络上发现这一至宝,在它还是草稿版的时候就得到LinuxCN网站的关注。但由于种种原因一直没有和大家见面。后来痛定思痛,觉得这样一本好书不能为中国众多Linux爱好者学习实为可惜,终于克服种种困难翻译该书完整正式版,希望能给大家带来一定的帮助。在众多Linux内核分析的书籍中,本书的特点非常鲜明:(1)本书问世以前,基本上没有一套关于Linux虚拟内存(VirtualMemory,VM)的完整文档。文档的匮乏直接导致VM只能被很少一部分内核开发人员所完全理解。极少或根本没有任何信息对这种实现的理论基础进行描述。(2)本书试图弥补内存管理理论和在Linux中具体实现之间的差距,并且将两个部分结合起来,是当今最能够充分理解LinuxVM的运行机制以及将理论和实现联系在一起的书籍。本书不是以讲述理论为目标,而是先讲述理论,再结合Linux的实现深入剖析其细节。(3)本书以相对独立于硬件的角度阐述LinuxVM。(4)函数调用图和系统架构图一目了然,思路清晰。读者可以快速地掌握系统总体架构。(5)在附录里面包含了对VM的详细注释。读者能够更简单地弄清楚VM的实现过程,对VM系统的运行机制更加得心应手。(6)在剖析2.4内核的基础上还分析2.6内核中VM的新特性。紧跟世界Linux内核发展进度。本书内容涵盖物理内存、页表管理、进程地址空间、引导内存分配器、物理页面分配、非连续内存分配、Slab分配器、高端内存管理、页面帧回收、交换管理、共享内存虚拟文件系统等部分。本书的翻译工作主要由白洛、李俊奎、刘森林完成。参与少量翻译工作的还有黄静、张申、贺虎、查志勇、吕志华、夏玉、倪晓雷、vbar、newface、hs_guanqi。黄忠霖教授完成了本书的审校工作。翻译过程中,我的家人、朋友和同学给了我莫大的支持和鼓励。感谢我的家人、朋友和同学。感谢黄忠霖教授的谆谆指导和辛勤工作。感谢LinuxCN的热心网友们。感谢所有关心和热爱Linux的人们。由于本人才疏学浅,翻译中不免有少量错误和遗漏,望各位读者批评指正。共同学习,共同进步。本书读者主要针对高等院校师生、研究机构科研人员、Linux内核开发人员、应用开发人员及系统管理人员,以及任何对VM或内核子系统运行机制感兴趣的爱好者。不要错过这本书,你会发现它有多神奇。白洛华中科大喻家山