前言

本书的目的是厘清操作系统的发展脉络。有助于学生了解过去是什么、现在是什么、将来是什么。

无论如何,在试图解决问题时,我们首先要说明最重要的问题是什么。我们在书中明确提出关键问题(crux of the problem),并通过本书其余部分提出的技术、算法和思想来解决。

在许多地方,我们将通过显示一段时间内的行为来解释系统的工作原理。这些时间线(timeline)是理解的本质。例如,从页故障出发,我们可以理解虚拟内存的工作方式。

本书采用最古老的教学方法之一-对话(dialogue)。

我们应当首先呈现抽象,然后介绍具体。抽象是计算机科学各个方面的基础,因此它在操作系统中也是必不可少的。

作业模拟程序具有以下特点,通过提供不同的随机种子,产生近乎无限的问题。

本书使用 xv6 操作系统来编程。

学生很难理解并发问题是如何产生的,也很难理解人们试图解决它的原因。