埃德蒙顿华人社区-Edmonton China

 找回密码
 注册
查看: 1570|回复: 0

注册表作用和结构

[复制链接]
鲜花(0) 鸡蛋(0)
发表于 2008-9-9 19:58 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。 + M/ x/ h$ M5 I$ w. Y6 _' `: [
在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。 3 w. \8 b: w% ~3 x
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
1 q+ w! t. y1 q  S1 f2 S当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。 4 d8 u0 v4 ^  |% M9 z1 W! A
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
& |7 O- ^6 i$ _: Z/ \& i& u然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。 / l; K9 z- D: Y
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。 8 [  e8 {, p, x( @, b5 `
注册表控制用户模式的例子有: / E( r0 u9 z& ?
控制面板功能;
' L. M0 _4 y+ P2 X' x( F  P6 J桌面外观和图标; 3 w* Q1 [  P$ [9 s' v& Y
网络参数; ! m" |% \' X. w2 n: E. t
浏览器功能性和特征; 6 ]/ C5 P* D1 ]
那些功能中的某些是和用户无关的,有些是针对用户的。 2 E7 ]. A- Q4 }  r
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。 5 q5 F* x' r' E7 l* X
这里是在注册表中基与计算机控制条目的一些例子:
# v; m) Z/ v+ e0 C8 u! m7 G, j存取控制; ) ^( B! v: i5 e1 E* N
登陆确认; - L0 q& U2 f( o3 E
文件和打印机共享;
$ x. H. O0 X9 _) I( E' b0 P网卡设置和协议;
, {( e' J6 k" _5 f  g系统性能和虚拟内存设置;
4 P* I! j, N3 ?* ]' W没有了注册表,Win95和Winnt 就不太可能存在。它们实在太复杂了,以致于用过去的.ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比.ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。 0 T! R4 R4 ~" d( ], N! _; P
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。
2 ~6 ^$ G( S) B8 c/ [% z
: e2 R" F2 ^: K, q) I1 V" z
0 m0 L+ a5 _+ B1 `& s$ ?注册表的结构
# {- F7 B# L* \7 p* ]" n注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。
9 P8 J5 ?" v; q  A; K# D计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中: , z4 X2 \% w" j3 K. N5 R
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。 1 ^) n+ A' \$ V; i2 P& H
Win95中所有系统注册信息保存在windows目录下的SYSTEM.DAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
! D/ C8 m& z2 C( XWin95用户的注册数据一般被保存在windows目录下的user.dat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USER.DAT下它自己的user.dat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USER.DAT信息)将被装入,以用来保持你自己的桌面和图标。 + S% b1 {2 [  j# l* g
- h; u/ y. u# d6 f- L
控制键 9 O  F2 F. r$ a' b) y* c
在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键 / Q, X3 `. }8 I" `: L
HKEY_LOCAL_MACHINE
* J  ?+ r% Y# F4 @% S  z# eHKEY_CLASSES_ROOT
8 Y1 ?: n4 L8 oHKEY_CURRENT_CONFIG * g) s, A" w! P% a# W# g% Y# X
HKEY_DYN_DATA 9 y! h6 R+ B7 i  ?$ C( k
HKEY_USERS
2 l+ u9 e& v; W+ CHKEY_CURRENT_USER
6 l6 k8 E6 ~5 M# V) j8 m9 L# B+ K! z# J, E7 C  _4 [$ r6 K
Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。 7 @! p, v  R6 }
通过控制键可以比较容易编辑注册表。虽然它们显示和编辑好象独立的键,其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。 " [% }; [: r# [
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。 1 p! d0 D0 t' U& Y/ Q5 n
HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE\SOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。 0 L4 |; c( Z9 B1 O( Q' \
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。
; n- W! A9 _2 i% P" r6 a" j
2 Q, p7 O1 Z  G2 B, T5 M键和子键 % x* N& ]# h/ A* S+ `) X
数据被分割成多层次的键和子键,建立分层次(就象Exploer一样)结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。每个键在它的文件夹图标上都有一个加号(+)标志子键说明在它下面还有更多内容的东西。当点开它的时候,文件夹的加号标志被替换成一个减号(-)标志,然后显示出下一级的子键。   ^& ?% M) I% x( [6 H! Z+ n$ C
所有软件,硬件,windows工作的设置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享信息也包括在这个键中。用户权限,安全策略,共享信息可以通过Windows NT域用户管理器,Explorer和Win95中控制面板来设置。 0 d4 G8 K  a, Y! N( ]  t6 h4 g
HKEY_CLASSES_ROOT
4 ]0 p& {, U2 a6 p/ C" d8 @HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息: ! ]. A7 ~/ J; L1 J, Z. T
在文件和应用程序之间所有的扩展名和关联;
5 |2 }, X3 X& o' N6 r$ k所有的驱动程序名称; & H9 ]( K$ l" I* ?) S6 A
类的ID数字(所要存取项的名字用数字来代替); 3 i8 M8 b9 _* ~' W5 ?# ~! e6 @
DDE和OLE的信息;
: }% U0 O6 ?. S, c, H, s0 `用于应用程序和文件的图标;
. ~  }4 J9 K0 FHKEY_CURRENT_CONFIG.
( i" t7 T" V& v9 y2 a0 X  MHKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中当前硬件配置信息的映射。如果系统只有一个配置文件,也就是原始配置,数据将一直在同样的地方。在控制面板|系统|硬件配置文件|创建一个额外的配置使额外配置信息放入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文件时,当每次计算机启动时将给出一个提示让你选择一个配置文件。在Winnt中,在启动时你可以按空格键来选择上次正常启动时硬件配置文件。根据硬件配置文件选择的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。 $ M* j8 U% x4 ]! a! S7 W# X- Q. O
HKEY_DYN_DATA 3 W1 J: d6 ~- @
HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上它并不被写入硬盘驱动器中。Win95的一个优点是,在系统启动时HKEY_DYN_DATA这个控制键储存收集到的即插即用信息并配置它们。它保存在内存中,Win95用它来控制硬件。因为是在内存中,所以它不从硬盘中读取,每次当你启动计算机时,配置都有可能会不一样。在启动时Win95必须计算超过1600种可能的配置。所以,如果系统改变既定的设置而没有报告给Win95那么潜在的问题就可能发生。系统大多数时间工作良好,但是并非一直如此。
0 f) c; h' j9 C% h5 q2 z7 U5 o5 b+ BHKEY_USERS 0 {4 u: X8 h/ g1 H) c
HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。虽然它包含了所有独立用户的设置,但在用户未登陆网络时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。 $ V1 @% a3 B1 J5 T. k
HKEY_CURRENT_USER
7 ~8 v7 g; Z2 }3 r5 ^$ i# _用来保存当前用户和缺省用户的信息,HKEY_CURRENT_USER仅映射当前登陆用户的信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|小黑屋|手机版|Archiver|埃德蒙顿中文网

GMT-7, 2025-7-21 03:07 , Processed in 0.132928 second(s), 10 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表