天下网吧 >> 网吧天地 >> 网吧行业 >> 网络追踪 >> 正文

微软技术工程师谈Windows的新内核MinWin

2009-12-4cnbeta佚名
     自从2007年10月Windows 7的第一条新闻发布以来,我们就一直听说这个操作系统有个叫MinWin的新组件,一个听起来像轻型系统内核的东西。现在,Windows 7已经出现在了许多愿意买账的客户的计算机上;而在它的内部——以及Windows Server 2008 R2的内部,就是传说中的MinWin内核架构……但是很少有人知道它究竟是什么。

  前几个星期,微软的技术工程师Mark Russinovich——绝对是Windows性能和架构方面的世界级权威(“内核神童”——译者注)——在洛杉矶的PDC 2009会议上花了一些时间向开发者们解释了MinWin到底是什么。简单的说,它就是把那些Windows该有的架构层全部加上了——谁让1980年的时候,Windows的架构师们没有高瞻远瞩地看到大家在30年后是怎么使用Windows的呢。它让现在和以后的微软开发者们可以改进系统的架构,而不必重写核心服务,也不必担心会破坏上层API和核心服务之间的依存关系。

  “如果你回头看这些年Windows的进化,你会发现这是一种非常有机的进化,因为进化的过程中加了无数的新功能和新组件,却完全忽视了系统架构和层次,”Russinovich解释道。“这就是为什么我们经常被迫要搞那些临时的解决方案,”“当我们想搞那些简化版本的Windows,比如服务器核心,或者嵌入版Windows,或者Windows PE预安装环境的时候,我们得把Windows拿出来拆成一块一块的。但关键问题是,这一块有时候依赖于那一块,而我们又搞不清楚这些依赖关系。”

  可能“视窗”这个名字对于描述系统内核该是啥样来说不大合适。Windows Server 2008服务器核心取得的突破性进展,是它最大限度地减少了运行的系统服务的数量,减少到系统刚好能运行并对外提供网络服务的程度。但即使是这些服务,也还是有一堆依赖关系,比如提供图形界面的动态链接库,即使这些服务根本用不到这个功能。所以你也可以想到,在这个服务器核心之上还可以进行突破,打造一个完全最小化的内核,加上模块化的组件来实现其它功能,完全不需要搞什么跟图形,鼠标,声音之类相关的动态链接库。

  MinWin就是朝着这个方向迈出的重要一步。“我们想搞得更严密一点,”Russinovich说,“因为每次我们想改进一下Windows,就会把新版本搞得完全不能用。我们想找个我们能搞得懂的服务器核心,就是除了自己以外什么都不需要的那种,然后我们就可以在这个基础上改进。这样我们就可以单独改进,而不用担心把服务器核心搞坏了,或者每一版都要重新定义。”

  Windows 7上最基本的MinWin大约有161个文件,总共大概28 兆。我估计你马上就打算买个最便宜的优盘把它装着到处晃,但我提醒你一下,MinWin连命令提示符都没有。它只运行内核,基础的系统服务,以及TCP/IP栈,没别的了。

  操作系统的功能是由API来实现的。自从Windows 3.1以来,这些由各种动态链接库组成的集合被称为Win32。在Win32里面,“苦力分界线”一直是纵向的,不是横向的。横向分界可以将处理用户输入的内核函数和图形显示函数分开。虽然现在Windows架构已经改进到整个图形部分对于主流程序来说可以基本废弃不用的程度了,但GDI32.DLL还是被假定存在的。

  微软的工程师们要想实现横向分层,他们必须要把API函数设计成像原来那样工作,即使原来的分界已经不存在了。这就是我们要谈到的最关键的一个词——“虚拟”。在新的MinWin架构下,只有KERNELBASE.DLL里一小撮别有用心的内核函数负责处理系统的基本服务。其它不明真相的API调用被直接转发,就像互联网域名系统里无法解析的地址一样,被转发到系统核心外的其它动态链接库。

9 7 3 1 2 4 8 :

本文来源:cnbeta 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行