04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?
该思维导图由 AI 生成,仅供参考
关于 Linus
- 深入了解
- 翻译
- 解释
- 总结
Linux内核由计算机黑客Linus Torvalds创造,是一套免费使用和自由传播的操作系统,支持类UNIX、POSIX标准接口,也支持多用户、多进程、多线程,可以在多CPU的机器上运行。Linux内核结构庞大,由五大重要组件组成,每个组件又分成许多模块,模块之间的通信主要是函数调用,没有一定的层次关系,也没有左右边界的限定。文章还对比了Linux、Windows和macOS的内核架构,帮助读者更好地了解它们之间的差异和共同点。 Darwin-XNU内核是苹果公司在2000年开发的一个开放源代码的操作系统,它采用了微内核(Mach)和相应的固件来支持不同的处理器平台,并提供操作系统原始的基础服务,上层的功能性系统服务和工具则是整合了BSD系统所提供的。Darwin-XNU内核层也成为了多内核架构的代表。 Windows NT内核是微软于1993年推出的面向工作站、网络服务器和大型计算机的网络操作系统,也可做PC操作系统。它是一款全新从零开始开发的新操作系统,并应用了现代硬件的所有特性,“NT”所指的便是“新技术”(New Technology)。NT内核中各层次分明,各个执行体互相独立,这种“高内聚、低偶合”的特性,正是检验一个软件工程是否优秀的重要标准。 总的来说,Linux内核性能良好,结构异常复杂,不利于问题的排查和功能的扩展;Darwin-XNU和Windows结构良好,层面分明,利于功能扩展,不容易产生问题且性能稳定。这些内核的特点和架构差异为读者提供了深入了解和比较的视角。
《操作系统实战 45 讲》,新⼈⾸单¥68
全部留言(75)
- 最新
- 精选
- pedro置顶NT是混合内核,内核相较于linux来说小,但是仍有一些模块在内核,也有相当多的模块在用户态。 架构额外清晰,也难怪几十年迭代都未曾大改大变
作者回复: 是的,你说的对
2021-05-17567 - Ilovek8s置顶NT内核是微内核,但是是混合内核结构,原因如老师讲的,NT内核里还有内核,内核之上是执行体,说明各内核上的系统组件都是以进程方式运行起来,并且通过消息传递来实现各系统组件的功能协作
作者回复: 你好,NT执行体之间不是消息传递
2021-05-17610 - 超级励辰确实有点颠覆自己的认知,一直以为Linux的内核时及其优秀且优雅的,然而并不是。反而一直觉得不稳定的Windows的内核时那么优雅。
作者回复: 保持中立 务实求真 对比之下 方见真章
2021-05-21747 - Geek_e2256b看完这两节有些概念不清楚,想问问老师: 所以宏内核相当于所有的功能都耦合在一起,放在内核内 微内核是把大多数功能解耦出来,放在用户态,使用IPC在用户态调用服务进程 混合结构其实与微内核相似,只不过解耦出来的这些功能依然放在内核里,不通过IPC调用 想问一下老师这样理解是正确的吗?
作者回复: 对的,内核模块是可以动态加载和卸载的
2021-06-1244 - os高清全景图来源 https://makelinux.github.io/kernel/map/ ,在线可缩放,点击进源码
编辑回复: 感谢分享~
2021-05-18439 - Feen突然有点想笑,觉得很有意思,最近几年很火在linux上跑的微服务架构,本质对应在宏内核的架构上运行着微内核模式的微服务架构,好有意思。
作者回复: 是啊,哈哈
2021-06-04427 - fw~繁闻一直以为linux的内核应该是最简单优雅的,window内核应该是极其复杂的,看了东哥的文章真是颠覆了我的认知。
作者回复: 看待事物要客观理性 而不是人云亦云
2021-08-0221 - zhanyd这么说来Linux的内核架构相比较而言是最糟糕的咯?
作者回复: 是的,但性能强劲
2021-05-17519 - Stony.修行僧从just for fun读到:就像Linus自己说:没有篮球,没有暑假,没有约会。当然也与他的启蒙人密不可分,外公是大学的数学教授。 从用户体验来讲: 1. macOS流畅又稳定,已经10年的mbp 没有死机崩溃过, 2. Linux server也是超级稳定,虽然GUI偶尔无响应,但是在ALT+F1 到F7 下无敌。 3. 除了蓝屏还是蓝屏,或者C盘xx 文件不存在. 话糙理不糙:NT内核再优雅连花瓶都不如。既不中看又不中用。
作者回复: 为什么大部分的Windows都没蓝屏 别拿Win9.x 说事 ,那不是NT内核 ,也不要用国内那些“优化过的”盗版Windows说事, 那是流氓软件的聚集地,请理性看待一个产品
2021-07-30613 - 陈宇鸣既然Linux是宏内核,宏内核中模块耦合性很高,那Linux是如何保证系统稳定性的呢?
作者回复: 尽量保证 代码的正确性
2021-07-2113