
Opensource.com
虚拟化是在一个从实际硬件抽象出来的层中运行计算机系统的虚拟实例的过程。最常见的是,它指的是在计算机系统上同时运行多个操作系统。对于在虚拟化机器上运行的应用程序来说,它可能看起来像是在它们自己的专用机器上,其中的操作系统、库和其他程序对于访客虚拟化系统来说是独一无二的,并且与位于其下方的宿主操作系统不相关。
人们在计算中使用虚拟化有很多原因。对于桌面用户来说,最常见的用途是能够运行为不同操作系统设计的应用程序,而无需切换计算机或重启到不同的系统。对于服务器管理员来说,虚拟化也提供了运行不同操作系统的能力,但或许更重要的是,它提供了一种将大型系统分割成许多较小部分的方法,从而使服务器能够被许多有不同需求的不同用户或应用程序更有效地使用。它还允许隔离,使在虚拟机内部运行的程序免受同一宿主机上另一个虚拟机中正在进行的过程的影响。
什么是虚拟机监控程序?
虚拟机监控程序是用于创建和运行虚拟机的程序。虚拟机监控程序传统上分为两类:第一类或“裸金属”虚拟机监控程序,它们直接在系统的硬件上运行访客虚拟机,本质上充当操作系统。第二类或“托管”虚拟机监控程序的行为更像传统的应用程序,可以像普通程序一样启动和停止。在现代系统中,这种划分不太普遍,特别是对于像 KVM 这样的系统。KVM,即基于内核的虚拟机,是 Linux 内核的一部分,可以直接运行虚拟机,尽管您仍然可以将运行 KVM 虚拟机的系统用作普通的计算机本身。
什么是虚拟机?
虚拟机是在另一个系统之上运行的计算机系统的模拟等效物。虚拟机可以访问任意数量的资源:计算能力,通过硬件辅助但有限地访问宿主机的 CPU 和内存;一个或多个物理或虚拟磁盘设备用于存储;一个虚拟或真实的网路接口;以及任何与虚拟机共享的设备,如显卡、USB 设备或其他硬件。如果虚拟机存储在虚拟磁盘上,这通常被称为磁盘映像。磁盘映像可能包含虚拟机启动的文件,或者,它可以包含任何其他特定的存储需求。
容器和虚拟机之间有什么区别?
您可能听说过 Linux 容器,它们在概念上与虚拟机相似,但功能略有不同。虽然容器和虚拟机都允许在隔离的环境中运行应用程序,允许您将许多应用程序堆叠在同一台机器上,就像它们是独立的计算机一样,但容器不是完整的、独立的机器。容器实际上只是一个隔离的进程,它与宿主操作系统共享相同的 Linux 内核,以及运行在容器内部的程序所需的库和其他文件,通常带有一个网络接口,这样容器就可以像虚拟机一样暴露给外界。通常,容器被设计为运行单个程序,而不是模拟完整的多用途服务器。
在哪里可以了解更多?
想学习如何开始使用虚拟化吗?我们为您准备了丰富的资源。请务必查看我们的虚拟化 标签集,或查看以下精彩文章之一。
-
使用 Vagrant 和 Ansible 部署用于 Web 开发的虚拟机 作者:Betsy Gamrat。
-
5 分钟了解 Vagrant,Daniel Farrell 的闪电演讲。
-
为什么像 Docker、Vagrant 和 Ansible 这样的工具比以往任何时候都更热门 作者:Greg DeKoenigsberg。
