拥抱Windows 7——解读Aero

本文介绍了Windows 7的Aero界面,揭示了其背后的技术——桌面窗口管理器(DWM)和桌面合成。Aero不仅仅提供美观界面,还解决了传统桌面渲染模式的缺陷,如撕裂现象、高CPU占用率。通过DWM,实现了更低的CPU占用率、实时缩略图、流畅的动画效果。此外,Aero在Windows 7中进一步优化,如WDDM 1.1的改进,更省内存的DWM以及对远程桌面的支持。文章强调,评价Aero不应只看表面,而应了解其实用价值。

这是我在一年前写的一篇文章,一年前首发太平洋电脑网论坛(当时并没有打算在这个Blog上发),为了填一下这个空空的优快云 Blog,最后还是决定发到这里来了(做了点修正)。本文主要以一个概要的形式让大家对Aero、DWM有个较清楚的了解,面向大众,所以内容并不深入,想看深入的还是去看其他人写的吧。如有错误之处,欢迎指正。

 

Aero ,又叫 Aero Glass ,是从 Windows Vista 开始引入的毛玻璃风格的界面,微软全新推出的操作系统 Windows 7 也继承了这种界面设计。它的效果确实让人眼前一亮,然而很多人却认为这个美轮美奂的界面是华而不实的花瓶。那么, Aero 界面真的是华而不实吗?非也!

 

拥抱 Windows 7—— 解读 Aero

 

微软 Windows Vista 系统由于生不逢时而惹来了很多不好的名声,很多人更是人云亦云,并仅从其表面主观判断这个系统的好坏,因而出现了很多持有“ Aero 无用”或“ Aero 华而不实”之类的观点的人。

对于全新推出的 Windows 7 操作系统,由于有 Vista 打下的基础(硬件驱动以及软件的成熟),加上微软在 Win7 上付出的努力,这个新一代的操作系统获得了不错的反响。大家都逐渐愿意去关注她,拥抱她。正好给了我一个机会为 Aero 平反。

本文将通过简述 Aero 的基本工作原理来讲述 Aero 除了给我们带来华丽的界面之外还给我们带来什么样的好处,并让大家对 Windows 7 有更多的了解。评价一样事物,不应只看其表面,更应该看清楚它的“心”。

 

传统桌面渲染模式的缺陷

 

下图的现象相信你非常熟悉:


1

 

为什么会这样?要解析清楚这个,我们就需要了解一下传统的 Windows 桌面渲染原理。

Windows Vista 之前, Windows 只有一个桌面缓存,并且所有的程序窗口都直接在那个缓存上进行渲染。

这样说或许比较抽象,用个比较形象的说法就是,你所看到的整个屏幕上的画面就相当于一张画在一张纸上的画。对,就是只有一张纸。

这样造成的结果是什么呢?我们再来看。

2 2 个计算器窗口,其中一个被另一个覆盖了一部分窗口内容。而被覆盖的那个计算器的窗口内容,实际上就只有看得见的那部分(参见图 3 )。

 

       

2

 

3


这是因为所有窗口都只在一个缓存上直接渲染(绘图)的关系。试想一下,一张纸上的内容,除了你所能够看到的那些部分之外,还会有什么?

所以当我们移动上面的那个计算器窗口的时候,下面那个计算器的窗口就要重绘,整个画面都需要重绘。

而当我们在另一个应用程序上快速来回移动窗口时,由于下面的窗口更新速度太慢,没能及时重绘窗口,从而形成了图 1 的那种撕裂现象。与此同时, CPU 占用率也会变得很高。

并且最终的桌面渲染是由 GDI GDI+ 图形引擎来渲染的,在高分辨率的情况下,渲染出来的画面也不够细腻。

传统的桌面渲染由于存在撕裂现象 画面不流畅 CPU 占用率高和画面粗糙这些问题,显然不能适应未来的发展,而且所有的这些缺陷在高 DPI 的显示器下会变得更明显。

 

