来源:中国电脑救援中心作者:中国电脑救援中心 发布时间:2008-04-07 08:17:14


追求稳定是任何操作系统的目标,Windows Me自然也不例外。可惜Windows本身却是个系统文档的配置和安排显得有些混乱的操作系统:系统文档和一般应用软件的文档没有适当的区分(不像Unix那样,把用户区和系统区分得很清楚),而且大部分的应用软件必须搭配某些系统文档才能正常执行,因此某些应用软件的安装程式就不得不将搭配的系统文档一起安装到用户的电脑中,而系统不稳定的问题就产生了……
举个例子来说。假如您现在的Windows使用了一个版本号为5.1的系统文档System.dll,他放在Windows系统目录下的System目录中。您现在安装一个名为Winkiller的应用软件(呵呵,举例而已),但这个软件却要使用版本为3.0的System.dll系统文档,Winkiller的安装程式会把旧版本的System.dll拷贝到Windows系统目录下的System目录中,更有甚者安装程式根本就不理会新旧版本的系统文档而直接覆盖(很多游戏和不负责的应用软件都会这样做)。
系统文档被覆盖会有什么后果呢?很难说,假如够幸运,也许什么问题也不会出现;但大多数情况是在一些特定的时候让您的系统不稳定或干脆死机。这种情况用微软工程师的术语来说就是DLL
Hell??Windows系统是以Dynamic Link Library(动态链接库)的方式让系统和应用软件共用任何的系统文档的,DLL
Hell的意思就是因为系统文档被覆盖而让整个系统像是掉进了地狱相同,万劫不复。
OK,在您诅咒完微软之后,我们还是来看看微软在其新版的Windows Me中对这一情况的改进(或是补救)措施??System File
Protection。
严格说来,System File Protection(系统文档保护,简称SFP)应该是System File Checker的加强版本。微软曾在Windows
98 SE版中加入了自动检查系统文档状况的功能??System File Checker,但实际上,System File Checker并没有太大作用??假如真的有效,大概现在也就不会出现SFP了^_^。
SFP自Windows Me启动之后就实时检测系统文档,只要SFP发现系统文档将被覆盖或删除,他会“假装”准许用户或应用程式覆盖或删除系统文档,但实际上SFP会立即备份将被覆盖或删除的系统文档。只要用户或应用程式完成覆盖或删除的过程,SFP就会马上还原先前所备份下来的系统文档。
要达到上述的保护效果,SFP保存了两份清单。一份记录了任何被SFP保护的系统文档的名称,这份清单存放在C:\WINDOWS\SYSTEM\sfp\sfpdb.sfp中(假设Windows
Me的安装目录为C:\WINDOWS)。Sfpdb.sfp是个可读的文本文档,您能够使用“记事本”等工具打开;在sfpdb.sfp中,一整行记录就是一笔被保护的系统文档资料(见图1)。
但是,只有sfpdb.sfp还是不够的??假如只有文本文档格式的sfpdb.sfp,任何人都能够自行篡改sfpdb.sfp的内容,如此的保护就等于没有保护了。因此微软又以“安全目录”的文档(后缀名为.cat)来存放这些被保护的数字签名,现在这些被保护的系统文档的数字签名都存放在C:\WINDOWS\SYSTEM\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\SYSTEM.CAT中。您能够用鼠标双击SYSTEM.CAT文档,系统会弹出如图2的“安全目录”窗口,假如按下窗口右下角的“查看签名”按钮,就会出现如图3的“数字签名周详信息”窗口。
我们能够自行测试SFP的保护功能:首先浏览sfpdb.sfp的内容,找一个被SFP保护的系统文档,然后到存放该文档的目录去直接删除或以其他文档覆盖。假如您还是对SFP功能有些不放心,那么能够将受保护的系统文档移到其他地方。
来看看一个试验的例子吧。我将C:\WINDOWS\SYSTEM\ MSRATING.DLL删除,结果在短短几秒之内,SFP便自动将他恢复了。整个过程中,您除了能够在“资源管理器”中直接观察测试结果外,也能够通过SFP的系统记录文档C:\WINDOWS\SYSTEM\sfp\sfplog.txt来查看SFP的运作过程(见图4)。
SFP是否真的能够万无一失地保护用户不会掉进DLL Hell?这个问题其实应该从两个方面来说:首先,光靠SFP是无法完全解决DLL
Hell的,SFP只是被动地防止系统文档被删除或覆盖(如同Windows 2000用Wondows File Protection来提供类似的功能);程式研发人员只有注意运用系统文档时所带来的问题,进而在研发软件时避免覆盖系统文档的操作,才能取得解决整个DLL
Hell问题的双重保障。另外,在一些情况下,某些受保护的系统文档是SFP无法还原的,所以大家还是不能高枕无忧……
|
还没有关于此文章的相关评论!