易燃物汇聚 YouTube 有声书与书评
操作系统导论 封面

操作系统导论

雷姆兹·H.阿帕希杜塞尔 安德莉亚·C.阿帕希杜塞尔

5.3万人在读
49万字总字数
¥99定价

有声书与视频解读 YouTube视频解读 30

内容简介

这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘和I/O子系统、文件系统 )。 本书共50章,分为3个部分,分别讲述虚拟化、并发和持久性的相关内容。本书大部分章节均先提出特定的问题,然后通过书中介绍的技术、算法和思想来解决这些问题。笔者以对话形式引入所介绍的主题概念,行文诙谐幽默却又鞭辟入里,力求帮助读者理解操作系统中虚拟化、并发和持久性的原理。 本书内容全面,并给出了真实可运行的代码(而非伪代码),还提供了相应的练习,适合高等院校相关专业教师教学和高校学生自学。

读者书评

★★★★★

第一次打开这本书还是 21 年,拖拖延延看了 5 年才看完也是没谁了哈哈。那年我刚开始工作,对所谓的操作系统还只有纸面的理解,这些年来随着实践的深入也算是对操作系统有了更多角度的认识,工作中遇到的很多的问题也开始能从操作系统的角度去分析和解决。 操作系统这门课上学时就是睡过去的,这本书翻起来也有很多犯困的地方。整本书采用启发式教学的方式,循序渐进地讲解了虚拟化、并发、持久化三个方面的内容。虚拟化部分介绍了 CPU 和内存的虚拟化,包括进程管理和内存管理;并发部分介绍了线程、锁以及信号量;持久化部分介绍了设备管理、数据存储以及文件系统。三个主题基本涵盖了操作系统需要了解的核心内容。虽然名为《导论》,但很多地方其实讲得相当深入,每章开始和结尾教授与学生之间的趣味互动(扯皮)也让阅读过程轻松了不少。 看完这本书我最大的收获不是操作系统方面的知识,而是作者讲述这些概念的方法、研究和解决问题的思路以及保持好奇的心态。一个看似简单的系统调用背后可能有相当多的决策和设计,例如性能、安全、兼容性以及易用性之间的权衡。理解这些设计背后的原因,比单纯记住 API 的使用方式更加重要。 总的来说内容和写作角度都不错,翻译有点小问题不影响阅读,算是技术类书的通病。推荐对操作系统感兴趣的朋友读一读,如果你是计算机专业学生,这本书可以帮助建立操作系统整体框架;如果你是应用开发工程师,这本书可以帮助你理解日常 API 背后的机制;如果你的目标是深入 Linux 内核开发,那我们继续在《Linux 内核设计与实现》等更偏实现层面的书中见吧🤗

★★★★★

一口气读完了。在读此书前,我已经读过国外三个不同版本的讲操作系统的书,所以我应该能给个公允的评价。本书采用启发式的教学方法,循序渐进、深入浅出地讲解了操作系统三个最核心的技术,即虚拟化、并发和持久化,基本上能满足读者对操作系统原理的好奇。正如书名所示,所谓“导论”,就是勾勒摘要,引人入胜,更多的细节仍需读者自己去进一步探索在翻译上,本书存在一些瑕疵甚至错误(翻译者英文虽比我好,但是背景知识和专业知识不如我,这几乎是翻译图书的通病),有条件的同学,可以对照官网原版电子书一起阅读。

★★★★★