Aero 的真身 —— 桌面窗口管理器( DWM

 

桌面窗口管理器与桌面合成     

 

桌面窗口管理器( Desktop Window Manager DWM )是从 Vista 开始引入的一个新组件,它使用全新的技术来渲染桌面 —— 桌面合成( Desktop Composition )。

Aero 界面是基于 DWM 的。开启 DWM 后,所有窗口都有自己独立的缓存来进行渲染,然后由 DWM 进行管理并获取所有缓存的内容,再通过桌面合成组合出最终的桌面。

 


4 桌面合成

 

这就好比用多张独立的画来叠放出一张新的画出来。如果你懂得图层这个概念就能更好地理解这一点了。

 

  进阶阅读: DWM 只会为 Top-Level (请意会)的窗口开辟出独立的缓存来渲染。对于 MDI 应用程序,它的所有 MDI 子窗口都会跟主窗口合并为一个窗口,并由 DWM 开辟出一个缓存来渲染。也就是说,所有 MDI 子窗口都不会有独立的渲染缓存。

 

当今的显卡发展越来越快,性能也越来越强大,可是除了玩 3D 游戏和多媒体应用之外,显卡的资源根本没有得到充分利用。

而传统的基于 GDI 引擎的显示技术也很难实现平滑流畅的动画效果,于是,为了更充分地利用显卡的资源以及为用户提供更高的视觉体验, DWM 使用了 DirectX 来渲染桌面。

桌面合成技术结合显卡强大的图形处理能力,为我们带来了这些好处:

1. 告别撕裂现象

由于每个窗口都有独立的缓存来渲染自身,撕裂现象将不再出现。

同时,以往拖动播放视频的窗口出现的图像跳帧现象也会被杜绝。现在即使你不停地拖动播放视频的窗口,图象也可以流畅的显示。

2. 更低的 CPU 占用率

桌面合成的设计加上显卡图形处理器( GPU )的运算能力,快速拖动窗体时的 CPU 占用率会变得很低。不仅如此,视频播放的 CPU 占用率也会更低。

3. 实时缩略图

使用独立缓存来渲染窗口,窗口不再像图 3 那样残缺不全,实时更新的窗口缩略图也因此得以实现(如图 5 )。实时缩略图能够在一定程度上提高我们的工作效率, Win7 的超级任务栏在这方面发挥得很好。


5

 

4. 更酷 更实用的用户界面

仍然以独立缓存为基础,再借助强大的 DirectX ,诸如毛玻璃窗口边框 Flip3D 窗口变换动画(如图 6 )等动态效果都能轻松实现。在带给用户前所未有的视觉体验的同时,也具备很好的实用性。毛玻璃的窗口边框,能让用户更专注于内容;全新的基于实时缩略图的 Alt+Tab 窗口切换以及 Flip3D (组合键: Ctrl+Win+Tab )的 3D 窗口切换,能让用户轻松遍历所有窗口,窗口切换更直观 更有效率; Win7 新增的 Aero Peek 也同样具备很好的实用性。


6

 

5. 高分辨率支持

DWM 技术为高分辨率显示器提供更好的支持,而且对于 120DPI 以上的显示器,画面也依然平滑流畅 细腻。

 

开启 Aero 之后,我们的桌面就相当于一个全屏幕的 Direct3D 应用程序。只不过我们玩的不是游戏,而是窗口。 :-)

3D桌面因此而得名。很多人误解了,以为Aero之所以叫3D桌面是因为图6那个3D效果。错了,其实这是因为Aero使用3D技术来渲染才叫3D桌面的。(跟朋友交流过后,觉得有必要补充一下这点)

 

  小提示:

常用的游戏帧速监控软件 Fraps ,除了能够监控 3D 游戏的帧速之外,还可以监控 Aero 界面的帧速哦。运行 Fraps 之后,勾选“ MonitorAero Desktop(DWM) ”(如图 7 ), OK

 

 

 


7

 

全新的显示驱动模型 ——WDDM

 

说到这里,不得不提一下 WDDM Windows Display Driver Model Windows 显示驱动模型)。

由于 DWM 使用 DirectX 来渲染桌面, DWM 会与其它的应用程序共享视频内存资源,比如 DirectX 应用程序、视频回放。这样会产生一系列的问题,旧的显示驱动模型成为了最大的绊脚石。于是,全新的 Windows 显示驱动模型 WDDM 便诞生了。

对于 WDDM ,这里仅简要介绍一下:

WDDM 是全新的显示驱动架构,它是图形处理器( GPU )和视频内存(显存)的最终所有者,负责显存的管理和 GPU 资源的调度。

WDDM 实现了操作系统和图形卡 GPU 之间更复杂的资源分配和调度工作,其中一个强大功能就是“虚拟化视频内存”。

视频内存的虚拟化,意味着可以用系统内存来作为显存来使用。说到这里,你可能会马上想到 ATI 显卡的 HyperMemory 技术和 Nvidia 显卡的 TurboCache 技术。从效果上是有点像,但又有所不同。

WDDM 的视频内存虚拟化,使得显存用完了,可以自动使用系统内存作为显存使用,系统内存也用完了,可以用虚拟内存(当然,这种情况很少会出现)。通过 WDDM ,视频内存的资源能得到更好的管理和分配。

以前几乎不可能稳定地运行多个三维应用程序;也很容易会出现一个 DirectX 应用程序耗尽其他应用程序的资源的情况。使用 WDDM 之后,这种情况将很难发生。

 

  小提示:

