Windows 2000设计缺陷引起的错误及应对策略

时间:2022-04-02 06:07:11

Windows 2000设计缺陷引起的错误及应对策略

摘要:在启动过程的阶段只能使用16MB内存,Windows 2000的这个设计缺陷极大地限制了System配置单元大小。在此基础上,通过分析了Loader error 3错误产生的一个主要原因――System配置单元过大,给出了处理错误的应对策略,并指出卡巴斯基互联网安全套装防火墙/过滤系统的学习模式设计上的BUG是造成System配置单元增长异常的一个主要原因。

关键词:Loader error 3;System配置单元;KIS;学习模式

中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)26-1673-03

The Error Caused by the Windows 2000 Design Flaw and the Strategy for It

WANG Juan

(School of Informatics, Guangdong University of Foreign Studies, Guangzhou 510420, China)

Abstract: Only 16MB memory being used in the boot process is the Windows 2000 design flaw which greatly limits the size of system hive. On the base, this paper makes an analysis of excessive size of system hive which is one of the main reasons leads to Loader error 3, and proposes the strategy to cope with error. This paper also presents the bug of KIS' learning mode which is the one of the main reasons leads to abnormal increase of system hive.

Key words: loader error 3; system hive; KIS; learning mode

依照既定的生命周期,微软于2005年结束对Windows 2000系列操作系统的“主流支持”。然而,由于Windows 2000的易用性令用户深深眷恋,使得它在公司、企业中仍然占据着十分重要的地位。来自Sunbelt的调查数据表明,在2007年,Windows 2000还是以其顽强的生命力占有企业操作系统14.88%的份额。但Windows 2000也有很多不稳定和不安全的地方,最近,不少人都遇到Windows 2000刚启动就出现的一个错误:

Windows could not start because of an error in the software.

please report this problem as:

Loader error 3.

please contact your support person to report this problem

导致上面Loader error 3错误出现,大部分都是因为存在下列情况之一:1)驱动程序不兼容;2)某些16位应用程序无法在Win32模式下运行;3)System配置单元过大。

前面两种情况下Windows无法正常启动,但可进入到安全模式。如果电脑最近没有装过软、硬件,而且安全模式也进入不了,那就主要考虑第3种情况了。

1 Load error 3错误发生的一个主要原因――System配置单元过大

Windows中,System配置单元大小必须在10.3MB之内。为什么有这个限制呢?这得从Windows 2000的启动过程讲起。下面描述了一台运行Windows 2000 Professional计算机的启动过程:

Step 1 加电自检

Step 2 初始启动过程

Step 3 引导装入程序过程

Step 4 操作系统选择(如果这台计算机存在多引导配置)

Step 5 硬件检测

Step 6 硬件配置选择(如果您使用了超过一个的硬件配置文件)

Step 7 内核调用

Step 8 操作系统登录过程

其中在第7个阶段时,系统加载程序NTLDR调用系统内核(Ntolskrnl.exe)和硬件抽象层(hal.dll)进内存,接着调用位于%SystemRoot%\System32\Config的System文件(即System配置单元)。这个文件主要记录了引导系统时需要的系统范围的配置信息和Windows的硬件的安装信息,如装载哪些设备驱动程序和启动哪些服务;这些信息用于初始化计算机的控制设定,是启动系统的关键。

但为什么System配置单元大小必须在10.3MB之内呢?通过查阅大量资料后,我们发现这是由于Windows 2000下面这个设计缺陷引起的:Windows 2000在启动过程的阶段只能使用16MB内存,因此,启动时System配置单元和Microsoft Windows内核加起来必须小于16MB,并且System配置单元仅限于大约10.3MB。

看到这里,我们就明白了:System配置单元超过10.3MB后,Windows不能完全加载所需文件,从而导致Loader error 3错误的出现。解决的办法只能是恢复备份的注册表,或者通过软件压缩注册表。

2 应对策略

2.1 恢复备份的注册表

进入Windows 2000 故障恢复控制台,然后把备份的注册表文件覆盖到%SystemRoot%\System32\config下,退出控制台,重新启动后就可以正常进入Windows 2000了。

2.2 压缩注册表

Veritas的VxScrub utility可以用来删除注册表文件中多余和重复的键值,达到对注册表进行压缩的目的。运行VxScrub utility(如图1),重新启动后,电脑即可正常运行。

3 System配置单元增长过快的一个主要原因――KIS防火墙/过滤系统的学习模式

通过恢复备份的注册表或压缩注册表,电脑就可以正常启动了,但如果不到几天时间又出现前面的错误,就要考虑为什么System配置单元这么快就增长超过10.3MB呢?一般来说,频繁地增加或拔除Plug-and-Play设备会导致System配置单元的增长,但增长过快就得另当别论了。下面分析一个案例,希望能对大家有所帮助。

首先运行regedit,进入注册表,仔细查看HKEY_LOCAL_MACHINE\SYSTEM下面的键,发现HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\klif\Parameters\112\Filters下面的项特别多、值特别长(如图2)。将其导出,发现竟然有十几MB,估计问题就出现在这里。

图2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\klif\Parameters\112\Filters下面的项

其实HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\klif\Parameters\112\Filters记录的就是KIS防火墙在学习模式中自动创建的规则。KIS(Kaspersky Internet Security, 卡巴斯基互联网安全套装,我们分析的版本是KIS 7.0.0.125)的防火墙一共有五个安全级别,从低到高分别为:

1) 全部允许:计算机中所有网络活动都将被允许;

2) 低安全:黑名单模式,只阻止那些明确被规则禁用的活动;

3) 学习模式:防火墙规则在这里被创建;

4) 高安全:白名单模式,只有存在允许规则的且被允许的网络活动才能活动;

5) 禁止所有:计算机中所有网络活动都被阻止。

只有结合实际情况定制的规则才是安全与使用最平衡的设置,因此将防护等级设为学习模式成为KIS推荐使用的模式,也是一般用户常用的模式。在学习模式下,每当有程序试图使用网络资源时,防火墙都将对其进行核对,看是否有规则用于此连接。如果有,防火墙将遵从其指导说明;如果没有,屏幕上会显示一条包含网络连接的相关描述的消息(如图3),您就可以为此连接创建一个规则。学习模式中创建的规则越来越多,从而导致了System配置单元过快的增长。

我们尝试用ICESWORD将klif\Parameters\112\Filters里的所有项(约6535)删除,再用NT Registry Optimizer压缩,然后重启,System文件变为7684KB,确实减少了很多。最后再把KIS防火墙/过滤系统学习模式关闭,一切都恢复正常了,可是防火墙的功能也减弱了。

看来KIS防火墙/过滤系统的学习模式虽然好,但还是要改进:规则不能记录到HKEY_LOCAL_MACHINE\SYSTEM下,不然就浪费了这个功能。

4 结束语

虽然Windows 2000存在上面的设计缺陷,但很少时候能够触动到这个缺陷,而且Windows 2003已经改变了这个设计,改进了系统配置单元内存限制,最大可以达到200MB;也因为如此,越来越多的企业选择了Windows 2003。希望KIS能在新的版本中解决上述问题,以保证它在安全防范领域中的地位。

参考文献:

[1] Russinovich M E, Solomon D A.深入解析Windows操作系统[M].潘爱民,译.北京:电子工业出版社,2007.

[2] 黄浩.注册表大师[M].北京:北京希望电子出版社,2003.

上一篇:基于FIPA的多Agent系统通信研究 下一篇:提高VB上机操作能力的教学研究