我对虚拟化感兴趣并对虚拟机管理程序的类型及其实现有一些疑问。
我知道我们是从 2 类虚拟机管理程序开始的。它们像任何其他应用程序一样安装在操作系统上。这对我来说很有意义,虚拟机管理程序只是一个应用程序。
我不明白的是第 1 类虚拟机管理程序,例如 vmware ESXi。究竟如何在裸机上运行它?这是否意味着此虚拟机管理程序本身就是一个操作系统?这种虚拟机管理程序是如何实现的?
答案1
如上所述,VMWare ESX(i) 是一种 Type-1 裸机虚拟机管理程序。这意味着,是的,ESX(i) 是一种非常轻量级的操作系统,可以安装到服务器中的 USB 驱动器或 SD 卡上,从而为虚拟机留下更多的本地存储空间。不过,我不知道它是如何实现或工作的。
VirtualBox 和 Virtual PC 都属于 Type-2,而 Hyper-V 则同时适用于 Type-1 和 Type-2 角色。
VMWare 不是操作系统 - 他们是开发 ESX/ESXi/vSphere/vCentre Server 软件包的公司。
答案2
真正的问题是“什么是操作系统”?从根本上讲,操作系统是一种在机器启动时启动的软件,它为开发人员提供一组服务,供他们编写应用程序。从这个意义上讲,VMware(或任何虚拟机管理程序)都是操作系统。
虚拟机管理程序的不同之处在于,虚拟机管理程序将其他操作系统视为应用程序并拦截对底层硬件的调用。虚拟机管理程序操作系统提供的服务是运行其他操作系统(在某些情况下包括其他虚拟机管理程序)的虚拟硬件。虚拟机管理程序管理对底层物理硬件的共享访问。虚拟机管理程序可以运行“应用程序”,但应用程序通常是扩展或替换虚拟硬件的东西(VMware 和 Hyper-V 上的 Cisco Nexus 1000v 就是一个软件网络应用程序的例子,它取代了内置的虚拟网络环境)
答案3
它不是 Linux,如果你相信 VMWare,它不是基于 Linux。
VMWare 曾多次声明,ESX/ESXi 启动时进入的 vmkernel 是虚拟机管理程序,而非源自 Linux。
定制的 Linux 版本(基于 RedHat)作为在 vmkernel 上运行的第一个虚拟机被加载,并用于管理 vmkernel 本身。