本书从操作系统的三个特性:虚拟化、并发和持久性,分别介绍了操作系统对CPU和内存资源的虚拟化技术,程序多进程或多线程的并发执行,以及I/O持久化存储和文件系统的相关知识和概念。操作系统提供了对底层复杂硬件的抽象和管理,提高对各种资源的利用。众所周知,底层硬件和驱动是丑陋的和复杂的,诸如像CPU、内存和磁盘这样的物理资源,如果没有一个统一的系统进行高效的抽象和管理,那么就需要程序员直接与这些硬件打交道,诸如读写磁盘文件这样的简单操作,如果越过操作系统这一部分,就需要了解磁头读写、磁臂的移动、磁道管理等,这会让程序员直接抓狂的。故而操作系统使我们更优雅地使用资源,并屏蔽了底层硬件的诸多细节。 操作系统的另一个目标是,系统和应用程序之间提供保护,除了提供让进程彼此隔离并且提供独立同步运行的假象,也保护底层硬件资源不被各个应用程序直接肆意访问和修改。从这一层讲,操作系统力求提供高度的可靠性和保护性。 对于虚拟化CPU和内存,本书详细阐述对于每一个进程,如何提供一个独立的CPU和独立的地址空间的假象,围绕这一关键问题介绍了所需了解的许多概念和预先知识。受限直接执行的叙述部分,对于我来说第一次彻底理解所谓内核函数的陷阱概念,即什么才是真正的“陷入内核执行”。虚拟化内存的章节,则把内存分段、分页和快速地址转换(TLB)的概念详细叙述出来,除了理解为什么能够对每个进程提供独立的地址空间外,还顺带彻底理解编程中经常出现的悬垂指针和内存段错误等。 关于并发部分,印象最深的是为多线程同步实现自旋锁、条件变量和基于锁的并发数据结构,基于原子的“比较并交换”、“获取并增加”的思想,对多线程同步和互斥会有更深的理解,这一部分也把一直搞不明白的“哲学家就餐”问题论述清楚了,生产者消费者思想在各种系统的应用屡试不爽。 关于持久性,除了详细介绍Linux下的文件读写外,最大的收获是阅读关于一个简单的文件系统的实现,明白了我们平常使用的文件系统包含哪些部分,需要解决哪些方面的问题,崩溃了如何保存各个信息的同步等。磁盘和驱动器方面的介绍,让我们了解“寻道、旋转,是最昂贵的磁盘操作之一”。 操作系统的设计,某方面来说是一种平衡和折中的哲学,面对硬件资源的速度、空间、大小、公平性等各种方面的竞争,如何做到利用的平衡。正如在虚拟化CPU那一章所说,“如果你愿意不公平,你可以运行较短的工作直到完成,但是要以响应时间为代价。如果你重视公平性,则响应时间会较短,但会以固有时间为代价”。作者说了一句很形象的话来概况这一点:“你既不能保留你的蛋糕,又吃掉它”。这就是操作系统的设计和实现对我们生活的启发,很多情境下,我们要选择妥协和平衡才能换来目标的实现,因为操作系统的设计思想,很多地方也来源于社会生活。 所以对于有些系统的实现,在面对资源不平衡的情况下,则需要因地制宜,根据具体实际情况来采取具体的策略,一切从实际出发,如果后续资源有所侧重和改变,则需立即调整策略和转变,以适应相应情况的变化,没有一劳永逸。 毕竟,法无定法,存在决定意识!

★★★★★

