这更像是一个操作系统架构问题,而不是直接的编程问题。为什么创建Windows注册表作为完全独立的子系统来存储系统/应用程序设置?在*nix操作系统中,有一个/ etc目录,这是可以理解的,因为文件系统是一种自然的分层存储设置的方式,而Microsoft决定创建一个完全独立的分层子系统,这似乎是一个愚蠢的投资,他们为什么不使用文件系统层次结构呢?
本文讨论INI文件与注册表的区别:https://devblogs.microsoft.com/oldnewthing/20071126-00/?p=24383。
这样,当二进制注册表损坏时,你只需放弃并购买最新版本的Windows进行全新安装。
如Bastien所引用的Old New Thing文章中提到的:
我还要提到许多*nix框架已经重新发明了注册表... 就像GNOME上的gconfd。
这个想法是将所有程序的所有设置都存储在一个单一的位置,而不是让它们分散在您的磁盘上。
我相信他们这样做是为了支持每个登录用户的单独设置。在Unix中,有一个家目录的概念,而在Windows中没有。
首先,在用户会话期间读写注册表更快。
它创建了整个系统应用程序配置控制的单一入口。这本来是一个内嵌网络数据库(例如 Rational 使用的 Raima)或文本数据库(Bernstein 的 cdb)的不错用例。