虚拟化(Virtualization)指的其实是一种「将计算机的各种实体资源进行逻辑抽象,从而呈现出不同的虚拟资源」的资源管理技术。利用虚拟化技术,我们可以打破实体结构间不可切割的特性——一份实体资源可以对用户呈现为多份虚拟资源,多份实体资源也可以呈现为一份物理资源。
硬件抽象层上的虚拟化:通过虚拟硬件抽象层来实现虚拟机器,为 Guest OS 呈现与物理硬件相同或相类似的硬件抽象层,也称之为「系统级虚拟化」(例如 VMWare、Xen)。
操作系统层上的虚拟化:通常指的是操作系统内核可以提供多个互相隔离的用户态实例(通常称之为容器),这些用户态实例对其用户而言就像是一台真实的计算机,有着自己独立的网络、文件系统等(例如 VServer)。
库函数层上的虚拟化:通过虚拟化操作系统的应用级库函数的服务接口,使得应用程序不需要修改就可以在不同的操作系统中无缝运行(例如 Wine、WSL)。
编程语言层上的虚拟化:这类虚拟机运行的是进程级别的不存在于硬件上的虚拟体系结构,其程序代码由虚拟机的运行时支持系统翻译成机器语言后再执行,属于进程级的虚拟化(例如 JVM)。
计算虚拟化:针对 CPU 和内存资源进行虚拟化。
网络虚拟化:针对网络链路资源进行虚拟化。
IO 虚拟化:针对 IO 资源进行虚拟化。
存储虚拟化:针对磁盘存储资源虚拟化。
评论区