Operating Systems: Three Easy Pieces 十分推荐的一本好书,10月3号开始阅读,大概花了13h看完,做了大约200多条笔记(后面学习到读书过程中不应该有太多的划线,而应该理解,在自己的脑海中回想刚刚学的知识。本意是想复习的时候直接看笔记速度更快,但事实是划线的笔记太过零散没变成自己的笔记,复习起来很碎片,所以直接看笔记的话效果不太好,还不如就不懂的地方直接再复习原文部分)。记得当时读这本书不会很难且很有收获,让我对OS没那么恐惧了,反而觉得很有意思,想深入学习下去,在想为什么最初学OS的时候没有读到这本书(这假设好像有点不成立,正是因为了有了一定的知识储备所以才理解起来不那么难,一点了解都没有的话大概阅读也很艰难)。一口气读完,不知道当时是不是为了逃避刷题的无聊。 主要是通过OS的三大主题:虚拟化、并发和持久性展开的,书中教授和学生的对话很有趣。书名译为《操作系统导论》,译名还是蛮准确的。毕竟OS的内容很多,所以只是写了最重要最主要的部分,但同时也提出了很多启发式的思考。很喜欢每一章节后面给出的参考资料,列出了参考书籍和论文,但自己看的是中文所以也没有关注这些参考资料。 随着渐渐读书,发现好的书籍是作者自己的知识输出加上大量的查阅书籍和论文等,书中也详细列出了参考来源。这一点倒是可以成为鉴别一些专业书籍好坏的依据之一。 希望后面第二遍读OSTEP时可以读英文原版然后就不懂的地方查阅列出的参考资料。老是担心自己英文读着读着就不知所以了,可说起来好像中文书籍自己就可以很容易读懂了,然而并不是,读其它领域的中文书籍,就在想:明明都是汉字,也没有数学公式啥的,怎么就放到一起完全读不懂了,比如之前读的《资本论》。所以要开始读英文书,反而更有助于吸收书中的知识。 很久之前读的再写书评的确是有点难,所以养成阅读书籍写书评的习惯后就不要拖延,记录下自己的想法。

★★★★★

第一遍阅读 了解操作系统的三个要点:虚拟化,并发,持久。 虚拟化有两点,一是CPU的虚拟化,这抽象出进程,另外一个是内存虚拟化,这抽象出进程的地址空间。 虚拟化让每个进程有一种虚像:我独自占用CPU和我在内存中有完整的地址空间。 并发,是针对线程的,其中一个是过程调用。关于并发,了解了锁和解锁以及条件变量的相关基本工作原理,最后,以及信号量。 持久性,关系着数据的持久性存储。 后面的并发和持久性读得有点困难,等再了解相关的知识和操作再来详细阅读。

★★★★★

不同于其他操作系统书籍那样按部就班地介绍cpu管理内存管理io管理等等,本书巧妙地从操作系统这个庞然大物中提炼出三大理念,即虚拟化,并发,和持久化。这是最大的亮点:从高层的理念出发,抛出问题,然后设法解决它,你能明白为什么操作系统需要这些设计。更重要的是,本书在许多章节的内容并非教条式的介绍,而是从一个最简单的情况开始设计,然后逐步解除限制,一步步实现一个在现实情况下运行良好的方案,接着引出现有方案以供对比,这种内容模式能很大激发读者的思考。一以贯之,本书更倾向于教你哪些问题会发生,和解决问题的思路,而非输出现有的知识点。要知道计算机领域技术发展日新月异,知识更迭的飞快,而通用的问题和挑战其实并没有多大的变化。甚至这些问题和解决思路并非操作系统独有,在许多应用架构设计中也常常有这些理念的影子。 本书提出的一些设计理念也是特别值得借鉴的,最经典的莫过书中引用的“最好是好的敌人”以及反复强调的折中,书中从未断言哪种方案是完美的,事实上一些问题也从未有过完美方案,一切只不过是特定环境下的权衡,这也反映出作者的务实精神。 当然通过本书的内容去实现一个操作系统是远远不够的,正如其所说“魔鬼藏身于细节中”,达到这一目标还需大量阅读和实践,好在作为导论书中提供了大量带评论的参考资料,非常方便有兴趣深入了解的读者去研究。 最后从持久化之后的章节明显感受到翻译质量下降,一些地方看的令人费解😅,不过其优秀的内容仍然是值得反复阅读的。

★★★★★

