a tall building lit up at night

微软亚洲研究院

全面了解计算机系统研究的必读书目

分享这个页面

编者按:如今,我们每天都在手机、电脑、平板等移动设备上享受着各种软件提供的便捷服务,比如新闻推荐、购物、打车、聊天、搜索等等。这些便捷服务的背后离不开底层计算机软件系统的支持,计算机系统研究的创新则为各种技术提供了持续提升与变革的肥沃“土壤”。

计算机系统研究关注于创造新的方法论和工程技术,以构建高效、节能、鲁棒、可扩展、安全和交互友好的软硬件系统。为了帮助大家更好地了解、学习计算机系统研究领域的相关知识,我们邀请了微软亚洲研究院系统研究组高级研究员林昊翔为大家推荐了该领域的五本经典书籍,内容涵盖系统基础原理、操作系统、并发计算、分布式系统等。


Computer Systems: A Programmer’s Perspective, 3rd Edition

中文版:深入理解计算机系统

作者:Randal E. Bryant, David R. O’Hallaron

Computer Systems: A Programmer's Perspective, 3rd Edition

推荐理由:本书由美国两院院士 Randal E. Bryant 与 Gordon Bell 奖得主 David R. O’Hallaron 两位大师合著,是计算机系统的最佳入门基础教材。本书第三版基于 x86-64 指令集架构,从程序员的视角深入浅出地将计算机组成原理、体系结构、编译器、操作系统、网络和并发编程等众多领域的知识有机地串联在一起。通过阅读本书,读者可以理解计算机系统各个组件的基本工作原理,为今后的学习、研究和工作打下坚实的基础。

Modern Operating Systems, 4th Edition

中文版:现代操作系统

作者:Andrew S. Tanenbaum, Herbert Bos

Modern Operating Systems, 4th Edition

推荐理由:操作系统是一组实现用户与硬件、平台交互的核心程序,也是整个计算机系统的基石。本书第一作者 Tanenbaum 教授是操作系统领域的杰出专家和教育家,他为教学创造的微内核操作系统 MINIX,不仅启发了 Linux 内核的创作,还被英特尔公司采用作为处理器管理引擎的组件。作为一本操作系统的经典教材,本书的内容却相当“现代”:除了涵盖传统的进程与线程、内存管理、文件系统、I/O 系统、死锁和多处理机,还紧跟时代的发展,论述了近来流行的虚拟化、云平台和安全等方面的知识。此外,本书将理论和实践融为一体,以案例的方式详解了 UNIX、Linux、Android 和 Windows 8 等主流操作系统,帮助读者深刻理解操作系统设计与实现的指导原则。

Windows Internals, 7th Edition

中文版:深入解析 Windows 操作系统

作者:Pavel Yosifovich, Mark Russinovich, David Solomon, Alex Ionescu

Windows Internals, 7th Edition

推荐理由:微软的 Windows 操作系统是最流行的个人电脑和服务器的操作系统,自2015年发布 Windows 10 以来,Windows 开启了大一统融合的过程。除了传统的台式机和笔记本,Windows 10 还运行在平板电脑、HoloLens 混合现实设备、Xbox 游戏机和各种嵌入式设备上,为用户提供了通用的应用程序架构和统一的生态环境。本书是关于 Windows 操作系统原理的权威专著,几位作者也是知名的微软技术专家,其中第二作者 Russinovich 先生还是微软 Azure 云计算部门的首席技术官。本书以最新的 Windows 10 和 Windows Server 2016 操作系统为例,详细论述了 Windows 的系统架构和核心组件,内容涵盖进程和作业、线程、内存管理、I/O 系统和安全模型。本书内容全面,讲解深刻,是 Windows 开发人员、系统管理员和操作系统爱好者极有价值的参考读物。

The Art of Multiprocessor Programming

中文版:多处理器编程的艺术

作者:Maurice Herlihy, Nir Shavit

The Art of Multiprocessor Programming

推荐理由:并发程序的设计通常比较困难,容易导致各种非确定性的程序缺陷,且难于诊断与修复。本书是一本关于并发程序设计与实践的优异教材,不仅适合各类在校学生,也适合广大工程技术人员。两位作者是并发与分布式系统研究方向的权威,曾获得 Gödel Prize、Dijkstra Prize 等多项大奖。本书的前六章论述了并发编程的原理,包括并发对象正确性和非阻塞性的形式化定义,以及互斥、共享存储器、同步原子操作等概念的基本理论。后十二章则涵盖了并发编程在多处理器上的实践,详解了如何正确地设计与实现基本的并发数据结构(例如链表、队列、散列表、跳表等)以及近来流行的事务内存。通过阅读本书,读者不仅可以掌握并发程序的具体算法技术,更能深刻领悟其背后的指导思想和原则。

Distributed Algorithms

中文版:分布式算法

作者:Nancy A. Lynch

Distributed Algorithms

推荐理由:分布式系统是一组由网络相互连接的电脑或设备,它们彼此通过消息传递进行通信并协调完成共同的计算任务。随着移动设备、大数据和云计算的普及,分布式系统已经成为互联世界的基础。本书是分布式系统领域的经典教材,其作者 Lynch 教授曾获得 Dijkstra Prize、Knuth Prize 等多项大奖。本书将分布式算法分为同步网络、异步、部分同步等三个类别进行了全面阐述。在每个类别中,本书首先介绍了相应的系统模型(例如 I/O 自动机)及其能力,然后针对分布式系统理论中的核心问题(例如领导者选择、互斥、一致性和逻辑时间)详解了算法的设计,并给出了严格的数学证明和算法复杂度分析。每章末尾还附列了详尽的参考文献,方便读者了解背景信息以及深入研究相关问题。