目录 |
应用虚拟化是将应用程序与操作系统解耦合,为应用程序提供了一个虚拟的运行环境。在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。从本质上说,应用虚拟化是把应用对低层的系统和硬件的依赖抽象出来,可以解决版本不兼容的问题。
1.灵活性
应用虚拟化使应用能够在不兼容的环境下运行,例如在Linux设备上运行Windows应用。虚拟化应用还提供了同时运行多个不兼容应用程序的功能,而且这些应用程序不会受到彼此的影响。
2.隔离性
将应用从主机环境中隔离出来,提供了更好的安全性,降低了应用出错影响整个系统的可能性。
3.资源依赖
和完整的虚拟机相比,虚拟应用对资源的依赖更小,在提供虚拟化优势的同时没有引入其他开销。
4.部署更简单
虚拟化应用作为一个完整的实体存在,有自己的操作系统,与其他应用程序彼此隔离。只需要运行hypervisor启动虚拟应用程序就能够完成部署。
5.粒度更细的安全性
虚拟应用有直接针对容器以防止其执行的安全策略。而且可以只授权给用户启动虚拟应用所需要的权限,并不允许其访问其他网络资源。
应用虚拟化的优势让这门技术听起来像是迄今为止最好的技术,但是它也存在一些明显的不足。
1.并不是所有的应用都能够被虚拟化
某些应用程序直接调用硬件,必须运行在共享内存空间中或者需要只与专有设备兼容的特定设备驱动器。这样的例子包括销售点解决方案,扫描以及其他数据捕获产品。
2.本地集成
某些应用过度依赖于与特定的操作系统进行本地集成而且直接调用操作系统才能够正常使用。这方面的例子包括计算机辅助设计以及视频编辑软件。
3.兼容性
在很多情况下,应用虚拟化只解决与文件以及注册表控制相关的兼容性问题。对于直接控制动态内存访问的应用程序来说,虚拟化无法避免这些调用而且可能会导致系统崩溃。
4.许可问题
应用虚拟化使克隆以及部署应用变得非常简单。然而这也使违背用户许可变得简单起来。