WinSxS
电脑文件
WinSxS里面的文件是不可删除的。
说明
支持COM和共享DLL的隔离
Windows 系列系统(这里包括XP、Vista、Win7、win8)在“Windows”目录下提供了一个名为“WinSxS”(Windows Side-by-Side)的文件夹。系统使用这个文件夹存储各个版本的Windows组件,减少因为动态链接库(Dynamic Link Libraries,DLL)引起的配置问题(DLL hell)。组件的多个版本都存储在这个文件夹中。Windows XP允许Win32 API组件和应用程序使用与这些程序在测试时所使用的版本完全一致的Microsoft 组件版本,并且不受其它程序或者操作系统升级的影响。Windows 通过XML文件来实现这一功能,这些XML文件保存了有关应用程序配置的元数据,例如COM类、接口和类型库。
作用
Windows XP
Windows XP的一个重要革新就是引入了隔离组件(Isolated Components)和并列共享(side-by-side sharing)功能。作为原来Windows中经常出现的DLL冲突问题的解决方案,Microsoft 强烈建议应用程序使用组件隔离和并列共享技术来解决DLL调用的问题。微软在ComCtl version 6中使用了并列共享处理,证明隔离组件和并列共享是未来Windows的发展方向。
Windows XP使用隔离组件和并列共享较好地解决了这个问题。由于系统中可以有一个DLL或组件的多个版本同时存在,应用程序在运行的时候可以选择使用自己在设计或开发的时候经过严格测试的组件版本。这样可以避免应用程序被迫调用不同版本的DLL或组件而可能导致的不可预知的错误。
在Windows XP中,隔离组件和并列共享主要是通过程序清单(manifest)来实现的。通过程序清单,一个应用程序完整地定义了自己运行时需要调用的DLL或组件的版本。Windows XP根据程序清单,保证系统中一个应用程序的升级或删除不会影响到其它的程序需要使用的DLL或组件。所以我们看到,隔离组件和并列共享可以保证系统的安全和应用程序的安全。
(元数据指程序需要的基本的DLL调用、组件支持、接口定义等),例如COM 类、接口定义和DLL库定义等。清单文件有两类:应用程序清单文件,用来描述应用程序所需要的所有元数据;装配清单文件,用来描述单个组件的安装。
一个应用程序可以在程序清单中明确地指出自己包含的所有程序部件如何安装在系统中。一个应用程序包含很多基本的元素,例如接口定义、帮助文件、不同版本的组件、系统配置信息等。所有的这些元素,可以根据程序清单分成两类:公有的和私有的。公有元素可以被计算机上安装的其他应用程序使用,他们被安装在Windows XP的WinSxS目录中。私有元素只能被包含他们的应用程序使用,安装在应用程序独有的目录下。
Windows Vista/7/8
Microsoft 在 Windows Vista/ Windows 7 里面大量使用了NTFS文档系统的特性之一的:硬连接(Hard Link)来实现WinSxS机制!
硬相连是NTFS文档系统特有的属性之一,在Linux下面,也有类似的机制。硬相连适用于在同一个卷的文档级别,硬相连是不能跨卷的。
Windows Vista / Windows 7自带了创建硬相连的命令:mklink.exe,利用这个命令,我们可以给指定的文档创建硬相连。
Microsoft为啥这么贫苦搞这个呢?其实如此对系统的稳定性的增加非常有好处。
同样的文档,只必要维护硬相连干系,不必要进行多重的拷贝,如此可以节省硬盘空间。
补丁卸载也是一样的,只必要把硬相连指向改为旧版本就可以了,没有文档替换的问题。而且建立了硬相连干系的文档之间的改正是同步的,所以只要有一方被改正了,另一方也会得到改正。
当然,Windows7操作系统中的winsxs文件属性中也自带压缩文件夹的功能:右键winsxs文件夹▶属性▶高级▶勾选压缩选项▶确定▶应用。
参考资料
《winsxs文件夹》.百度经验.2015-4-8
最新修订时间:2023-02-18 16:19
目录
概述
说明
参考资料