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 这样的实践资料或编程项目,因为出版社的资料没有提到这方面的内容。
