有关MinWin本质
02-07
早在Windows 7尚未发布Beta版前,大家应该都听说过有关Windows 7中被称为“MinWin”的微内核,它是小巧、独立、简单的Windows。对于这个玩意儿相信很多人一直感到好奇,但一直以来有关它的细节资料几乎没有。
在前不久刚结束的微软技术大会(TechEd 2009)上,操作系统内核专家Mark Russinovich披露了有关MinWin的技术细节。
下面就让我们来了解一下有关MinWin的重要信息。
MinWin确实存在于Windows 7(以及Windows Server 2008 R2)中,但它并不是传统意义上的那种内核。事实上,它是一个具备绝大部分基本功能并且可以被分离运行的微型Windows系统,不仅本身拥有核心程序,还包含了基本的文件系统、网络连接、驱动和系统服务。
Windows系统经过数十年的发展,体积成几何级增长,目前已经包含后数千个EXE、DLL文件和API。Russinovich解释说,它们彼此之间又相互依赖,如果其中一个文件进行改动,你甚至无法估计会影响到多少个其他文件。当想改进Windows的时候,发现只有从深层动手才能解决这些互相联系的状况。
MinWin,就像是从Windows中独立出来的系统,仅占用25MB磁盘空间和40MB的内存。它不需要依赖其他组件就可以独自启动并运行,还可以直接访问网络。但这并不表示着它会成为一个基于命令行的超轻量级操作系统,只是它自身集成的东西使它具有很高的独立性。
为了生成这个MinWin,微软需要对Windows架构的低层部分进行了额外的划分。由于各文件以及组件之间关联错综复杂,这条分割线会从众多的DLL文件链和底层系统服务中穿过。Russinovich说:“我们需要计算出哪些东西是MinWin需要的,哪些是不需要的。”
最后,Windows开发组决定为MinWin制作了一些不同标识的专属DLL文件(其中一个主要文件名为:KERNELBASE.DLL)。这样一来基于原有Windows平台的应用程序将不会受到影响,而MinWin也可以拥有极高的独立性。
也就是说,生成这个MinWin所需要的组件与其从现有的大堆文件中分离,还不如专门为其编写来的简单。