上面是打开注册表编辑器后看到的第一个界面。
classes_Root我们知道Root一般用来指系统的根目录,顶级权限,系统初始点等等。
其他的:current_User、Local_Machine、Users、Current_Config这些从名字上,大概可以猜测理解是什么东西了。
下面再来看下注册表的概念:
将系统配置信息集中存储在调用注册表的分层数据库中。可以使用注册表编辑器,添加并编辑注册表项和注册表值,从备份中还原注册表或将注册表还原为默认值,以及为引用或备份导入或导出项。
还可以打印注册表,以及控制具有编辑注册表权限的帐户。
有关注册表的详细信息(其中包括注册表概念以及注册表安全性),请转至 Windows Server TechCenter (http://go.microsoft.com/fwlink/?LinkID=53495)。
//------------------------------------------------------------------------------------------
网上有网友提出一个现象,用程序动态的修改注册表,然后cmd中运行程序却不能正确执行,但是先修改环境变量,然后就会发现注册表中是有数据的。这是怎么回事呢?
再联系上文,注册表编辑器里面的一句话:“将系统配置信息集中存储在调用注册表的分层数据库中。”这句话是有问题的,一点都不通顺,读起来让人
疑惑到第注册表和数据库什么关系,我认为这里是翻译的问题,但是不好纠正,还需要再猜测研究。
但是至少我们知道,注册表和一个数据库有点关系,同时这是对系统配置信息的管理。我们主要关注,注册表编辑器是对系统配置信息的集中管理,那么上面我们对环境变量的理解就不会错了。确实是系统的配置信息。
以上我们已经大概感觉出环境变量是个什么东西,但是注册表还很模糊,继续看:
注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
以上内容整理自网络,还有个人的理解和心得。
=======================
201810151903更新
通过注册表,环境变量存储一些信息,这是具体到windows操作系统配置一些信息的方案。
linux系统有自己的实现方式,linux系统配置直接叫系统配置文件。
=====================
20190123更新
在windows系统中,点击开始,运行,输入:regedit,会打开注册表编辑器。点击帮助会看到以下简介:
将系统配置信息集中存储在调用注册表的分层数据库中。可以使用注册表编辑器添加并编辑注册表项和注册表值,从备份中还原注册表或将注册表还原为默认值,以及为引用或备份导入或导出项。还可以打印注册表,以及控制具有编辑注册表权限的帐户。
地址:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc782053(v=ws.10)
Microsoft®WindowsServer 2003家族注册表是一个数据库,其中包含Windows Server 2003家族操作系统的系统配置信息。
可搜索:注册表概念 Registry concepts
地址:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc780070%28v%3dws.10%29
Registry overview 注册表概述
在Microsoft®Windows Server 2003系列中,系统配置信息集中存储在称为注册表的分层数据库中。注册表将替换Windows中用于MS-DOS®和Microsoft LAN Manager的许多.ini、.sys和.com配置文件。
有关管理注册表的详细信息,请参阅Microsoft Windows资源工具包网站上的“Windows Server 2003家庭注册表参考”。有关Windows Server 2003支持的信息,请参阅支持资源。
Registry structure 注册表结构
注册表以子树及其键、子键和条目的层次结构组织。根据每台计算机上安装的设备、服务和程序,一台计算机的注册表内容可能与另一台计算机的注册表内容有很大差异。
键可以有子键,子键可以有子键。虽然注册表中的大多数信息都存储在磁盘上并且被视为永久性信息,但每次操作系统启动时都会覆盖存储在易失密钥中的某些信息。
Registry subtrees 注册表子树
Windows Server_2003系列操作系统有两个注册表子树:HKEYU localU machine和HKEYU users。但是,为了使注册表中的信息更容易找到,注册表编辑器实用程序显示五个子树,其中三个子树是注册表其他部分的别名。下表列出并描述了这五个子树。
HKEY_LOCAL_MACHINE
包含有关本地计算机系统的信息,包括硬件和操作系统数据,如总线类型,系统内存,设备驱动程序和启动控制数据。
HKEY_CLASSES_ROOT
包含各种OLE技术和文件类关联数据使用的信息。如果相应的键或值存在于hkey_local_machinesoftwareclasses或hkey_current_usersoftwareclasses中,则在hkey_classesu root中存在特定的键或值。如果在这两个地方都存在一个键或值,那么HKEY_CURRENT_USER当前用户版本就是出现在HKEY_CLASSES_ROOT中的版本。
HKEY_CURRENT_USER
包含当前以交互方式登录(而不是远程登录)的用户的用户配置文件,包括环境变量、桌面设置、网络连接、打印机和程序首选项。此子树是hkey_用户子树的别名,并指向当前用户的hkey_用户安全ID。
HKEY_USERS
包含有关活动加载的用户配置文件和默认配置文件的信息。这包括同时出现在hkey_当前用户中的信息。远程访问服务器的用户在服务器上没有此项下的配置文件;他们的配置文件加载到自己计算机的注册表中。
HKEY_CURRENT_CONFIG
包含有关本地计算机系统启动时使用的硬件配置文件的信息。此信息用于配置要加载的设备驱动程序和要使用的显示分辨率等设置。此子树是hkey_local_machine子树的一部分,并指向hkey_local_machinesystemcurrentcontrolsethardware profilescurrent。
每个根密钥名称都以HKEY_开头,以向软件开发人员表明这是程序可以使用的句柄。句柄是用于标识资源的值,以便程序可以访问它。
想阅读更多信息,可以到上文指出的链接地址阅读。由于内容是用自动翻译软件翻译,不通顺不好理解请阅读原文。