系统注册表有什么意义?

Tom*_*len 11 registry

很抱歉这里真的很无知,我只想学习,为什么程序需要注册表?它是什么,为什么软件不能只将变量写入自己的本地文件?它做了我不知道的事吗?

Jay*_*Jay 21

恕我直言,Windows注册表是一个几乎与宠物摇滚一样实用和有用的发明.

  1. 通过将应用程序配置数据与操作系统配置数据放在同一位置,它使得更新应用程序的任何尝试都有可能导致操作系统搞砸.这就像制作一个控制电视和心脏起搏器的遥控器一样.当然,你可以争辩说将所有控件放在一个地方很方便,但它也会造成任何改变频道的尝试都会扼杀你的危险.

  2. 旧的INI文件很容易被计算机和人类阅读和更新.对于那些无法理解如何操作简单文本文件的真正懒惰的程序员来说,有一些库函数可以简单轻松地完成它.注册表很难用程序更新,并且任何人都难以阅读,尤其是非程序员.

  3. 在每个程序都有一个目录并将其所有数据存储在该目录中的糟糕时期,您可以通过删除目录来删除程序,并且您可以通过简单地复制此目录来自信地备份程序.使用注册表,您需要为每个程序提供一个特殊的卸载程序,并且通常会在注册表中无限期地使用过时或垃圾条目.

是否有人可以直截了当地说注册表易于管理,或者它是否提高了系统的可靠性?

我认为微软应该做的是创建一个中央文件,记录安装每个应用程序的目录以及它知道如何打开的文件的扩展名.这应该是操作系统需要知道的关于应用程序的唯一信息.其他所有内容都应存储在应用程序自己的目录中.

更新:回复米克

我不同意参考文章中的大多数观点.例如,"您不能将二进制数据存储在INI文件中"和"INI文件只有两级结构".如果系统INI文件仅存储操作系统需要知道的有关应用程序的信息,那么每个文件只有几个文本字符串,则不需要二进制数据或分层结构.应用程序INI应该只保存配置和首选项信息,因此,再次,不需要二进制数据和层次结构.INI格式的优点是它是一个简单,可读的文本文件.这使得解析,易于更新和易于管理变得容易.我的原始帖子的重点是,通过添加具有各种复杂功能的注册表,Microsoft取代了一些易于管理的东西,这些东西很难管理.

关于安全性和并发性的问题有一些有效性.但我们当然可以在现有框架内解决这些问题.

当然,INI文件不能成为一个好的数据库.但那又怎么样?这不是它的用途.这就像抱怨说一双鞋不能帮助你游泳或让你飞行或煮早餐,因此我们应该用带有无线电控制和内置微波炉的喷射式脚蹼替换所有鞋子.结果肯定是一个过于复杂,尴尬的怪物.走进去会很舒服,也许不适合游泳或做早餐.而不是对一件事情非常好 - 走路 - 它几乎不可用于十几件事.顺便说一下,我们已经有了完美的工具来完成这些工作.哦,有点像注册表.

  • @Mick:但是有一个杀死信使的伟大传统. (3认同)
  • 我和这个人在一起. (2认同)

msw*_*msw 10

Windows注册表旨在阻止.ini程序正在编写的本地文件的扩散.

有人认为,特定的实施远比它预定的治愈问题更糟糕.我不得不在生活中的一两个注册表上做精确手术,我碰巧同意了.

  • 是的,他们试图修剪脚趾甲,最终切断了整个该死的腿:-) (5认同)

小智 7

注册目的

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

为何注册INI文件?

.INI文件将每个程序的用户设置存储在单独的文件中.相比之下,Windows注册表将所有应用程序设置存储在一个中央存储库中,并以标准化形式存储.与INI文件相比,这提供了几个优势.[2] 由于访问注册表不需要解析,因此可以比INI文件更快地读取或写入.同样,强类型数据可以存储在注册表中,而不是存储在INI文件中的文本信息.由于基于用户的注册表设置是从用户特定的路径而不是从只读系统位置加载的,因此注册表允许多个用户共享同一台计算机,并且还允许程序为最少权限的用户工作.

注册表具有提高系统完整性的功能,因为注册表构建为数据库并提供类似数据库的功能,如原子更新.如果两个进程同时尝试更新相同的注册表值,则一个进程的更改将先于另一个进程,并且将保持数据的整体一致性.如果对INI文件进行了更改,则此类竞争条件可能会导致数据不一致,并且与尝试的更新不匹配.Windows Vista和Windows 7为注册表提供事务更新,通过传统的commit-abort语义扩展跨多个键和/或值更改的原子性保证.(但请注意,NTFS也为文件系统提供了这样的支持,因此从理论上讲,同样的保证可以

来自维基百科 - Windows注册表


Wil*_*ung 6

对程序首选项和设置进行集中,无处不在的管理.


pax*_*blo 5

实际上,这就是在Windows 3.1中完成的方式,许多应用程序使用自己的INI文件.Windows 95(来自内存)引入了集中式存储库的概念(虽然我认为之前有一个有限的目的注册表),从那以后人们一直在购买注册表清理程序.

人们常常抱怨说有太多的INI文件要管理,速度是个问题,因为它们是需要解析的文本文件.例如,我更喜欢应用程序在自己的目录中拥有自己的东西,以便在您想要删除它们时更容易清理.