首先这本书是真正意义上的带我入了操作系统的世界,而且从排版和章节的规划我觉得是比较合理的,而且有些内容是承上启下的有些是串联了一些历史发展,就是有着翻译不是太妥当,不过整理瑕不掩瑜,再者,对应有github的配套教材练习方便巩固知识点,我打算再看一遍,第一遍可能理解了30%不到,哈哈哈哈 个人认为较为难理解的就是内存虚拟化的发展过程以及出现的问题和如何解决的,主要是物理内存是如何分配规划和映射的,做到了进程毫不知情的安全隔离性,以及内存与磁盘置换等,关注cpu的虚拟化以及进程调度个人觉得道理其实比较容易理解和掌握,不过实际上关于进程切换,线程切换的时间片轮训和运行上下文的保存和恢复都是十分复杂的,再有就是由于多线程和多核以及中断导致产生的并发处理也是十分值得探讨的话题,其中涉及到一开始的互斥体,条件变量,以及后面的信号量,临界区等等,还有经典的哲学家就餐问题引出死锁,以及探讨死锁的预防和解决太多了… 最后是持久化技术的发展,了解了磁盘存储的直接,以及顺序和随机的区别,还有寻道旋转传输一起构成了物理IO的时间组成,以及磁盘如何管理空间划分,以及后面的RAID的出现和基于磁盘的文件系统的诞生,以及各种各式各样的设备接入,形成了完整的操作系统 真的我由衷的觉得操作系统的发展真的是一个内含哲学思考的艺术品,各种权衡利弊,也是后面大量应用程序效仿的原因,感谢那些几十年前奉献给操作系统的前辈们 基于以上,我必须要给这本书5星的评价,此刻我依然久久不能平静,怀着崇敬感恩的心情我将再次研读此书,然后加薪,23333333

★★★★★

我刚买了纸质版的,微信读书就有了😅🤦‍♂️ 最近微读是不是对计算机书籍上线加大力度了[疑问][可爱]

★★★★★

OSTEP中文版终于出了,先给个五星好评!去年读了英文版,可以重温一遍了。国内汤版操作系统很多知识点点到即止,不够深入,深入了解操作系统还得是看《操作系统的设计精髓》和这本 OSTEP 了!给微信读书点赞@微信读书

★★★★★

花了三十多个小时,近一个月,把这本书读完了。读了后,有种相见恨晚的感觉。它符合我对优秀教材的期待。内容扎实自然无需多言,以作者是研究操作系统的专家。在内容的组织上,先整体上描述操作系统的功能和特性,然后不断细化。在叙述过程中,以问题为导向,启发读者,引导思考,不断抛出问题,解决问题。读者在跟随作者思路的过程中,已经在脑子里构建了一遍操作系统。在这个过程中,作者总结出了操作系统的典型研究对象、典型研究问题和典型思维方式,以及操作系统和其他学科的关系。在阅读的过程中,总能联想起计算机组成原理、汇编、数据结构等知识,慢慢地就搭起了计算机知识体系的框架。 同时,作者的语言也很优美,无论是每个部分开头和结尾的对话,还是行文中的提出问题解决问题式的叙述,都不断地吸引我读下去,书中时不时出现一些幽默,让我时不时会心一笑,不得不说,这是第一次读专业书有这种快乐的体验。 更重要的是,这本书让我感觉到,枯燥乏味的专业知识也可以变得生动有趣,也越让我觉得,以前学过的学校教材是真的垃圾。 作为一本导论,这本书已经详细地讲解了操作系统的方方面面,但它也指明了进一步深入学习的方向——丰富的参考文献和对它们的简评——来弥补本书的不足。 本书也有一些翻译问题、错别字,但不影响阅读。 我对这本书给予很高的评价,不仅仅是它对操作系统的精彩讲解,更重要的是它作为“导论”,真正地激发了我对计算机科学的兴趣,引导我更深入地学习。 2021.8.22

书籍信息

作者雷姆兹·H.阿帕希杜塞尔 安德莉亚·C.阿帕希杜塞尔
译者王海鹏
出版社人民邮电出版社
出版时间2019-06-01
ISBN9787115508232
分类计算机-计算机综合
格式EPUB
完结状态连载中
章节数64