很多人都习惯通过 dxdiag.exe 来查看显卡的显存大小。可是,在 Vista/Win7 下,你却看到它显示的显存大小竟然远远超出显卡的实际显存大小。比如我的移动版 ATI x1300 显卡,明明只有 64MB 显存,却显示有 1534MB 显存。是系统问题吗?
相信聪明的你看到这里已经明白这是谁的“杰作”了。对!就是 WDDM

 


 

WDDM 还针对显示器驱动程序挂起的情形提供了容错措施。这样使得系统能够在检测到系统挂起后再次重启显示器驱动程序,而无需重启系统。

 

  小提示:

试过在 Vista/Win7 下屏幕出现短暂黑屏,然后任务栏右下角提示“显示器驱动程序已停止响应,并且已成功恢复”的情况吗?
这种情况一般是显卡驱动问题。重要的是,这种情况表明 WDDM 的可靠性设计可以很好地发挥作用,如果是 XP 出现类似情况的话,估计早就崩溃了。

 

WDDM 除了解决了 DWM 技术所产生的问题之外,还为系统提供了非常高的健壮性和可靠性。当然,其他的 3D 程序都能从中获益。

 

Aero 基于 DWM ,而 DWM 又基于 WDDM 。在提供华丽外表的同时, Aero 界面与很多强大的技术基础紧密相连,给我们带来了很多实实在在的好处。

 

 

掌控桌面窗口管理器

 

现在,大家都已经对 Aero 界面有了很清晰的了解。我们再来看看如何更好地掌控 Aero ,也就是桌面窗口管理器( DWM )。

 

在任务管理器里看到 dwm.exe 这个进程了吗?对,这个就是桌面窗口管理器的进程。不过,禁用 Aero (关闭 DWM )可不是直接在任务管理器结束这个进程哦。

正确的方法应该是:

按下 Win+R 组合键,调出“运行”,输入“ Services.msc ”(不含引号),回车后,打开了“服务”。然后找出“ Desktop Window Manager Session Manager ”这个服务(如图 8 ),在工具栏上有几个操控按钮分别可以对这个服务执行“启动” “停止” “重启”这些操作,你可以在这里通过“停止”来随时禁用 Aero 界面(注意:关闭 Aero 界面意味着关闭桌面合成,桌面渲染方式会退回到传统的渲染方式),重新开启只需再次启动这个服务。

有时候某些程序因为不兼容 Aero 界面而在运行的时候自动禁用了 Aero ,可是,当关闭程序之后,可能会出现 Aero 界面无法自动恢复的问题。重启 Windows 吗?不必!在“服务”那里用“重启服务”来重新启动 DWM 即可。


8

 

有些不兼容 Aero 界面的程序未必会在启动的时候能够让 Windows 判断出要自动关闭 Aero ,这个时候,我们可以通过“兼容性”设置来为这些程序设置一下:

鼠标右击主程序文件或者其快捷方式,转到“兼容性”标签页,勾选“禁用桌面元素”(如图 9 )并确定保存设置即可(这个选项的英文原文是“ Disable desktop composition ”,也就是“禁用桌面合成”,不得不说,中文版实在翻译得不太好 …… )。


9

 

 

Windows 7 的改进与硬件要求

 

关于 Windows 7 相对于 Windows Vista Aero 方面的改进,这里仅略微简述一下。

 

WDDM 1.1—— 更完善的显示驱动模型

 

基于种种原因,在 Vista 里, Aero 的实现使得在 GDI 的图形处理方面没有了硬件加速特性。由于很多应用程序仍然使用 GDI 图形引擎来进行图形渲染,用户因此感觉到 Vista 运行某些应用程序比 XP 慢。

Windows 7 里全新的 WDDM 1.1 Vista WDDM 1.0 )驱动模型对此作出了改进, GDI 渲染重新获得了硬件加速特性,大部分的窗口操作会变得比 Vista 更流畅。

顺带说一下,在 2D 和文字的渲染方面, Windows 7 新增了名为 Direct2D DirectWrite 的技术来取代老旧的 GDI 引擎( Vista 用户可以通过补丁升级获得这 2 个特性),这 2 个技术都能通过 GPU 加速来获得更快速的渲染性能以及更高的渲染质量。不过现在还没什么应用程序使用了这 2 个技术,目前正在开发的 IE9 以及 Firefox 3.7 都使用了这 2 个技术来渲染网页,以最近公布的 IE9 平台预览版来看,渲染效果确实相当棒(本文帖到这个Blog的时候,IE9正式版以及Firefox 4正式版都发布了很久了。。。)。

WDDM 1.1 GPU 资源的调度方面相比 Vista WDDM 1.0 也做得更好。

 

更省内存的 DWM

这里就不细说了,改进后的 DWM 内存占用比 Vista 更少。即使你打开很多窗口,内存的使用量也不会明显增加。

 

远程桌面支持 Aero

