IT系统运维| 虚拟机与沙盒的区别

| 2020-04-28 13:33:53    标签:

IT系统运维| 虚拟机与沙盒的区别

 

作为IT运维经常会使用虚拟机来测试系统,用沙盒来检测病毒。但虚拟机和和沙盒具有很多相同的特点,因而容易混淆。在讨论虚拟机和沙盒区别之前,我们先来看下一般计算机的大致结构(在一个很高的抽象层次上)。

一般的计算机结构:

                                             

从图中可以看出,操作系统operation system(简称os)windows作为应用程序application和硬件hardware的驱动程序driver的桥梁。application运行在windows之上并通过windows与用户user和机器硬件进行“互动”(在操作系统出现之前只有专业人员会操作计算机,正是因为有了操作系统的出现,普通人也能够操作计算机)。此外,操作系统负责访问硬盘上的文件资源,并通过驱动程序来控制机器硬件。驱动程序有很多,针对不同的硬件需要配置不同的驱动程序。

沙盒sandbox:

沙盒的特点在于很好的系统隔离性。在某种程度上,沙盒sandbox可以视为一个容器container,application运行在沙盒中,沙盒运行在windows操作系统上。运行在沙盒中的application和沙盒外的application一样可以访问硬盘中的文件等资源。运行在沙盒中的application和沙盒外的application的主要区别在于:

1. 对于沙盒外的application而言,沙盒内的application是透明的(即不可见的);

2. 当沙盒内的application退出后,所做的更改将不会被保存。

一个很好的例子是:当沙盒内的application退出后,沙盒内的application已下载或“安装”的恶意软件都将被丢弃。

虚拟机virtual machine:

虚拟机简称VM,其本质上是一个运行在操作系统之上的application,其特殊之处在于,虚拟机通过软件的方法模拟出一个完整独立的计算机的环境(但是并不是真是的计算机环境),这也是虚拟机名字的由来。因此,虚拟机就像是真实计算机的一个copy副本,虚拟机可以视为“机器内部的机器”。比如我们经常在windows操作系统上安装一个linux虚拟机,在这种情况下windows被称为host,linux被称为guest,一个host上可以安装多个guest虚拟机,就像是一个windows上可以安装多个application。

带有沙盒的计算机结构

运行在沙盒中的application和沙盒外的application共享机器的存储内存和计算资源。

带有虚拟机的计算机结构

在一个虚拟机内部,可以安装很多个application,这些application可以使用虚拟机内部的资源,包括虚拟硬盘和计算资源。此外虚拟机内部可以享有属于自身的驱动程序,因此虚拟机是作为一个application,利用真是的硬件资源来模拟了属于自己的硬件资源和软件环境。因此当虚拟机退出后,发生在虚拟机内部的更改(包括下载、设置、更新、安装等操作)会被保存下来。

带有多个虚拟机的计算机结构

经过上面的讨论,我们可以看出虚拟机和沙盒的主要区别在于:

1. 当沙盒中的应用程序退出后,其所做的更改会被丢弃;而当虚拟机退出后,其所做的更改会被保存下来;

2. 沙盒中的application和其他application共享机器的硬件资源;而虚拟机在安装时需要为其指定内存memory和cpu核且虚拟机不和其他application共享硬件资源。因此虚拟机实际上是很耗系统资源的。

 

以上内容由北京艾锑无限科技发展有限公司整理