计算机组成原理学习笔记——虚拟机

326 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

虚拟机

虚拟机技术就是指,在现有硬件的操作系统上,能够模拟计算机系统的技术。

模拟器

最简单的一种办法就是,开发一个应用程序,而这个应用程序可以识别我们要模拟的计算机系统的程序和指令,然后一条条解释完去执行。

其中原来的操作系统叫做宿主机,有能力去模拟指令的软件叫模拟器,被虚拟出来的系统叫做客户机

接下来我们来看看解释执行方式的优点和缺点

  • 优点 模拟的系统可以跨硬件。
  • 缺点 要模拟的系统有特定硬件的特定功能,我们软件不可能完全模拟;解释执行速度太慢,性能很差,因为到硬件执行前需要模拟器去解释。

所以针对这两个缺点,为了提升虚拟机性能,出现了全虚拟化技术,而它有两类虚拟机的实现。

Type-1和Type-2

image.jpeg 为了在一个操作系统上能够跑多个完整的操作系统,我们引入了一个中间层叫虚拟机监视器(VVM Virtual Machine Manager)。而我们的虚拟机运行时,不直接和宿主操作系统打交道,而是和我们的虚拟机监视器打交道。虚拟机会把它的指令集,I/O操作,中断等等全部映射到虚拟环境中。这个过程实际上就是我们的虚拟机,把最终到硬件的所有指令,都发到监视器中,监视器再把这些指令交给宿主操作系统去执行。这类虚拟化技术通常用在我们个人电脑中。

image.jpeg 与Type-2不同的是,对于Type-1,虚拟机的指令交给监视器之后,不需要再通过宿主操作系统来调用硬件,而是直接可以由监视器来调用硬件。

Docker

上述的虚拟机都是虚拟一整个的操作系统,但是大部分情况下我们根本用不到一整个的系统,而是只用到它的环境和资源,如果采用上述的虚拟技术,就会浪费很多不必要的资源。我们的Docker应运而生。

image.jpeg 通过Docker,我们就不需要再虚拟一整个的操作系统了,只要通过容器编排工具,将各类应用的环境和资源隔离就好了。