远程桌面,是从 XP 开始新增的远程控制工具。而 Windows 7 内置的远程桌面借着全新的远程桌面协议( RDP )使得远程桌面控制也支持 Aero 效果。不过对方(被控制的那方)的系统也必须是 Windows 7 或者是 Windows Server 2008 R2

实质上,远程桌面的 Aero 效果的实现是在本机上实现的,也就是说,用你自己的机器来进行 Aero 效果的渲染。

开启远程桌面 Aero 支持的方法:

运行远程桌面,点击“选项”,转到“体验”标签页,勾选“桌面布局”即可(这个选项的英文原文是“ Desktop Composition ”,也就是“桌面合成”,果然翻译为中文后功能就是难找啊 …… )。

 

硬件要求

 

Windows 7 的改进以及新特性离不开新硬件的技术。 WDDM 1.1 Direct2D DirectWrite 都需要 DirectX 10.1 的显卡。使用 DirectX 9.0c 显卡的用户只能在 Win7 下安装 Vista WDDM 1.0 驱动程序, Aero 界面仍然可以正常使用。不过对于某些特性(比如 Direct2D DirectWrite ),就只能用名为 10Level9 的软件层来完成,也就是用 CPU 来运算。性能方面肯定大打折扣,所以最好搭载一块 DirectX 10 以上的显卡。

 

 

几点误区

 

误点 1 Linux beryl compiz compiz fusion Aero 更强

很多 Linux Fans 都认为 Linux 里的 beryl compiz compiz fusion Aero 强多了,并以这些组件的效果到处炫耀。作为 Windows Fans ,我不得不站出来为 Aero 说句话。

首先,我想说明一点,这些组件的实现原理其实都跟 Aero 差不多。其实就是抄袭了 Aero 。证据我多的是(时间 证物),限于篇幅,我就不废话了。(这里我要更正一下,看过国外网友的一些讨论发现,貌似Mac OSX的Aqua其实就已经应用了桌面合成技术了,所以其实最早使用这种技术的应该是Mac系统了,不过这种技术也不能随便使用的,只是当时的苹果机的硬件都很强,所以应用得比较早

谁先谁后都不是这个误区里最关键的问题,关键是,人们过于以表面去判断事物了。我在前面说了, DWM 是使用 DirectX 来渲染的。这意味着很多很酷很炫的特效都可以轻松实现,但操作系统终究是要来用的,不是要来玩的,没有实用性的特效,再酷也无用。

很多用户都被 Linux 那些好玩的特效给蒙蔽双眼了,这些组件能做的,其实 Aero 也能实现。奇怪的是,貌似没有人说 Linux 这些特效华而不实,可能是因为这些特效太好玩了 ……

如果你喜欢类似 Mac 系统的窗口切换方式,那么可以通过安装 Switcher 这个软件获得类似效果。下载地址: http://insentient.net/Files/Projects/Switcher/Switcher-2.0.0.2705.msi

这是为 Vista 设计的软件,经试验,同样适用于 Win7 。软件提供了 3 种窗口排列方式,还可以通过搜索来快速找到窗口。

 

误点 2 :在 XP 下使用 WindowBlinds 之类的软件可以获得跟 Aero 同等效果

使用 WindowBlinds 可以在 XP 下模拟 Aero 的玻璃界面(其实单从效果上就已经相差很远了),不少人认为这样获得的效果跟真正的 Aero 没什么两样。实际上,没有桌面合成技术这个基础,搞这种界面效果才是真正的华而不实。

 

误点 3 :用某些视频播放软件也可以在 XP 下实现梦幻桌面

很早以前,某些视频播放软件就支持在桌面上播放视频。而 Vista 的梦幻桌面说白了也只是在桌面上播放视频。因而很多人认为梦幻桌面其实不新鲜,而且 XP 也能实现。

而事实上,没有桌面合成技术,梦幻桌面并不“梦幻”, XP 下的“实现”相当于自虐 ……

 

小秘密:

最后来个小秘密。 Office 2007 左上角的圆形按钮有一部分能够放在了标题栏上你是不是觉得很神奇? Chrome 浏览器将标签栏放在标题栏上你是不是觉得很新颖?因为标题栏从来都不能放东西上去啊。那如果我告诉你这其实不是真正的标题栏呢?

事实就是这样。准确点说,这些标题栏都不是标准的标题栏,这是 Aero 界面提供的新特性。只有开启 Aero 才支持的,所以关闭 Aero 之后或者你使用的是 XP ,你会发现 Office 2007 Chrome 的标题栏都套上了皮肤。套上皮肤不是为了使界面风格统一,而是为了掩饰。因为这个时候,实际上他们都是没有真正的标题栏的,必须用皮肤伪装成标题栏。

 

 

结语

相信大家看完本文之后都已经对 Aero Windows 7 有了较深入的了解,最后希望大家谨记一点:不要单凭表面去评价事物。

一起拥抱 Windows 7 吧!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值