推荐一本操作系统的书

这本书叫 《Operating Systems: Three Easy Pieces》 ,来自美国威斯康星大学课程的教材。

中文版翻译叫操作系统导论,翻译的质量还不错,豆瓣评分9.4。

为什么要介绍这本书呢?主要由于以下几个方面:

  • 阅读体验良好

    书中以短句居多,配图丰富。我大概花了一个月的业余时间读完的,整体下来阅读过程的非常的愉快。

  • 讨论问题由浅入深

    就像我们有时候做题一样,先考虑简单的情况,然后再一点一点增加条件逐步解决。基本在本书中的论述都是先制定衡量标准,然后将情况一点一点复杂化来对比各种设计的优劣。

本书给出了非常多的阅读材料,上一次有这种感觉还是看 《Designing Data-Intensive Applications》的时候。

《Designing Data-Intensive Applications》的 中文名是《设计数据密集型应用》,豆瓣评分9.7。

虽然是研究生的课程,但是书中讨论问题遵循深入浅出的方式,有点基础的读来应该也毫不费力。最后,不得不提的一点是,操作系统是一个非常庞大的系统工程,读完这本书并不能保证你对操作系统相关的问题都能找到答案。这更像是一个 guide,将我们引入操作系统的世界,而想要成为专家则需要持续不断的学习("read more" 在这本书出现了几十次之多)。

本书三个部分分别为:虚拟化(Virtualization)、并发(Concurrency)、持久化(Persistence)。

其中虚拟化部分包括虚拟内存和 CPU 虚拟化以让进程以类似独占内存和 CPU 的方式在运行;

并发部分主要讨论了并发编程,以及锁(lock)、条件变量(Condition Variables)、信号量(Semaphores);

持久化只要讨论了文件系统,包括不同的存储介质(HDD, RAID, SSD)和不同文件系统的实现(vFS, FFS, LFS, NFS, AFS)。

除此之外,另外几本操作系统相关教程也值得推荐一下:《深入理解计算机系统》《现代操作系统》