索引 / 001 ZH-CN
Modern Operating Systems(现代操作系统) cover

计算机科学

计算机科学

Modern Operating Systems(现代操作系统)

Andrew S. Tanenbaum; Herbert Bos

英文原名: Modern Operating Systems

一本本科操作系统课程的标准教材,由安德鲁·塔能鲍姆与赫伯特·博斯合著。书中讲解进程、内存、文件系统、输入输出和安全的原理,并以 Linux、Android 和 Windows 的详细案例研究加以落实,同时关注当前研究和设计权衡。

需要的基础: 修过一门使用 C 或类似语言的程序设计入门课,以及计算机组成原理入门课。

难度等级
中级
学术层次
本科
operating systemsprocesses and threadsmemory managementfile systemssecurity教科书

01 / 导读

导读

引用

Tanenbaum, A. S., & Bos, H. (2022). Modern Operating Systems (5th ed.). Pearson.

章节概要

第5版超过1100页(不同印次的目录给出的页数为1101页和1184页),Pearson 只按章名列出13章。Pearson 把这一版的变化概括为:新增一章讲 Windows 11,安全部分有新的内容,并且着重介绍基于闪存的固态硬盘。出版社的宣传页补充说,书中还讨论了持久内存,Linux 与 Android 的案例研究已更新到当前版本,每章都新增了习题。

第1章:引论

开篇一章介绍这门学科。Pearson 的简介把进程、线程、内存管理、文件系统、输入/输出和死锁列为本书深入讨论的主题,后面的各章正是按这个顺序展开的。

第2–3章:进程与线程;内存管理

这是前两个专题章,排在文件系统和输入/输出之前。两章合起来讲的是通过进程和线程体现的执行,以及内存,也就是简介最先列出的两项内容。

第4–5章:文件系统;输入/输出

第4章讲文件系统,第5章讲输入和输出。宣传页说新版对基于闪存的固态硬盘和持久内存作了充分讨论,这与这两章关系最直接。

第6章:死锁

死锁独占一章。Pearson 的简介把它列为本书深入讨论的主题之一。

第7–8章:虚拟化与云;多处理器系统

这两章讲操作系统如今运行的环境:虚拟化与云,以及多处理器系统。宣传页把虚拟化与云列为反映新趋势的主题之一。

第9章:安全

安全独立成章。据宣传页介绍,更新后的内容聚焦于与操作系统设计和结构直接相关的主题,讨论硬件的新发展、软件漏洞、攻击与防御,同时也涉及病毒、蠕虫和恶意软件。

第10–11章:案例研究1:Unix、Linux 与 Android;案例研究2:Windows 11

两个整章的案例研究。第一个讲 Unix 家族、Linux 和 Android,据宣传页介绍,包含 Linux 和 Android 当前版本中的新进展;第二个是新增的 Windows 11 一章,宣传页称它考察了微软 NT 操作系统最新的主要版本。

第12–13章:操作系统设计;阅读书目与参考文献

设计一章为正文收尾。第13章汇集推荐阅读和参考文献,宣传页称这些内容反映了最新的操作系统。

核心概念

第1–6章:原理

  • 进程与线程:由操作系统创建和管理的执行单位。
  • 内存管理:如何把内存分配给各个程序并让它们共享。
  • 文件系统与输入/输出:如何把持久存储和设备呈现给程序;本版着重介绍基于闪存的固态硬盘和持久内存。
  • 死锁:进程相互阻塞的局面,用专门一章来讲。

第7–13章:现代系统与设计

  • 虚拟化与云,以及多处理器系统:操作系统所处的当代环境。
  • 安全:与操作系统结构相关的攻击与防御。
  • 案例研究:一章讲 Unix、Linux 和 Android,另一章讲 Windows 11。
  • 操作系统设计:讲系统设计的最后一个正文章节。

评析

优点

  • 一卷之内覆盖面广。 13章既包括经典核心(进程、内存、文件、输入/输出、死锁),也包括虚拟化与云、多处理器系统,还有专门一章讲安全。
  • 两个真实的系统。 对 Unix 家族及 Linux、Android,以及对 Windows 11 的整章案例研究,使读者在学完原理之后,可以比较两种不同的设计传统。
  • 有一章讲设计。 正文以题为“操作系统设计”的一章收尾,所以本书并不止于描述现有的系统。
  • 练习与延伸阅读。 宣传页说每章都有新增的习题,第13章提供阅读书目和参考文献。
  • 当前的硬件。 宣传页突出固态硬盘、持久内存和64位体系结构,因此讲存储的章节并不局限于旋转磁盘。

局限

  • 篇幅。 超过1100页,内容多于一个学期的阅读量,课程必须选取章节。
  • 概念优先。 出版社的资料强调讲解、案例研究和习题,没有提到编程项目。想要系统编程练习的读者,需要另找材料或在课程中安排项目。
  • 宣传语部分较为泛泛。 Pearson 的介绍仍然列出“界面设计”和“多媒体”,但目录里并没有这样命名的章;宣传页提到了多媒体文件系统,却没有说明它出现在何处。在指望这些主题之前,应先查看细到小节的目录。

在课程中的定位

Tanenbaum 和 Bos 的这本书是面向标准本科操作系统课程的综合性教材兼参考书。Silberschatz、Galvin 和 Gagne 的 Operating System Concepts 是书单中另一本覆盖面广的教材,带有 Linux、Windows、macOS、Android 和 iOS 的例子以及简短的编程项目;两本都可以作主教材,选哪一本取决于文风,以及课程希望有多少编程内容。

Operating Systems: Three Easy Pieces 走的是更窄的路线,围绕虚拟化、并发和持久性来组织,当需要更简短的概念性讲解时,是有用的配套读物。Ward 的 How Linux Works 是实践方面的补充,从 shell 一直讲到内核,解释一个真实的 Linux 系统,与第10章自然搭配。Saltzer 和 Kaashoek 的 Principles of Computer System Design 超出单个操作系统,讲抽象、模块化、命名、保护和通信,适合在第12章之后阅读。

如何使用本书

本书适合以前写过程序的学生(出版社的资料没有写明先修要求);最适合用于第一门完整的操作系统课程,之后也可当作参考书。

一个实用的读法:

  • 核心: 按顺序读第1–6章。把第2章和第3章当作课程的中心,第4–5章讲存储和设备。
  • 当代主题: 第7章(虚拟化与云)、第8章(多处理器)和第9章(安全),按课程需要选择。
  • 案例研究: 在原理章节之后读第10章或第11章,最好面前有一个运行着的系统;两章都读,可以比较两种传统。
  • 收尾: 读设计一章(第12章),再用第13章的阅读书目做后续阅读。

不要跳过章末的习题,并配合 How Linux Works 这样的实践资料或编程项目,因为出版社的资料没有提到这方面的内容。