版权归原作者所有,如有侵权,请联系我们

[科普中国]-应用程序虚拟化

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

发展

自20世纪60年代起,各种形式的软件虚拟化概念相继出现。但在IT行业中,却花费了数十年的时间才意识到应用程序虚拟化的潜能。现在人们已经理解了这一重要性,并对此做出了重大改进。现在Altiris公司、AppStream公司和微软公司已经把用户使用环境虚拟化概念推到了下一阶段:分发应用软件,而不是分发整个桌面环境。这就提高了配置资源的灵活性,因为IT部门可以构建基本的操作系统镜像,然后为每个应用软件构建单个镜像,需要时可以迅速合并。用户不用为每个组合的应用软件提供单独的桌面镜像。2

目的应用程序虚拟化的根本目的是把应用程序从操作系统中解放出来,实现自给自足的运行虚拟环境。现在普遍采用的方式是在应用程序和操作系统之间建立一个虚拟层,这个虚拟层被包装在应用程序中,可以截取和隔离注册表项目、动态链接库(DLL)和应用可能在Windows设置中修改的其他内容。在把应用程序于操作系统成功分离开后,还产生了很多优化技术,如按需地分发应用程序,将应用软件流水化包装起来,应用软件无需完全安装,只要一部分程序能够在计算机上运行即可。用户只需使用他们所需的那部分程序或者功能。2

特点应用程序虚拟化安装在一个虚拟环境中,与操作系统隔离,拥有与应用程序的所有共享资源,极大地方便了应用程序的部署、更新和维护。通常应用虚拟化与应用程序生命周期管理结合起来使用效果更好。

1.部署方面

(1)不需要安装。应用程序虚拟化的应用程序包会以流媒体形式部署到客户端,有点像绿色软件,只要复制就能使用。

(2)没有残留的信息。应用程序虚拟化并不会在移除之后,在机器上产生任何文件或者设置。

(3)不需要更多的系统资源。应用虚拟化和安装在本地的应用一样,使用本地或者网络驱动器、CPU或者内存。

(4)事先配置好的应用程序。应用程序虚拟化的应用程序包,其本身就涵盖了程序所要的一些配置。

2.更新方面

(1)更新方便。只需要在应用程序虚拟化的服务器上进行一次更新即可。

(2)无缝的客户端更新。一旦在服务器端进行更新,则客户端便会自动地获取更新版本,无需逐一更新。

3.支持方面

(1)减少应用程序间的冲突。由于每个虚拟化过的应用程序均运行在各自的虚拟环境中,所以并不会有共享组件版本的问题,从而减少了应用程序之间的冲突。

(2)减少技术支持的工作量。应用程序虚拟化的程序与传统安装本地的应用不同,需要经过封装测试才能进行部署,此外也不会因为使用者误删除某些文件,导致无法运行,所以从这些角度来说,可以减少使用者对于技术支持的需求量。

(3)增加软件的合规性。应用程序虚拟化可以针对有需求的使用者进行权限配置才允许使用,这方便了管理员对于软件授权的管理。

4.终止方面

完全移除应用程序并不会对本地计算机有任何影响,管理员只要在管理界面上进行权限设定.应用程序在客户端就会停止使用。3

优点(1)消除应用程序冲突

应用程序可以保证使用正确版本的文件和属性文件(注册设置),而不用对操作系统进行任何修改,也不会对其他应用程序造成任何干扰。

(2)通过快速供应来减少应用程序的导入时间

管理员可以创建事先打包好的应用程序,这些应用程序包可以在本地或通过网络远程快速部署,即便是使用低速的网络连接。虚拟软件应用程序甚至可以根据需要而被传输到系统中,而不需要安装的流程。

(3)运行同一个应用程序的多个版本

多个版本的应用程序可以运行在同一个操作系统实例上,而不会发生任何冲突,从而提高了应用程序的升级方’式,加速新特征的测试以及整合到运行环境中的过程。1

功能应用程序虚拟化对于安全防御的巨大意义在于解决了两种类型的问题:

(1)应用程序的不安全,特别是恶意软件的运用,有可能导致本地系统特权的扩大化,并受控于未授权的用户。应用虚拟化可以有效控制应用的行为,随时对应用程序状态进行归零,防止这种情况的发生。

应用程序虚拟化,即“沙盒”技术,曾经是国际反病毒界提出的概念。它在计算机系统内部构建了一个独立的虚拟空间,当发现程序的可疑行为时让程序继续运行,当发现的确是病毒时才终止。“沙盒”技术让程序的可疑行为在电脑虚拟的“沙盒”里充分表演,同时“沙盒”会记下它的每一个动作。在病毒充分暴露了其病毒属性后,“沙盒”则会执行“回滚”机制,将病毒的痕迹和动作抹去,将系统恢复到正常状态。由于病毒一直是在虚拟空间运行,所以不会对真实的计算机系统产生破坏。

风险性应用虚拟化在使用上要考虑以下几点:

1)安全性

应用虚拟化安全性由管理员控制。管理员要考虑企业的机密软件是否允许离线使用.因而使用者可以使用哪些软件及相关配置由管理员决定。此外.由于应用程序是在虚拟环境中运行,从某种程度上避免了恶意软件或者病毒的攻击。

2)可用性

应用虚拟化中,相关程序和数据集中摆放,使用者通过网络下载,所以管理员必须考虑网络的负载均衡及使用者的并发量。

3)性能考量

应用虚拟化的程序运行,采用本地CPU、硬盘和内存,其性能除了考虑网络速度因素,还取决于本地计算机的运算能力。3