阿里面试官:说说操作系统微内核和Dubbo微内核?

本文探讨了Linux采用宏内核架构与微内核设计的差异,分析了宏内核的性能问题和微内核的稳定性优点,以及Linux创始人林纳斯与Minix作者安德鲁关于操作系统设计的争议。重点提到了微内核的成功案例如QNX和黑莓手机应用。
摘要由CSDN通过智能技术生成

这个词条归类在操作系统技术下,所以这里的微内核指的就是操作系统的内核设计,与之对应的是宏内核架构。
Linux 就是宏内核架构。
操作系统我们都知道它是一个中间层,为我们管理底层的硬件资源,为上层服务提供接口。
提供进程管理、内存管理、文件系统、进程通信等功能。
像 Linux 这样的宏内核设计是把这些功能都作为内核来实现,而微内核则仅保留最基础的功能。
比如就留下进程的管理、内存管理等,把文件管理等功能剥离出去,变成用户空间的独立进程来提供服务。
来看下这个维基百科上的这个图应该就很清晰了。
宏内核中的一些功能在微内核架构上都被独立到用户态中,这样内核代码量就少了。
代码少了潜在的 bug 就少,出了问题也更容易排查。
系统也就更加稳定,不易奔溃,因为那些服务从内核中移除,在用户空间运行着,如果出了故障,内核重启这个服务就好了,不会像之前那样整个内核 GG。
拿显卡驱动来说,出问题就蓝屏,这要是微内核设计就可以重启显卡驱动。
听起来好像微内核很好啊?并不是,接下来就说说微内核的缺点。
首先是性能问题。
因为很多功能作为独立进程放到用户空间运行了,所以宏内核时的函数调用就变成了进程间调用,涉及进程间的通信,还会伴随着内核态和用户态的来回切换,我们知道这种上下文切换时比较耗时的。
这性能的问题就有点大了。
然后微内核设计没那么简单,想要灵巧、减少耦合、提高可移植性就需要好好的设计,按照林纳斯的话来说:“如果 GNU 内核(微内核架构)早在去年春天完成了,我压根不会开始我的项目(Lniux)。”
GNU Hurd 采用微内核架构,设计过于精巧,研发速度缓慢,性能长期无法提升。
当年林纳斯还和 Minix 的作者安德鲁,对操作系统的宏内核和微内核的好坏进行了一波网络口水战。
我们来回顾一下那段历史,挺有意思的。
因为 AT&T 把 Unix 商业化了,大学不能免费使用 Unix,身为大学教授的安德鲁为了教学自己搞了个操作系统,即 Minix。
安德鲁
当时的学术风潮是微内核架构,把核心功能模块化,划分为几个独立的进程,运行在不同的地址空间提高了代码的可移植和系统的安全性。
所以 Minix 就是按微内核架构编写的,当然还有上述提到的 GNU Hurd。
而林纳斯那时候读大学,他祖父送了他一台 Intel 80386,林纳斯也看到了安德鲁的教科书,根据书上的内容写出了 Linux。
林纳斯
不过没有按照微内核的设计,而是跟 Unix 一样采用了宏内核架构。
安德鲁教授看到了 Linux ,然后在 comp.os.Minix 上批评道:宏内核的设计是有害的。
Linux 内核耦合度太高,完全是为了 Intel 80386 而设计的,处理器架构进化很快的,操作系统应该都具备可移植性。
安德鲁还提到:都1991年了还用宏源码交易内核来设计操作系统,这是一种巨大的退步。
林纳斯在一天之后进行了反击,他说 Minix 设计上有缺陷,从哲学和美学角度来看微内核确实好,但是你看 GUN Hurd 到现在还没开发出来。
然后操作系统本来就依靠硬件的特性,所以内核本身不需要过度具备可移植性,应用程序的可移植性才重要,Linux 比 Minix 好移植多了。
而且 Linux 本来就是为我自己做的,所以契合 80386,如果要移植到别的平台,代码都是开源的(Minix 源码当时得买),想要的人自己做咯。
安德鲁也做了一波回应:Minix 有局限性是因为我是教授,因为大部分学生都只能在低配的机器上使用,所以系统的硬件需求得足够低,虽然你 Linux 是免费的,但是需要的硬件贵呀。
其实可以看到,两者并没有对宏内核和微内核的技术细节的进行深入探讨,而是抓住对方的:你这 Minix 代码还要收费,你这 Linux 需要的硬件这么贵来进行“攻击”,所以称之为口水战。
反正口水战之后双方都没有改变各自的设计,不过林纳斯有引进微内核的思想来改进代码,也改善了可移植性。
微内核市面上设计成功的有 QNX,黑莓手机就是用这个操作系统,车用市场也几乎都用 QNX 系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值