- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
xen 如何处理 domU 内核的 E820 内存映射?在我的特定问题中,我试图将非 volatile RAM 映射到 domU 内核。 dom0 内存映射返回以下相关部分。
100000000-17fffffff:系统内存(4GB 到 6GB)
180000000-37fffffff :保留(6GB 到 14GB)
第二行对应NVRAM,是dom0内核中6GB到14GB的区域。我如何将此 NVRAM 区域映射到根本不映射此区域的 domU 内核。
最终我希望 nvram 区域在其他 domU 虚拟机中可用,因此任何解决方案或建议都会非常有帮助。
附言::如果我尝试从 domU 内核写入此区域,Xen 将拦截此写入操作。实际上这只是一个内存区域写入,应该不是问题,但它可能表现为硬件访问。
最佳答案
Xen 中的 guest 域有两种不同的 x86 模型:1. 硬件虚拟机(HVM):它利用 Intel VT 或 AMD SVM 扩展来在 x86 平台上实现真正的虚拟化2. Paravirtualized (PV) :此模式在操作系统的源代码中添加修改,以摆脱 x86 虚拟化问题,并增加系统性能。
这两种不同的型号以不同方式处理 E820 内存映射。 E820 内存映射基本上为操作系统提供了可操作的物理地址空间以及 I/O 设备的位置。在 PV 模式下,I/O 设备可通过 Xenstore 获得。 domain builder 仅在 pv guest 引导期间提供控制台设备。 guest 必须映射所有其他 I/O 设备。此模式下的客户机在保护模式下开始执行,而不是 x86 的实模式。域构建器将 start_info 页面映射到 guest 域的物理地址空间。此 start_info 页包含初始化内核的大部分信息,例如可用页数、CPU 数、控制台信息、Xenstore 等。此上下文中的 E820 内存映射仅包含可用内存页数,因为未模拟 BIOS和 I/O 设备信息通过 Xenstore 单独提供。
另一方面,在 HVM 中, guest BIOS 和其他设备必须由 Xen 模拟。这种模式应该支持任何未修改的操作系统,因此我们不能使用以前的方法。 BIOS 模拟是通过从 Bochs 借来的代码完成的,而设备是使用 QEMU 代码模拟的。此处为操作系统提供了 E820 内存映射,由域构建器构建。 HVM 域构建器通常会将内存布局信息传递给 Bochs 仿真器,然后后者执行所需的任务。
要获取 NVRAM 页面,您必须为 NVRAM 构建一个单独的 MMU。这个 MMU 应该处理所有 NVM 页面,并像 RAM 页面一样按需分配/释放它。这是很多工作。
关于linux - domU 内核的 Xen E820 内存映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471260/
请看一下我的代码。 int main () { Program* allcommand = new Program; allcommand->addCommand("add", new
因此,当我遇到调试断言时,我正在编写代码。现在我很想知道为什么这段代码不起作用: for(Model::MeshMap::iterator it = obj1->GetMeshes().begin()
这是我上一个问题的延续 Group, Sum byType then get diff using Java streams . 按照建议,我应该作为单独的线程发布,而不是更新原始线程。 因此,通过我
我正在实现一些非常适合 map 的代码。但是,我要迭代的列表中有大量对象,所以我的问题是哪种方法是解决此问题的最佳方法: var stuff = $.map(listOfMyObjects, some
我正在尝试创建一个包含不同类的成员函数指针的映射。成员函数都具有相同的签名。为了做到这一点,我所有的类都继承了一个 Object 类,它只有默认构造函数、虚拟析构函数和一个虚拟 ToString()
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: how do you make a heterogeneous boost::map? 有可能在 C++ 中
我有一个 Mysql 查询,请检查以下内容: SELECT `tbl_classSubjects`.`classID` , `tbl_classSubjects`.`sectionID` , `tbl
抱歉,这可能是一个基本问题。 JNA直接映射和接口(interface)映射有什么区别? 我的解释是否正确: 直接映射 : 直接使用库对象(如 Java 中的静态 main) 接口(interface
在 Twitter's Scala school collections section ,它们显示了一个带有偏函数作为值的 Map: // timesTwo() was defined earlie
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .
据我了解,从 scala stdlib 声明一个映射并没有将其专门用于原始类型。我要的不是付出装箱/拆箱的代价,而是同时拥有scala map 的接口(interface)。一个明显的选择是使用 tr
如何为这样的 JSON 响应创建对象映射,它只是一个整数数组: [ 565195, 565309, 565261, 565515, 565292, 565281, 566346, 5
是否可以为 DTO 对象创建映射然后查询它们 而不是域?如果不解释为什么? 如果我需要几个 dtos 怎么办? DTos 是只读的 ID 由 NH 自动生成 将来这些 dtos 将设置映射到链接的 d
我有一个返回的函数(常规代码) [words: "one two", row: 23, col: 45] 在 Scala 中,我将上面更改为 Scala Map,但随后我被迫将其声明为 Map[Str
我有一组与 Vanilla 磅蛋糕烘焙相关的数据(200 行),具有 27 个特征,如下所示。标签caketaste是衡量烤蛋糕的好坏程度,由 bad(0) 定义, neutral(1) , good
我有试图映射到新代码的遗留代码。 OLD_PERSON pid sid name age NEW_PERSON pid sid fid age RESOLVE_PERSON pid fid statu
我有一个表,其中一个字段可以指向其他 3 个表之一中的外键,具体取决于鉴别器值是什么(Project、TimeKeep 或 CostCenter。通常这是用子类实现的,我想知道我有什么 注意子类名称与
我有一个类型 [ST s (Int, [Int])] 的绑定(bind)我正在尝试申请runST使用映射到每个元素,如下所示: name :: [ST s (Int, [Int])] --Of Cou
在我正在进行的项目中,我有以下实体:分析师、客户 和承包商。每个都继承自基类 User。 public abstract class User { public virtual int Id
我想知道是否可以在 Vim 中创建一个映射(对于普通模式),允许用户在映射执行之前输入。 我想为我最常用的 grep 命令创建一个快捷方式的映射。我希望命令允许输入我正在搜索的内容,然后在输入时执行。
我是一名优秀的程序员,十分优秀!