Operating system 虚拟内存在某种程度上与虚拟化技术有关吗?

Operating system 虚拟内存在某种程度上与虚拟化技术有关吗?,operating-system,virtualization,Operating System,Virtualization,我认为这是一个有点模糊的问题。但我试图弄清楚虚拟机监控程序是如何在幕后与操作系统交互的,以及是什么让它们如此不同。让我来引导你完成我的思考过程 如果我们已经有了一个操作系统来管理共享的资源,为什么我们需要一个虚拟化管理器(又称hypervisor) 我得到的一个答案是:假设系统崩溃,如果我们没有虚拟化管理器,那么这将是一个完全的损失。因此,虚拟化通过提供隔离使另一个系统不受影响 好吧,那我们为什么需要一个操作系统呢?嗯,操作系统和虚拟机监控程序都有不同的任务要处理:虚拟机监控程序处理如何分配资源

我认为这是一个有点模糊的问题。但我试图弄清楚虚拟机监控程序是如何在幕后与操作系统交互的,以及是什么让它们如此不同。让我来引导你完成我的思考过程

如果我们已经有了一个操作系统来管理共享的资源,为什么我们需要一个虚拟化管理器(又称hypervisor)

我得到的一个答案是:假设系统崩溃,如果我们没有虚拟化管理器,那么这将是一个完全的损失。因此,虚拟化通过提供隔离使另一个系统不受影响

好吧,那我们为什么需要一个操作系统呢?嗯,操作系统和虚拟机监控程序都有不同的任务要处理:虚拟机监控程序处理如何分配资源(计算、网络等),而操作系统处理进程管理、文件系统、内存(嗯,我们还有一个虚拟内存,对吗?)

我想我没有以一种琐碎的方式问这个问题?但我很困惑,所以也许我可以得到一些帮助来澄清我的观点

“虚拟的”大致意思是“不是它看起来的东西”。用一种东西代替另一种东西是计算中的一项常见任务

“虚拟资源”是一种常见的方法。它还意味着系统中存在一个透明地用资源的一部分替换另一部分的实体。内存是计算系统中最重要的资源之一,因此“虚拟内存”是历史上最早引入的术语之一

然而,还有其他资源值得虚拟化。可以虚拟化寄存器,或者更具体地说,虚拟化它们的值。输入/输出设备、时间、处理器数量、网络连接—所有这些资源现在都可以虚拟化(请参阅:英特尔VT-d、虚拟时间文件、多核模拟器、虚拟交换机和网络适配器作为各自的示例)。这些东西的组合大致构成了“虚拟化技术”。这不是一个定义明确的术语,除非您谈论Intel®虚拟化技术,这是一个供应商的商标名称

从这个意义上说,虚拟机监控程序是这样一个实体,它可以对其他受控实体透明地替换/管理所选资源,这些受控实体随后被称为驻留在“容器”、“监狱”、“虚拟机”中——存在不同的名称

操作系统和虚拟机监控程序都有不同的任务要处理

事实上,他们没有

  • 操作系统只是普通用户应用程序的虚拟机监控程序,因为它在后台为他们透明地管理资源。这些资源包括:虚拟内存,因为操作系统使每个应用程序似乎都有一个巨大的平面内存空间来满足自己的需要;虚拟时间,因为每个应用程序不管理上下文切换点;虚拟I/O,因为每个应用程序都使用系统调用来访问设备,而不是直接写入它们的寄存器

  • 虚拟机监控程序是一种称为“二级操作系统”的奇特方式,因为它虚拟化了操作系统可见的资源。这些资源本质上是相同的:内存、时间、I/O;新事物是系统寄存器

  • 它可以继续下去,也就是说,您可以拥有更高级别的虚拟机监控程序,为较低级别的实体虚拟化某些资源。对于Intel系统,它大致对应于堆栈SMM->VMM->OS->user application,其中SMM(系统管理模式)是最外层的虚拟机监控程序,而用户应用程序是内部实体(它实际上在运行您现在使用的web浏览器和web服务器方面做了有用的工作)

  • 如果我们已经有一个操作系统来管理资源的共享方式,那么为什么我们需要一个虚拟化管理器(又称hypervisor)

    如果所选的计算机体系结构支持多个级别的间接资源管理(例如嵌套虚拟化),我们就不需要它。因此,它取决于所选择的体系结构。在某些IBM系统(System/360,1960-1970年)上,hypervisor的发明和使用要比现代意义上的操作系统早得多。更常见的基于Intel x86 CPU的IBM个人计算机体系结构(大约1975年)存在缺陷,无法在不向体系结构中引入第二层抽象(管理程序)的情况下实现多个操作系统之间所需的隔离级别(发生在2005年左右)。

    虚拟的大致意思是“不是表面上看起来的东西”。用一种东西代替另一种东西是计算机中的一项常见任务

    “虚拟资源”是一种常见的方法。它还意味着系统中有一个实体可以透明地将资源的一部分替换为另一部分。内存是计算系统中最重要的资源之一,因此“虚拟内存”是历史上最早引入的术语之一

    然而,还有其他资源值得虚拟化。人们可以虚拟化寄存器,或者更具体地说,虚拟化它们的值。输入/输出设备、时间、处理器数量、网络连接—所有这些资源现在都可以虚拟化(请参阅:英特尔VT-d、虚拟时间文件、多核模拟器、虚拟交换机和网络适配器作为各自的示例)。这些东西的组合大致构成了一种“虚拟化技术”。这不是一个定义明确的术语,除非您谈论的是“英特尔虚拟化技术”,这是一种供应商的商标名称

    从这个意义上说,虚拟机监控程序是这样一个实体,它可以对其他受控实体透明地替换/管理所选资源,这些受控实体随后被称为驻留在“容器”、“监狱”、“虚拟机”中——存在不同的名称

    操作系统和虚拟机监控程序都有不同的任务要处理

    事实上,他们没有

  • 一个操作系统只是一个用于常规操作的虚拟机监控程序