Ars*_*nko 7 windows windows-registry
Windows 在很大程度上依赖于注册表来存储小块信息,例如机器的 IP 地址。Unix 以及 Linux 和 OS-X 将所有内容都存储在普通文件中。
说到注册表,我发现它有几个问题:
获取信息并不容易。例如,如果机器无法启动,而我尝试通过将磁盘安装在不同的机器上以从不同的操作系统访问它来解决问题(它是另一个 Windows 还是 Linux),我可以轻松访问所有文件(除了权限和加密),但是对于注册表,虽然理论上可以读取(并可能更改)它,但它需要额外的应用程序。
命令行访问(在机器不再启动的情况下)是不可能的(除非也有应用程序,但我很确定安装和使用这些应用程序比简单地访问磁盘上的文件要困难得多)。
信息可以位于文件或注册表中,因此必须兼顾两个位置。
处理文件时使用的常用工具(例如findstrWindows 的小兄弟grep)在处理注册表项时不存在。
我敢肯定,如果 Microsoft 最初实施注册表,那是有充分理由的,并且为 Windows 提供了(甚至是轻微的)与当时其他操作系统相比的竞争优势。
我考虑了性能和空间限制,这在 Windows 诞生时尤为重要,但我看不出如何在注册表中存储某些内容来提高性能或减少使用的空间(将 DWORD 作为实际 DWORD 存储在注册表中,而不是将其字符串表示存储在文件将节省空间,但即使在 1985 年,这也有那么重要吗?
在安全方面,看起来也没有区别。我不确定 1985 年的情况是否如此,但今天的基于文件的权限看起来(如果不是更多的话)与为注册表项实现的权限一样强大。
组织也类似:基于树的结构,没有索引/搜索功能(而更高版本的 Windows 实现了文件索引)。
那么与将所有内容存储在文件中相比,注册表的好处是什么或最初是什么?
在微软开始使用注册表之前,他们有INI 文件(文本文件)。他们发现仅使用 INI 文件很难开发一个好的平台,因为:
这是一个文本文件,因此权限是在文件级别设置的,而不是在密钥级别设置的。任何有权访问该文件的人都可以访问其上的所有参数。
如果两个线程试图同时更新一个 INI 文件,它们可能会意外删除另一个线程所做的更改。
这些是影响 Microsot 寻找新解决方案的要点,它们随注册表一起提供。注册表是一个数据库,所以它解决了以前的问题,但创建了新的:
归功于重要来源:http : //blogs.msdn.com/b/oldnewthing/archive/2007/11/26/6523907.aspx
| 归档时间: |
|
| 查看次数: |
2294 次 |
| 最近记录: |