Operating system 虚拟化在内部是如何工作的?

Operating system 虚拟化在内部是如何工作的?,operating-system,virtualization,hypervisor,Operating System,Virtualization,Hypervisor,我正在读关于虚拟化的书,脑子里突然出现了一个疑问。虚拟化在操作系统级别内部是如何工作的?这个话题在我的课堂上讨论过,我遇到了这个问题 虚拟机运行起来就像一个进程,在主机操作系统上有一些额外的权限。 我的疑问是,如果虚拟机是作为一个进程运行的,那么是谁向它提供了这个额外的特权,以便它能够实际干扰底层操作系统和硬件资源 我读过什么是虚拟机监控程序: 虚拟机监控程序是虚拟机和主机操作系统之间的连接。在主机操作系统上运行hypervisor意味着我们将作为用户进程运行它。我的怀疑也是一样 用户进程(hy

我正在读关于虚拟化的书,脑子里突然出现了一个疑问。虚拟化在操作系统级别内部是如何工作的?这个话题在我的课堂上讨论过,我遇到了这个问题

虚拟机运行起来就像一个进程,在主机操作系统上有一些额外的权限。

我的疑问是,如果虚拟机是作为一个进程运行的,那么是谁向它提供了这个额外的特权,以便它能够实际干扰底层操作系统和硬件资源

我读过什么是虚拟机监控程序:

虚拟机监控程序是虚拟机和主机操作系统之间的连接。在主机操作系统上运行hypervisor意味着我们将作为用户进程运行它。我的怀疑也是一样

用户进程(hypervisor)如何控制主机处理器和资源?据我所知,用户进程没有这些权限


提前感谢。

这取决于平台和实施。我不认为大多数实现让用户进程完全控制主机处理器和资源,虚拟化实现只是模拟它。例如,如果来宾希望在屏幕上显示某些内容,来宾确信它正在与硬件GPU接口,但VM只是截获通信,并将只使用主机上的API像常规用户进程一样显示它。但是,这一切都依赖于实现,例如,有专门针对VM的x86机制。这一切都取决于平台和实现。我不认为大多数实现让用户进程完全控制主机处理器和资源,虚拟化实现只是模拟它。例如,如果来宾希望在屏幕上显示某些内容,来宾确信它正在与硬件GPU接口,但VM只是截获通信,并将只使用主机上的API像常规用户进程一样显示它。但同样,它完全依赖于实现,例如,有专门针对VM的x86特定机制。