针对Windows注册表的主要原因是什么?

时间:2010-04-08 14:12:33

标签: linux registry

如果我想为Linux开发一个类似注册表的系统,我应该避免哪些Windows注册表设计失败? 哪些功能绝对必要?
主要问题是什么(安全性,易于配置......)?

我认为Windows注册表并不是一个坏主意,只是实现没有满足承诺。配置的常见位置(例如apache配置,数据库配置或邮件服务器配置)不是一个坏主意,可能会提高可维护性,尤其是当它具有(受保护的)远程访问选项时。

我曾经研究过基于内核的解决方案,但因为其他人说注册表没用(因为Windows注册表是这样的)而停止了......你觉得怎么样?

4 个答案:

答案 0 :(得分:7)

  

我曾经研究过基于内核的解决方案,但因为其他人说注册表没用(因为Windows注册表是这样的)而停止了......你觉得怎么样?

基于内核的注册表?为什么?为什么?一千次,为什么?也可以要求提供基于内核的音乐明信片或inetd,因为它将它放在那里。如果需要不在内核中,那么它就不应该存在。还有许多其他方法可以实现特权进程,不需要像这样的深度hackery ......

  

如果我想为Linux开发类似注册表的系统,我应该避免哪些Windows注册表设计失败?

  • 确保应用程序可以以原子方式一次更改多个条目。
  • 确保有简单的命令行工具来操作它。
  • 确保系统中没有关键部分需要它,以便始终可以启动到可以解决问题的位置。
  • 确保备份程序正确备份!
  • 不要让大块可执行数据存储在您的注册表中。

答案 1 :(得分:5)

如果您必须拥有一个存储库,至少使用一个合适的数据库,以便您拥有恢复,备份,恢复等工具,并且可以在不使用一组新的自定义API的情况下与其进行交互

答案 2 :(得分:3)

第一个出现在我脑海中的是你需要避免孤立的注册表项。在删除程序时,您还删除了某个目录下的配置文件,但在使用注册表系统后,您需要确保删除程序时,还应删除其在注册表中的配置。

答案 3 :(得分:3)

恕我直言,Windows注册表的主要问题是:

  • 二进制格式。这会使您失去各种非常有用的工具。在二进制格式中,必须特别实现诸如差异,搜索,版本控制等工具,而不是使用能够在文本的公共基板上操作的最佳品种。 Text还提供了简单嵌入式文档/注释(也可以是greppable)的优势,以及通过外部工具轻松编程创建和解析。它也更灵活 - 有时使用完整的图灵完整语言来表达配置比试图将其变成键和子键结构更好。

  • 单片。将应用程序X的所有内容包含在一个地方是一个很大的优势。移动到新计算机并想要保留它的设置?只需复制文件即可。虽然理论上可以使用注册表,但只要一切都在一个键下,实际上它就是一个非首发。设置往往在各个地方传播,通常很难找到 where 。这通常作为注册表的优势而提供,但“一站式内的所有内容”通常都会转移到“将某些> 放置在一个巨大的位置”。

    < / LI>
  • 太宽泛了。很容易将其视为用户设置的地方,但事实上,注册表成为所有的倾销场。其中90%的设计用于用户阅读或修改,但实际上是希望保留信息的程序所使用的各种结构的序列化形式的数据库。这包括整个COM注册系统,安装的应用程序等等。现在这是需要存储的东西,但事实上它与用户可配置的设置和你可能想要读取的内容混合在一起/ em>大大降低了它的价值。