【08】难怪阿三整不来

《现代操作系统》第十三章 读后感

0

《现代操作系统》的第十三章, 《操作系统设计》,真的是能同时逼死文科生和理科生。

1

《现代操作系统》的作者安德鲁·斯图尔特·塔能鲍姆先生一定是中国中庸之道的热爱者。我很无聊的数了一下,在第十三章中大约出现了43次类似于『 $A$ 好,但是影响 $B$ ; $B$ 好,但是影响 $A$ ;我们要找到两者之间的平衡』的句式。理科生思维总是更加倾向于喜欢明确的定量的描述,『 $P_1$ 条件下用 $A$ 方法, $P_2$ 条件下用 $B$ 方法』之类;而模棱两可的定性描述就非常让人头疼,到底该怎么办?就是不讲明白。(可能也讲不明白)

2

文科生呢?别说了,大概连做《太吾绘卷》的那个产品经理都看不下去,更别提别的文科生了。

3

Windows 10 最近可是捅了大篓子。2018 年的秋季例行大更新(代号 1809)出现了重大 BUG,部分用户在升级后丢失了个人文件夹中的文件。如此重大的 BUG 致使微软不得不撤回该版本的更新,修复严重漏洞,并推迟到 11 月份才重新开始推送 1809 更新。但是重新推送的更新并没有改变很多,依旧存在非常多的问题,甚至包括网络驱动器映射功能故障,与英特尔显卡驱动的兼容性问题等重大问题。

4

轮子哥(@vczh)在知乎上有过这么一个回答。他说,

在程序员这个职业里面,虽然牛逼的在印度的印度人跟牛逼的在美国的美国人和在中国的中国人都一样,但是在印度的印度人的平均水平远不如在美国的美国人或者在中国的中国人。

对于 Windows 10 一贯的 BUG 多,体验差的问题,大家总是会调侃说锅都得给印度人背。说阿三技术差,代码丑,产品经理吃屎。虽然说这话其实非常种族歧视,但是冥冥之中也许就是事实,并且也从侧面说明了最主要的问题:开发一个操作系统真的非常困难。

从书中的 13.1 到 13.4 ,作者花了相当大的篇幅讲述了操作系统在总体,接口,实现,性能上需要关注的问题,但是能够看得出这所谓的大篇幅仅仅只是写了一个皮毛。如果真的把所有的细节都进行详细描述,那大概真的是要成为上万页的天书级别的著作了。

5

近两年,不少大公司都非常热衷于砍 QA 团队。取消测试团队,把测试工程师全部转为开发。到微软身上,这样的事情纳德拉也干了。传言 Windows 的测试团队大幅缩水,远远没有曾经 Win 7 等时代测试团队占总开发团队人数一半那么风光了。

书中 13.5 讲到了关于操作系统开发团队的事情,Brooks 在《人月神话》中估计的开发工作量里,把总工作量的一半都分给了测试工作,可见测试的重要性。当然也很显然,程序员总会犯错误,在这样大型的项目中就算犯错概率再低,也总会有非常多的错误。

对于亚马逊这类快速迭代产品的公司来说,砍 QA 团队的确可以在减少预算的同时不太影响产品质量;但是微软在开发大型操作系统的团队中同样削减 QA 团队是否合理?从结果上来看,Win 10 拥有前所未有数量的 BUG,有些甚至明显到只要开发人员吃狗粮(Dogfood)就能绝对能意识到问题的存在。对于一个稳定性至上的大型操作系统来说,砍掉专业 QA 团队转而让用户当 QA,恐怕不能称为省预算,而应该称为是抠门了。

6

这篇读后感的原始要求是『谈谈你在设计操作系统的认识』。当然这是个经典病句,不过我们先不深究这个细节。很显然,我在之前的千字中一直围绕的是『开发』操作系统,而并没有特别切入『设计』操作系统。现在不妨来谈一谈我的认识。

在阅读完《现代操作系统》第十三章《操作系统设计》后,我在『设计操作系统』方面最大的认识是:

我不配拥有认识。

操作系统是现代软件工程的一大奇迹。如此庞大的结构体系被设计出来,接着上千万甚至上亿行的代码被编写出来,高效地管理着硬件和软件,并且能稳定的运行很久不崩溃,这不是奇迹是什么?这是一个堪比建造金字塔的奇迹。

在这样的工程奇迹面前,我不配拥有对他的认识。我既没有足够的学识搞明白所有设计操作系统的问题与权衡,也没有足够的能力看懂现代操作系统的代码(虽然也许说不定自己能写出个简单的内核)。我能做的,大概也只有先搞搞明白什么叫进程线程管理,内存文件管理吧。

7

难怪阿三整不来。


Courses

1593 Words

2018-11-29 22:00 +0800

本文阅读量
本站访客量