Windows系统注册表知识完全揭密

windows注册表是帮助windows控制硬件、软件、用户环境和windows界面的一套数据文件,注册表包含在windows目录下两个文件system.dat和user.dat里,还有它们的备份system.da0和user.da0。通过windows目录下的regedit.exe程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前),这些功能是靠win.ini,system.ini和其他和应用程序有关联的.ini文件来实现的.

在windows操作系统家族中,system.ini和win.ini这两个文件包含了操作系统所有的控制功能和应用程序的信息,system.ini管理计算机硬件而win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这些记录会在程序代码中被引用。因为受win.ini和system.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个office excel.ini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路径和文件名即可。

早在Dos和Win3.x的时代,大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.ini和win.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参数项。

这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.ini和win.ini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。这样下来多个.ini文件影响了系统正常的存取级别设置。如果一个应用程序的.ini文件和WIN.INI文件设置起冲突,究竟是谁的优先级更高呢?

注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位操作系统和应用程序包括了所有功能下的东东。注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来实现的。

由此可见,注册表(Registry)是windows9x/Me/NT/2000操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”;是一个巨大的树状分层的数据库。它记录了用户安装在机器上的软件和每个程序的相互关联关系;它包含了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据等。

一、注册表都做些什么?

注册表是为windows NT和windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在windows NT下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win9x下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win9x 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。

在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。

在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持的设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。

当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。

注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。

然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。

有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。

二、注册表的结构划分及相互关系

windows的注册表有六大根键,相当于一个硬盘被分成了六个分区。

(0)

相关推荐

  • 如何解决系统注册表文件丢失或损坏无法加载?

    有时电脑开机过程中,按电源键强制关机,或者突然停电等导致电脑异常关机,会导致windows系统注册表文件丢失或损坏.当注册表文件出现问题后,开机过程会提示系统未能启动,并提供两种解决办法,一是用修复光 ...

  • 认识Windows XP注册表及注册表实战案例

    认识Windows XP注册表及注册表实战案例

  • 利用WinPE修改原系统注册表来修复系统

    我们的电脑总是会遇到各种各样的问题,最好用的方式就是电脑重装,重装系统的方式有很多,光盘安装、硬盘安装、U盘安装等。但是碰到电脑系统瘫痪无法启动,甚至连安全模式也进不了的时候,你的光盘、硬盘就没有用处 ...

  • 利用WinPE恢复系统注册表的办法

    我们的电脑总是会遇到各种各样的问题,最好用的方式就是电脑重装,重装系统的方式有很多,光盘安装、硬盘安装、U盘安装等。但是碰到电脑系统瘫痪无法启动,甚至连安全模式也进不了的时候,你的光盘、硬盘就没有用处 ...

  • WIN7系统注册表编辑器无法删除项目怎么回事

    在win7系统中,有时我们需要通过删除注册表中的一些项来清除无效数据,不过有的用户在删除一些注册表信息的时候发现并没有那么容易,在删除的时候马上弹出“删除项时出错”的信息,出现这样的提示通常是由于权限 ...

  • Win7系统注册表怎么解锁 Win7解锁注册表的方法

    小编这里要跟大家分享的是关于Win7系统注册表怎么解锁的方法,大家知道,注册表中包含了很多信息,我们可以通过修改注册表来进行设置,但是注册表修改不当也会导致严重的后果,因此很多人会把注册表锁定或是禁用 ...

  • WinXP系统注册表被禁用的6种解决方法

    今天,我们将要跟大家分享的是,WinXP系统注册表被禁用的6种解决方法.那么,可能会有电脑用户会问:WinXP系统的注册表被禁用了会造成什么后果,严重吗?我们知道注册表是Windows系统里的重要区域 ...

  • XP系统注册表的8个有趣功能

    注册表是xp系统中一个非常重要的数据库,当然更准备的说,是所有windows系统的重要数据库.不过,很多电脑用户都对注册表赶紧很陌生,所以,也不会轻易去动注册表这个选项.今天,小编就给大家分享一些xp ...

  • XP系统注册表如何还原到上次成功启动时

    虽然目前新电脑配置都比较高端,所以安装的多是win7系统,由于大很多用户都还是使用着老电脑,还有一些低端配置电脑,都还使用着Windows XP系统,许多电脑用户可能对XP系统的注册表不怎么熟悉,注册 ...