Windows中的默默无闻大英雄----虚拟存储

简介:

本文只是提供一种思想,没有其他意图。不过这只是Windows兼容方案的一种措施,肯定还有很多措施。感兴趣的可以看看,把玩把玩。

听见别人说起“虚拟化”,还以为是Xen、VMware、Hyper-v等虚拟化软件提供的虚拟化技术。结果恰恰相反,今天听到的虚拟化却是Windows的文件虚拟化和注册表虚拟化技术(按照微软官方说明后面都使用“虚拟存储(VirtualStore)”所代替。虚拟存储也不能理解为虚拟磁盘(VHD,Virtual Hard Disk))。不过在这里与其说它们是一种技术还不如说是一种思路。

我认为这种思路的核心就是如何保持Windows系统的整洁性和规范性。先别急说什么是文件虚拟化或者什么是注册表虚拟化,先详细说说这种技术的由来比较好。

整洁性和规范性,这两个词用在这里都是我杜撰出来的,不过有没有效大家看看再做评论。所谓的完整性就是指如何保持Windows系统目录(%SystemRoot%)和关键目录如“%SystemRoot%\System32”、“%SystemRoot%\SysWoW64”等不受到其他应用程序的改变,如应用程序向%SystemRoot%写入(“写入”操作的结果当然有可能是“覆盖”)配置文件或者dll(动态链接库)文件等。规范性是指提醒程序开发人员,不要设计一些与Windows系统开发理念或方法相忤逆的程序来破坏系统降低系统的可用性和可维护性,如不要设计将上述文件写入那些关键目录中。Windows开发人员更希望应用程序也能实现多用户的特性,即同一台计算机中的不同的用户使用不同的配置文件而使得不同的用户不会影响其他用户的设置和数据,尽管现在大多数程序已经这样设计。从刚才的这句话也可以看出这个技术其实只不过是处理兼容性程序的一种方法。

那么这种方法到底是如何实现的呢?答案很有意思,是文件重定向。文件重定向其实说起来并不复杂,就像快捷方式或者PowerShell中的快捷命令一样,通过访问链接文件或目标文件的别名(alias)就能真正的使用目标文件或程序。

说这么多概念有什么用呢?倒也没什么用。现在最新的Windows7 Enterprise已经隐去了在资源管理器工具栏上的“兼容性文件”的按钮,这让它变得更加默默无闻起来。但如果用户细心依然能发现它的存在。它就在“C:\User\UserName\AppData\Local\VirtualStore\”文件夹下。该文件专门用于保存重定向内容的根文件夹。对于每一个被重定向的文件都在这个文件下的对应文件夹里找到。

这个文件夹下可以重定向的文件位置有:

%SystemRoot%

%SystemRoot%\System32\

%SystemRoot%\SysWoW64\

%SystemRoot%\Program Files\

%SystemRoot%\Program Files (X86)\

如同前面所说,这个技术只对部分兼容性程序起作用,因此同样也面临着问题。这种机制只能使用标准权限运行安装程序时才有用,对于使用管理员权限安装的程序没有用。

同样的注册表虚拟化也就好理解了!其重点保护的键是HKEY_LOCAL_MACHINE\Software。感兴趣的话可以到微软官方网站的TechNet Library查看相关技术文档。





本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1095203,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
259 13
如何配置Windows主机MPIO多路径访问存储系统
|
10月前
|
安全 虚拟化 Windows
手把手教你如何在虚拟机上安装Windows 10
手把手教你如何在虚拟机上安装Windows 10
385 2
|
10月前
|
安全 开发工具 git
Windows11搭建Python环境(2)- Anaconda虚拟环境中安装Git
Windows11搭建Python环境(2)- Anaconda虚拟环境中安装Git
288 0
|
10月前
|
存储 NoSQL MongoDB
MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
393 0
|
Shell 网络安全 网络虚拟化
[笔记]Windows使用OpenVpn构建虚拟局域网
[笔记]Windows使用OpenVpn构建虚拟局域网
897 0
|
存储 安全 Windows
【Windows10】Win10存储空间的作用以及如何创建存储空间
【Windows10】Win10存储空间的作用以及如何创建存储空间
555 0
|
存储 Python Windows
windows创建python虚拟环境
本文有2种创建python虚拟环境的方式, 如果第二种方式有问题, 建议使用第一种方式!
windows创建python虚拟环境
|
机器学习/深度学习 并行计算 Ubuntu
软件类配置(一)【Windows下使用conda在虚拟环境中安装CUDA、CUDNN及Tensorflow】
软件类配置(一)【Windows下使用conda在虚拟环境中安装CUDA、CUDNN及Tensorflow】
583 0
|
存储 监控 数据可视化
在Windows下使用JMeter集群+Influxdb存储+Grafana实时数据展示
在Windows下使用JMeter集群+Influxdb存储+Grafana实时数据展示
522 0
在Windows下使用JMeter集群+Influxdb存储+Grafana实时数据展示
|
机器学习/深度学习 并行计算 PyTorch
【Pytorch-入门】windows+Anaconda虚拟环境搭建(避免不必要的包冲突)
【Pytorch-入门】windows+Anaconda虚拟环境搭建(避免不必要的包冲突)
584 0
【Pytorch-入门】windows+Anaconda虚拟环境搭建(避免不必要的包冲突)