Linux 为什么还要坚持使用宏内核?

目前主流的操作系统(MAC OS X,Windows)都是使用了混合内核来实现,但是 Linux 却仍然坚持使用宏内核架构。
关注者
3,234
被浏览
1,106,412
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

因为Linus可以把这些乱七八糟的东西全都一个人写了,一遍写对了,还能稳定跑起来无bug,而我们这些渣渣做不到,只能依靠保护模式来防止几百个工程师写出来的那一坨垃圾动不动蓝屏,自己弱却去质疑天才的做法,和明知自己弱还要模仿天才的做法,都是认不清现实的表现。

=============================================================

工程这个东西是很有意思的,我们说科学是掌握规律,技术是利用规律克服大自然的限制,而工程,却是利用技术来克服人自身的限制。技术会告诉你,造个金字塔,把石头垒成四棱锥就行了,如果你是个力大无穷的巨人,或者是个能意念移物的魔法师,你就啪啪啪把石头搬过来堆起来就完事了。但我们是凡人,我们力量很小,我们很弱,所以我们需要滚木,需要滑轮,需要绳索来帮忙,做了许多额外的麻烦事情,只为了克服我们肉体的自身限制。

体力上有限制,智力上同样有限制。软件工程很大程度上就是解决我们人类智力上限制的问题,软件工程师在面对不知所谓的kernel dump的时候会无助,会哭泣,在面对无休止的接口变动的时候会歇斯底里,面对改一行代码系统就全挂的窘境束手无策,所以我们需要微内核、微服务这样的框架来约束系统,降低系统的复杂性,让我们所有犯的错误都能保持在可控的范围内,让因为我们的愚笨而写出的有bug的代码也能勉勉强强运行起来而不是分分钟crash,哪怕这些方法额外增加了许多工作量、还降低了效率。

但是,总是有超人存在的,我们人要造一个纪念碑,设计一堆方案,superman会说,哈?这个事情,不是只要我去把那个石头举起来,然后飞过来,放在这里不就好了嘛?体力上差距这么大的超人也许不存在,但智力上差距这么大的超人却是存在的,所以要记住工程方法只是为了拯救我们这些凡人,对于超人来说,他们是不需要这些的,他们要做的仅仅是“搬起来,放下去”而已。