Vista下软件不兼容为哪般
技术与开发
日前,微软公布了与Vista兼容的应用程序列表,共包含800多个应用软件。所有的微软自家产品都出现在列表中,包括最新的Office 2007。而其主要竞争对手苹果、IBM、Google等公司的产品均不在兼容之列。在安全软件领域,竟然只有趋势科技公司(Trend Micro)榜上有名,赛门铁克公司(Symantec),McAfee等著名安全软件厂商则全部被排除在外。Enderle Group公司的行业分析师Rob Enderle称,“这些公司的软件可能在设计方面无法与Vista兼容。”但他同时也表示,“其中的一些可能是有意而为之。”微软还表示,Vista兼容软件列表将会每周更新一次,以吸纳更多的第三方应用软件。
注:对64位Vista而言,兼容问题更加严重。除应用软件外,还更多更严重地表现在各种硬件驱动上。
面对如此多的兼容性问题,我们不禁要问:兼容性问题究竟是如何产生的?该如何解决?
一、兼容性问题产生的原因及对策
在此,我们将分析Vista增强的安全、稳定措施,应用软件为什么会与它产生冲突以及常见的应对方法。
Vista作为一个全新的操作系统,为保证其安全性和稳定性,微软采取了很多措施,可能会引起应用程序兼容性问题的主要包括以下几个方面。
1.UAC
UAC即“User Account Control”,用户账户控制。在Vista下,我们创建的用户一般为管理员和标准用户(相当于Windows XP下的受限用户)两大类。它们在UAC面前的表现有所不同。UAC利用了最初在Microsoft Windows NT 3.1中设计的Windows安全架构。如果在Windows Vista中启用了UAC,所有用户(包括管理员)都运行在标准用户账户内。只是允许管理员有选择地启动管理程序,这些程序在需要时才使用账户的完全权限。这是受保护管理员(Protected Administrator,PA)账户概念背后隐藏的理念。也就是说,在管理员用户登录到他们的账户中时,他们实际登录到标准用户账户环境,但是他们可以通过申请批准来以完全权限运行应用程序。只有在批准之后,才允许应用程序以用户的完全权限运行。具体表现就是弹出UAC对话框时需要单击一下“确定”或“允许”,这就是所谓的提升用户权限。
有的应用程序需要在高权限状态下安装或运行,当它受到UAC阻止时就会引起兼容性问题。
解决方法:
开启特殊账户Administrator,并在该环境下安装或运行有兼容性问题的应用软件。也可在关闭UAC的条件下试运行。
借助微软应用程序兼容性工具包(Application Compatibility Toolkit V5.0 ,简称ACT)。它可识别兼容性问题和创建兼容性补偿 (Shim)。即对程序的高权限需要进行标记,以便在能够以完全的管理权限运行之前,首先提示用户对此进行批准。
比如:我们对一个程序(为叙述方便,设为程序A)进行兼容性补偿设置后,它可创建一个数据库文件。再通过ACT将该数据库文件添加到系统中。当我们再次运行程序A时,首先要调用的就是兼容补偿数据库,并对程序的权限进行提升,再将这一高权限继承给程序A以保证它的正常运行。
2.WRP
WRP即“Windows Resource Protection”的简称,直译过来就是“Windows资源保护”,它要保护的主要包括系统文件和注册表。这种保护对用户来讲是为了让系统更加安全和稳定,因为在当今的软件环境下,恶意攻击非常频繁明显。众所周知,这些攻击都是针对注册表和系统文件的。微软为解决这一问题,采用了WRP技术对系统进行保护。而且,这一保护措施与UAC有很大的不同,它默默地运行于后台,保护用户于无形之中,用户无法解除它。
很多应用程序特别是商业软件为达到自身的目的,往往会在安装或运行时修改注册表中与安全、稳定相关的项目,修改或替换系统文件。此时,Vista不可避免地会对它进行阻止,兼容性问题也就由此而产生。
对Vista有一定了解的朋友一定知道这样一个事实,杀毒软件、防火墙是兼容性问题的重灾区。迄今为止,很多能在Windows XP下工作的杀毒软件、防火墙还不能与Vista兼容。主要是因为这类软件为保证比较彻底的杀毒效果,得深入到系统程序内部。比如:诺顿企业版,它能经受企业网管最挑剔的眼光,就是因为得到了微软的源代码支持(双方交换过源代码),与其它同类软件相比,它采用了最底层的防毒机制,所以防病毒效果是较彻底的。但也正因为如此,它的资源占用率较高,彻底卸载困难。在WindowsXP时代,这已是公认的事实。它与Vista不兼容的根本原因也在于此。杀毒软件、防火墙的这些特征可以说是与系统文件、注册表冲突的最突出表现。我们之所以举出这个例子是为了说明应用软件与Windows系统文件的关系,可以说,这类软件是兼容性问题的代表。
还有一个简单的例子也许能帮助我们理解这一问题,那就是“绿色软件”。“绿色软件”指不需要安装即可直接运行的软件,不需要安装就意味着不需要在系统中留下踪影,不需要修改注册表。实践表明,大多数绿色软件能在Vista下很好地运行,因为它没有冲突的理由。
解决方法:
忽视应用程序错误并继续执行,这样做,部分需要修改注册表或系统文件的程序可能无法实现其功能。
提示:关于防火墙,Vista自带的已能支持传入和传出双向设置。笔者个人认为一般用户没必要选用第三方同类产品。关于杀毒软件,可登录http://www.microsoft.com/athome/security/update/windowsVistaav.mspx,免费下载微软为我们推荐的几款,包括CA Anti-Virus、F-Secure Anti-Virus、AVG、PC-cillin、Windows Live OneCare等。其中,Windows Live OneCare是微软进军反病毒市场的第一款旗舰产品,它整合了检查并删除病毒、清除硬盘中的垃圾内容、提高计算机性能等功能。目前,Windows Live OneCare还只能适用于英文版Vista,但我们可登录http://onecare.live.com/site/zh-cn/tryscanner.htm,免费地在线享用它。
3.版本冲突
很多商业软件在安装或运行时,首先会对当前系统版本进行检查,以验证是否与其所期望的环境相同。不难想象,这在一定程度上会带来应用程序的兼容性问题。
解决方法:
●Vista中内置了程序兼容运行向导,可通过它模拟其他系统比如Windows XP来运行应用程序。
●通过ACT对应用程序进行兼容性补偿以跳过版本检测。
●忽略版本不符提示并继续执行。
另外,可能引起兼容性问题的还有Vista中的其它新技术,比如:服务分离、低权限IE(Internet Explorer - Lower Rights IE)、双向防火墙等。
注:服务分离是指将应用程序和对应的服务进行分离,这可避免恶意程序攻击时导致服务的失败。
二、兼容性问题带来的风险
通过前面的讨论,我们不难看出,所谓的通过修改让本有问题的软件勉强运行,本身就与Vista的系统安全与稳定初衷相矛盾。虽换来了应用程序的执行,可付出的代价却是牺牲系统的安全性与稳定性,无异于饮鸩止渴。比如:权限提升后,特别是以Administrator身份运行时,如果有恶意攻击发生,恶意程序会借用这一权限对系统进行肆无忌惮的破坏,如入无人之境。
再比如:相信大家对QQ2006的兼容性记忆犹新,主要表现是输入用户登录密码时蓝屏。解决这一问题的方法是删除QQ2006安装目录中的两个文件,但用户QQ密码的安全性会大大降低。
三、彻底解决兼容性问题
以上提出的应对兼容性问题的措施只能是缓兵之计,同时还得承担风险。为此,要根本解决兼容性问题,得从矛盾的对立两方面下功夫。一方面:微软更大范围地与ISV合作,进行更大规模的测试,以收集更多的信息,对Vista进行修改或为ISV提供更全面的指导。另一方面,ISV应积极配合微软,摒弃自己应用软件中的不合理因素,特别是为达某种目的而采取的不正当手段,共同创建系统软件与应用软件的和谐环境。
注:ISV即“Independent Software Vendor”,独立软件供应商,是指专门开发、营销和支持软件应用的公司。其原意是“除了微软以外的软件厂商”。
编后:关键在于软件厂商的努力
要让微软修改Vista,好像不现实。一方面,它不可能以牺牲系统安全性、稳定性为代价来兼容其他软件,兼容应以不失安全稳定为底线,从这个角度看,暂时的不兼容也许能为Vista带来更加辉煌的明天——真正为用户提供一套非常安全稳定的操作系统。另一方面,面对如此多的大大小小软件,修改Vista一定会众口难调,最终走入顾此失彼的尴尬境地。为此,兼容性问题的根本解决之道还是在于ISV的努力。