为什么Windows需要WinSXS和Volume Snapshot Service?

时间:2013-07-24 10:55:49

标签: windows ntfs winsxs

Windows有一个WinSXS目录,用于存储某些系统文件的旧版本,以防您要回滚Service Pack或类似文件。 (它们存储为硬链接,因此许多文件指向与当前系统文件相同的磁盘区域。)

它还有一个卷快照服务,可以保存整个NTFS卷的旧版本的快照。我的理解是,备份工具之类的东西会使用它来查看整个卷内容的瞬间快照。

我可以看到它们是完全不同的东西,并且用于不同的目的,但它看起来仍然像重复。任何人都可以解释为什么这些功能中的一个或其他功能不足以满足所有需求吗?

1 个答案:

答案 0 :(得分:2)

WinSxS不是旧系统文件的备份。它是Dll Hell问题的解决方案。它允许MS和第三方开发人员安装同一dll的多个版本,而不会与已安装的软件发生冲突,甚至可以同时将{d3}的不同版本的dll加载到同一个二进制文件中,由activation context机制控制。在基本级别,您可以将其视为PATH变量的细粒度控制。已安装的程序集不是备份,它们可以同时使用,也可以并排使用。

在Linux上,如果您要以二进制形式发布存储库应用程序,则可以使用rpath来获得类似的效果。虽然这不那么灵活(并且因此而不那么复杂)。

在引入WinSxS之前,唯一的另一种方法是在每个可执行文件的基础上在注册表中使用App Paths设置。它们的用处有限,受MAX_PATH问题的困扰(就像Win32上的许多东西一样)。

Volume Snapshot是一个备份,它允许您在出现问题时将系统恢复到以前的状态。在正常操作期间无法访问快照。删除所有快照以释放空间不应该破坏你的系统。 :)