![Windows 注册表和 UNIX/Linux 方法之间的差异](https://linux22.com/image/43572/Windows%20%E6%B3%A8%E5%86%8C%E8%A1%A8%E5%92%8C%20UNIX%2FLinux%20%E6%96%B9%E6%B3%95%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B7%AE%E5%BC%82%20.png)
Windows 注册表与 UNIX/Linux 中使用的方法之间的主要区别是什么,每种方法的优点和缺点是什么?
答案1
它当然不能直接比较,但我认为 /etc 目录是 Windows 注册表的对应目录。
至少从我的角度来看,/etc 目录的一个主要优点是:您可以使用您喜欢的文本编辑器打开每个文件并阅读,希望能够理解并修改或修复它。
Windows 注册表以某种特定的二进制格式存储,您可以使用注册表编辑器读取/写入它,它不仅会向您显示文件中的内容,还会为您解释它。此外,所有内容都在一个大文件中。
答案2
UNIX 中没有真正的同源词,但正如 wollud1969 所说,/etc
很接近。但这只是故事的一部分。您还需要考虑以下内容/var
(有关已安装的软件、正在运行的服务等的信息)、/usr/local/etc
(至少在 FreeBSD 和某些 Linux 发行版上)已安装的第三方应用程序的配置信息,当然还有每个用户的点文件,它们自定义软件如何为它们工作(大致相当于HK_CURRENT_USER
注册表中的配置单元)。然后是/dev
设备接口,/proc
用于运行进程数据,以及内核本身(通过sysctl
虚拟kernfs
文件系统等)。根据您的特定平台,可能还有其他地方可以查看。
从我过去 12 年作为 UNIX 用户的角度来看,UNIX 方法的主要优点是应用程序配置文件,无论它们位于何处,通常只是普通的旧文本文件,因此可以由普通老人阅读和编辑。 (可能除了 sendmail 配置文件,但这是一场完全不同的宗教战争......)。许多应用程序(浏览器、桌面应用程序等)都会为您创建配置文件,但它们是文本文件,如果随后手动编辑这些文件,只要编辑不破坏其语法,应用程序通常不会停止工作。但缺点是没有通用的配置语言,因此您需要学习您管理的每个应用程序的语法。但实际上,这最多只是一个小烦恼。
Windows 注册表的开发(至少部分是为了解决 Microsoft 认为有问题的类似情况),其中应用程序 ini 文件没有集中管理,对其中的值没有严格控制,也没有标准位置软件来放置它们。注册表解决了其中一些问题(它是集中管理的,可以存储特定的数据类型),但它的缺点是它的二进制格式,因此即使是经验丰富的Windows管理员也需要使用GUI工具来查看它,如果您断电,它很容易被损坏,并且当您决定卸载他们的 kewl 共享软件应用程序时,并非所有软件作者都足够认真地自行清理。而且,与 Windows 中的几乎所有其他文件一样,注册表的各个组件完全有可能在磁盘上变得碎片化,从而导致读取和更新操作极其缓慢。软件不需要使用注册表,甚至 Microsoft 自己的 .NET 平台也使用 XML 文件。
维基百科页面关于注册表内容非常丰富。
答案3
为什么会受到如此多的批评呢?对我来说,这只是为了一点:透明度。我认为注册表没有任何内容。客观地:
- 调整时很容易出错
- 可能会变得支离破碎
- 卸载软件时垃圾条目通常不会被删除
- 键类型太多(DWORD、QWORD、字符串、二进制、独角兽等)