Windows操作系统是全球最受欢迎的计算机操作系统之一,它自1985年问世以来,已经发展成为拥有数十亿用户的庞大生态系统。Windows操作系统的发展历程中,其内核一直是备受关注的关键部分,因为它直接决定了系统的稳定性和性能。那么,Windows是基于什么内核的呢?本文将带您了解Windows操作系统的内核演变历程,以及各个版本的内核特点。
首先声明,我确实不是一个OS专家,但作为一个写过Windows驱动,也学过Linux早期源码的程序员,立即在脑子回想一下,确认"Windows何时变成微内核了",那么下面就来分析一下"Windows的内核到底是什么"。虽然说是分析,其实是有点向自己脸上贴金,我写技术文章的习惯一向是不怎么输出观点,尽量用官方资料或者大家都可以重复的东西来讲述事实。
首先是微内核的定义讨论一个东西,应该对其进行明确的定义,否则很容易陷入鸡同鸭讲的囧境,就比如我就不乐意讨论“XX国产系统是否是XX套壳”,双方如果没有对套壳有个明确的定义,特别是技术与非技术人员,对这个东西的定义就不一致,就更容易扯的不着边际。
幸好,微内核这东西,在学术界和工业界都有一个比较共同的定义,直接从Wiki上抄一段吧,https://zh.wikipedia.org/wiki/%E5%BE%AE%E5%85%A7%E6%A0%B8:
可能上面的定义还是有点复杂,我直接对着上面这张图简单解释一下:如果一个内核。只在Kernel Mode模式里放置IPC(进程通讯),MM(内存管理,也有别的叫法,不详述了),Scheduling(调度)。那么就认为是微内核,反之,如果把其它的东西,比如file system, VFS, device drivers放到Kernel Mode,那么就认为是宏内核。具体细节,我就不在这里扯了,说白了,判断一个内核就是看它在Kernel Mode中运行了哪些东西。
标准给出来以后,我们再来看Windows内核到底是什么情况。
首先上一个Windows官方文档的链接:
文章里结尾,以备注的方式明确声明了以下内容:
这可是微软的官方技术文档,已经非常的清楚的表明,微软自己对Windows内核的看法:
它不是一个微内核。
那么,接下来,再从技术架构的角度看看,为什么微软为什么会这么说呢?微软的Windows没有开源,那么我还是找一个官方资料吧:
先介绍一下文章的作者,毕竟不能随便拉个人,拿他的文章当资料对吧。作者叫Hari Pulapaka,在微软的Title是Program Manager for Windows Kernel,他提供的资料应该还是有一点权威性的,而且文章写于2018年,分类在内核栏目下,目前还在,也有大量回复和讨论,说明微软官方并没有认为他的观点有什么问题。习惯是先上图:
按照前面微内核的定义,这明显感觉不像是一个微内核了吧,直接引用作者的原文如下:
第一句里,作者很明确的用了关键字Like,说明WindowsNT只是像但不是。第二句里,更是明确说,not a true microkernel,而且作者明确的给出了原因,因为把Ex(包括文件等)放在Kernel Mode下运行,所以不是微内核(正好也验证了我前面的说法,当然这个说法或者说标准不是我的发现,而是大家都认可的标准)。
这里补充一下历史,Windows在历史上的确是想用微内核来搞的。当时的负责人正是内核大神David Cutler这位大爷,但后面落地时发现,这微内核的性能确实存在很大问题,没办法,只好又调整架构,变成了上图的架构,微软自称为混合内核(Hybrid Kernel),Apple自己的MacOS使用的XNU其实也自称为混合内核,同样是XNU在Github上的官方定义:XNU is a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and a C++ API for writing drivers called IOKit.
相信前面的资料已经足够证明,WindowsNT不是什么微内核OS了,我实在也不知道那位"资深win内核专家"是怎么坚信Windows是微内核的。关键是我实在是不懂他的逻辑,一面说着NT内核里有文件系统等一堆内容,又坚持说这是微内核,我实在很难想像这是一位内核专家能说出来的话。
混合内核到底是什么鬼接下来,再来看看混合内核到底是什么鬼,这货到底和微内核有什么关系?
我先声明一下我的观点:其实只要认真读过操作系统原理,对微内核和宏内核架构有一定认识的人,都不太会认为混合内核和微内核有什么关系,它本质上就是一个宏内核。当然我的观点可能没有什么权威性可言,我还是拉一位大神来站台吧(出台就别指望了)。
这位大神叫Linus Torvalds,不用详细介绍了,Linux的作者。这哥们脾气火暴,不仅粗口不停(和David Cutler一样,把f打头的单词当作口头语),而且向来直言直语。2006的时候,Linux邮件组里。对NT的所谓混合内核有过讨论,Linus他发表了自己的观点,链接如下:
邮件内容较长,也比较技术化,我就不全部翻译了,直接把Linus写的结论贴出来:
也就是说在Linus眼里,"混合内核"这也就是个市场营销的术语,但其实还是一个宏内核架构。
最后声明一下,本文只是讨论windows到底是什么类型的内核,以及混合内核到底是什么情况,别用这些标准去讨论某些国产OS内核,保命要紧。
以上就是windows基于什么内核的全部内容,有出现这种现象的小伙伴不妨根据小编的方法来解决吧,希望能够对大家有所帮助。
电脑教程推荐
win10系统推荐