致教师
如果你是一位希望使用本书的教师或教授,请尽管放心使用。正如你可能已经注意到的那样,本书是免费的,并且可以通过以下网页在线获取:
http://www.ostep.org
你也可以从 lulu.com 购买本书的纸质版,相关信息可在上述网页中找到。
本书当前的规范引用格式如下:
Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Arpaci-Dusseau Books
August, 2018 (Version 1.00)http://www.ostep.org
这门课程与一个 15 周学期的安排比较契合;在这样的进度下,你可以以较为合适的深度覆盖书中的大部分主题。如果要把课程压缩到 10 周的学季(quarter)中,可能就需要在每个部分适当舍弃一些细节。书中还包含若干关于虚拟机监视器(virtual machine monitors)的章节;我们通常会在学期中的某个时间点把它们插入进来,要么放在虚拟化这一大部分结束后紧接着讲,要么临近课程末尾作为补充内容来讲。
本书有一个稍显不同寻常的地方:并发(concurrency)这个在许多操作系统教材中都会较早出现的主题,在这里被放到了后面,等到学生先建立起对 CPU 虚拟化和内存虚拟化的理解之后再讲。根据我们将近 20 年教授这门课的经验,如果学生还没有弄清楚什么是地址空间(address space)、什么是进程(process),或者为什么上下文切换(context switch)会在任意时刻发生,那么他们往往很难理解并发问题究竟是如何产生的,也很难理解我们为什么要去解决它。不过,一旦他们真正理解了这些概念,再引入线程(thread)的概念,以及由线程带来的各种问题,就会容易得多,至少会相对容易一些。
只要条件允许,我们都会尽量使用黑板(或白板)来授课。在这种更偏概念性的课堂上,我们通常带着几个主要思想和示例进入教室,然后借助板书把它们展开讲解。讲义或 handout 则适合用来给学生提供一些基于课堂内容的具体问题,让他们动手解决。在更偏实践的课堂上,我们通常会直接把笔记本电脑接到投影仪上,展示真实代码;这种方式尤其适合用于并发相关的课程,也很适合在习题课或讨论课中向学生展示与项目有关的代码。我们一般不太使用幻灯片来讲授课程内容,不过现在也已经为偏好这种授课方式的人准备了一套可用的幻灯片材料。
如果你希望获得这些教学材料中的任何一部分,欢迎给我们发送电子邮件。我们已经把这些材料分享给了世界各地的许多人,同时也有其他人向我们贡献了他们自己的教学材料。
最后还有一个小请求:如果你使用的是免费的在线章节,请直接链接到原始页面,而不是制作本地副本。这样既能帮助我们统计使用情况(过去几年中,章节下载量已经超过 100 万次!),也能确保学生获取到的是最新版本(以及“最棒的版本”?)。