Registry 什么';系统注册表的作用是什么?

Registry 什么';系统注册表的作用是什么?,registry,Registry,对不起,我真的很无知,我只是想了解一下,为什么程序需要注册表?为什么软件不能将变量写入自己的本地文件?它做了我不知道的事情吗?集中、无处不在的程序首选项和设置管理。这只是一个愚蠢的惯例。在unix或mac文件系统中,软件完全按照您的建议执行,将其设置写入普通文件中,通常组织在用户主目录中的隐藏文件夹中。Windows也有类似的功能,每个用户的主文件夹中都有一个名为“应用程序数据”的文件夹,您的程序可以使用该文件夹进行存储,而不必使用Windows API和注册表。实际上,Windows 3.1就

对不起,我真的很无知,我只是想了解一下,为什么程序需要注册表?为什么软件不能将变量写入自己的本地文件?它做了我不知道的事情吗?

集中、无处不在的程序首选项和设置管理。

这只是一个愚蠢的惯例。在unix或mac文件系统中,软件完全按照您的建议执行,将其设置写入普通文件中,通常组织在用户主目录中的隐藏文件夹中。Windows也有类似的功能,每个用户的主文件夹中都有一个名为“应用程序数据”的文件夹,您的程序可以使用该文件夹进行存储,而不必使用Windows API和注册表。

实际上,Windows 3.1就是这样做的,许多应用程序都使用自己的INI文件。Windows95(来自内存)引入了集中存储库的概念(尽管我认为在此之前有一个用途有限的注册表),从那以后人们一直在购买注册表清理程序


当时人们常常抱怨INI文件太多,无法管理,速度是个问题,因为它们是需要解析的文本文件。一、 首先,希望应用程序在自己的目录中有自己的内容,以便在您想要删除它们时更容易清理。

注册表用途

Windows注册表是一个层次结构 存储配置的数据库 Microsoft上的设置和选项 Windows操作系统。它包含 低电平操作系统的设置 系统组件以及 平台上运行的应用程序: 内核、设备驱动程序、服务、, SAM、用户界面和第三方 所有应用程序都使用 登记处。登记处还提供 访问计数器进行分析的方法 系统性能

为什么注册表覆盖INI文件?

.INI文件存储在每个程序的用户 设置在单独的文件中。通过 相比之下,Windows注册表存储 一次完成所有应用程序设置 中央存储库和 标准化形式。这提供了几个方面 优于INI文件。[2]自 访问注册表并不意味着 需要解析时,可以从 或以比INI更快的速度写入 文件此外,强类型数据也可以 存储在注册表中,而不是 到INI中存储的文本信息 文件夹。因为基于用户的注册表 设置是从 用户特定路径,而不是从 只读系统位置 注册表允许多个用户 共享同一台机器,并且 允许程序为某个目标工作 最小权限用户。备份和 恢复也简化为 可以通过网络访问注册表 远程服务器的网络连接 管理/支持,包括来自 脚本,使用标准的 API,只要远程注册表 服务正在运行,防火墙规则 允许这样

注册表具有改进的功能 系统完整性,如注册表所示 构建为数据库并提供 类似数据库的功能,如原子 更新。如果两个进程试图 同时更新相同的注册表值 同时,一个过程的变化将 先于他人和整体 数据的一致性将得到保证 保持。更改的位置 INI文件,这样的竞争条件可以 导致数据不一致 与尝试的更新都不匹配。 Windows Vista和Windows 7提供 对注册表的事务更新, 扩展原子性保证 跨多个键和/或值 更改,使用传统的提交中止 语义学。(但是请注意,NTFS 为文件提供此类支持 系统也是如此,所以保证是一样的 从理论上讲,可以通过 传统配置文件。)


引用维基百科的逐字记录:

当Windows 3.1首次引入时,Windows注册表的主要用途是存储基于COM的组件的配置信息。随着Windows 95和Windows NT的引入,它的使用范围得到了扩展,以整理大量以前用于存储Windows程序配置设置的每个程序INI文件

Windows注册表包含程序正在编写的本地
.ini
文件

一直以来,具体的实施比它着手解决的问题更重要。在我的一生中,我不得不在一两个登记处做精密手术,我碰巧同意了这一点

为什么软件不能将变量写入自己的本地文件

可以,但这可能会给软件开发人员带来不便,因为:

  • 开发人员必须编写自己的解析器
  • 开发人员必须编写自己的序列化逻辑
  • 想要手动编辑选项的用户必须学习给定配置文件的语法

  • 注册表只不过是一个简单的(从程序员的角度来看)数据库。

    IMHO,Windows注册表是一项几乎与宠物石一样实用和有用的发明

  • 通过将应用程序配置数据与操作系统配置数据放在同一位置,任何更新应用程序的尝试都会带来操作系统出错的危险。这就像制作一个遥控器,控制你的电视和起搏器。当然,您可能会争辩说,将所有控件放在一个位置是很方便的,但这也会造成任何试图更改频道的行为都会导致您死亡的危险

  • 旧的INI文件很容易被计算机和人读取和更新。对于那些真正懒惰的程序员来说,他们不知道如何操作一个简单的文本文件,有一些库函数可以简单而容易地操作它。注册表很难用程序更新,而且对任何人来说都非常难以阅读,尤其是