操作系统中的虚拟机
虚拟机将我们个人计算机的硬件,如 CPU、磁盘驱动器、内存、NIC(网络接口卡)等,根据我们的要求抽象为许多不同的执行环境,从而让我们感觉每个执行环境都是一台计算机。例如,VirtualBox。
当我们在操作系统上运行不同的进程时,它会产生一种错觉,即每个进程都运行在具有自己虚拟内存的不同处理器上,借助 CPU 调度和虚拟内存技术。进程的一些附加功能是硬件无法单独提供的,例如系统调用和文件系统。虚拟机方法不提供这些附加功能,而仅提供与基本硬件相同的接口。每个进程都提供有底层计算机系统的虚拟副本。
我们可以出于多种原因创建虚拟机,所有这些从根本上都与共享相同基本硬件的能力有关,但也可以支持不同的执行环境,即同时支持不同的操作系统。
虚拟机方法的主要缺点涉及磁盘系统。假设物理机只有三个磁盘驱动器,但想要支持七个虚拟机。显然,它不能为每个虚拟机分配一个磁盘驱动器,因为虚拟机软件本身需要大量的磁盘空间来提供虚拟内存和假脱机。解决方案是提供虚拟磁盘。
用户因此获得了他们自己的虚拟机。之后,他们可以运行底层机器上可用的任何操作系统或软件包。虚拟机软件涉及将多个虚拟机多道编程到一台物理机上,但它不需要考虑任何用户支持软件。这种安排可以提供一种有用的方法来将设计多用户交互系统的问题分成两个较小的部分。
好处:
- 不存在保护问题,因为每个虚拟机都与所有其他虚拟机完全隔离。
- 虚拟机可以提供不同于真实计算机的指令集架构。
- 易于维护、可用性和方便的恢复。
缺点:
- 当多个虚拟机同时在一台主机上运行时,一个虚拟机可能会受到其他正在运行的虚拟机的影响,具体取决于工作负载。
- 在访问硬件时,虚拟机的效率不如真实机。