听内行说书:揭开Vista瘦身版真实面纱
坊间流传着一个Windows 7的Mini版本的消息,这或许是人们对庞大的Vista的一种“拨乱反正”心理的表现。
传言真是奇怪。即便真相已大白于天下,人们还是继续相信谎言。
“MinWin”就是这样一个典例。几个月来,有些行业专家猜测,微软的Windows 7会来一次彻底了断; 操作系统的核心要素将重新改写; 向后兼容将交给虚拟机和仿真机制去实现。
这一说法的核心就是“MinWin”。有人提到,微软在改写Windows内核,以便内核更轻便、更简洁。尽管这么做可能会打破整个Windows软硬件生态系统。“MinWin”就是未来,它很新、很酷。正如任何一名行业媒体专业人士会告诉你的那样,提升人气的正是又酷又新的技术。
但根据日前微软在网上发布的诸多内容,Windows 7实际上更像“Windows Vista第二版”: 建立在Windows Vista所显露的现有NT 6.x内核架构上的进化升级版,“MinWin”周围的泡沫于是随之破裂。
但“MinWin”的拥趸们还是不依不饶、深信不疑。他们说: “即便不是Windows 7,也会是将来的某个版本。MinWin会迎面而来。”实际上,如果微软完全“扔掉塞入到Vista及衍生版本中的所有用户模式方面的臃肿内容”,“MinWin”也许“现在”就出现在世人面前了。
“MinWin”的拥趸们似乎普遍存在这样一种共同观点: 如果能够以某种方式“精简”Vista,扔掉没有必要的后台服务、扔掉所有那些花哨的Aero臃肿内容,最后会得到大大瘦身的操作系统,就像Windows XP甚至Windows 2000那样精简。这种颇吸引人的想法增添了“MinWin”的神秘色彩。但这明显是不真实的。
事实是,就算扔掉所有新的服务和用户界面方面的花哨特性,Windows Vista/7核心架构仍然相当臃肿―比Windows XP或者2000庞大得多。
如果从基本的Windows Vista Business(SP1)安装开始入手,就会看到这样的工作负荷: 近600个线程分布在大约60多个进程上。只要禁用超级预取(Superfetch)、检索(Indexing)、快速启动(ReadyBoost)及其他几项不重要的服务,就可以把线程数量减少到450个至500个; 顺便说一下,其中98个线程属于System(即Windows Vista内核)级别。
相比之下,默认的Windows XP Professional安装只有300多个线程分布在大约40个进程上。精简一点,完全可以把线程数量控制在300个以下。如果把操作系统精简到最低限度,可以做到200余个线程分布在20个或更少的进程上,其中57个线程属于Windows XP内核进程(即System级别)。
而Vista即便精简到最低限度(禁用每项不重要的服务,所有用户界面的花哨特性被关闭),仍会生成多出41%的线程(340个对241个)分布在多出50%的进程(30个对20个)上,你就会明白让Vista进行“瘦身”有多困难。光Vista内核生成的线程就要比Windows XP多72%(98个对57个)。
就算Windows 2008运行在“服务器核心”配置环境下(这种环境被称为是“MinWin”的前身),仍会生成大约300个线程,它甚至没有像样的外壳在运行(运行的只是命令行)。当然,“服务器核心”内核生成的线程占了其中的98个。
综上所述,即便精简到最低限度,并且禁用了用户界面方面所有没有必要的特性,那么Vista在配置完全一样的Windows XP系统(这两种测试场景都使用Office 2007)上运行,执行OfficeBench测试脚本的时间仍要多出40%,更多的并发线程(尤其是在内核中)意味着需要更多的潜在CPU开销,从而影响了线性性能。
说白了,认为Vista的问题完全仅限于用户模式的想法纯属无稽之谈。Vista各方面都比较臃肿,而这包括内核及远离核心的各个关键子系统。为了实现接近“MinWin”的目标,就需要破除各种机制; 而那样一来,Windows实际上也就无法运行了。