Skip to content

读书评价《操作系统导论》OSTEP

《操作系统导论》 OSTEP Operating Systems: Three Easy Pieces

在操作系统的书籍中,最出名的应该就是《操作系统设计与实现》和他的修订版《现代操作系统》了。作者作为MINIX操作系统的创始人,连Linux都是收到它的启发而开发的。但是两年前,我读这本《现代操作系统》的时候,却发现读不下去。

原因在于书中出现的概念太多,讲的又太含糊(翻译的不好),以至于我读过之后只有一个模糊的印象,无法在脑子里把知识串联起来。后来在网上看了一些书评才发现,看操作系统这本书,是需要学习很多前置课程的。

看操作系统一般需要的前置课程如下:

C语言,Linux/Unix,汇编语言,计算机组成原理(学组原还要会数字电路)等等。

当时汇编我一点都不懂,Linux/Unix也不会(只会用GUI肯定不算),组成原理也只是了解一点。这时候看操作系统,肯定是一头雾水。于是当时我只是草草读了一遍《现代操作系统》,便放弃了。

两年后,对于上面的前置课程,我也仅仅是多学了Linux。不是我懒,而是我的工作内容和这些底层的汇编,组成原理没啥关系(我现在做Web前端呀)。这时候,我再想读一本介绍操作系统原理有关的书籍,应该选哪本?

我对市面上流行的操作系统书籍做了调查之后,最后选了这本:《操作系统导论》。这本书应该是最适合基础差的同学的操作系统书籍了。

读这本书所需要的前置课程:C语言,Linux/Unix,少量计算机组成原理知识。

这几个条件,我刚好符合。于是我就选了这本书。当然,如果你会的知识更多,比如汇编语言也会,那么读这本书肯定更轻松。但是——如果你会这么多,我就推荐你读更经典,难度也更高的操作系统书籍了。

这本书的不仅对阅读容易,对新人友好,还有更大的特色就是——习题非常棒!

像其它大部分操作系统书籍,一般都没有习题或者不重视习题。而这本书习题占据了很重要的部分。习题不仅有C语言编程,还有模拟作业。这个模拟作业对于理解操作系统概念非常棒。以往都是干巴巴的看书,书中的概念只是有个印象,你不知道这个概念这个算法实际在系统中运行是什么样子,有什么效果。但是有了这个模拟作业,你可以自己设定参数,设定任务,观察系统的反应。虽然仅仅是个模拟,但是也起到了实践的效果,比单纯看书好多了。

书的最后部分也提供了一些系统项目和xv6项目,如果想要对操作系统加深了解,可以试着做一下。大部分项目看起来是有点复杂的。

这本书的讲述相对比较“幽默”,还有困在书中的教授和学生作为旁白。对于知识屏蔽做的比其他操作系统书籍要好,不一下子给读者大批的概念让读者无所适从,也不会假设读者具有一切基础知识。

但是相对的,这本书讲的内容太少。虽然是一本接近于500页的书籍,但相比于其它操作系统书籍,能了解到的知识少了一些。这也是由于这本书更基础导致的。

另外,这本书的英文版是开源的,作者提供了PDF可以免费下载。附带还有作业程序。与英文开源版本相比,中文版在第二第三部分少了很多很多作业题目。