gpt4 book ai didi

xen - Xen 从哪里开始?

转载 作者:行者123 更新时间:2023-12-01 07:15:10 26 4
gpt4 key购买 nike

我是 Xen 的新手。我想知道 Xen 是如何工作的。
面对代码时真的是一个难题,我不知道从哪里开始。
有适合我的简单文章吗?

最佳答案

由于您提到查看代码,我假设您想了解 Xen 的技术细节,而不仅仅是如何启动 VM。

与所有问题一样,从简单的事情开始,然后逐步向上。一些指示:

  • 一定要具备必备的经验。特别是强大的 C 和 Linux 亲和力,以及 x86 分页和虚拟化内存工作。
  • 确保您对一般的 Xen 架构有很好的掌握。例如,半虚拟化与硬件支持的虚拟化,管理域 (Dom0) 与非特权域 (DomU) 相比的特殊作用等。
  • 调查在 Dom0 中运行的 Xen 组件:
  • Xen 控制库 (libxc) 实现了与 super 调用相关的大部分逻辑并在这些逻辑周围添加了糖(查看 tools/libxc)。
  • 用于管理 Xen 的瑞士军刀,即 Xen 轻库(libxl)。此库替换了已弃用的 xm带有 xl 的工具工具并负责您的所有维护任务,例如启动/停止 VM、列出所有正在运行的 VM 等。对于所有这些操作,它与上述 libxc 协同工作。 (Libxl 位于 tools/libxl 中。)
  • Xenstore 是一种树状数据结构,所有正在运行的域都可以从中检索和存储数据。这是必要的,因为所有 I/O 都通过 Dom0(而不是虚拟机管理程序!),并且域需要与 Dom0 通信它们将如何传递 I/O。 (查看 tools/xenstore。)您可以使用诸如 xenstore-ls 之类的工具检查 Xenstore。 .
  • blkback/netback通过共享 channel 将数据传递给 VM 的内核驱动程序。 (您会在最近的 Linux 内核(例如 >= v3.0)中找到这些驱动程序,该内核具有所谓的 PVOPS 支持)。
  • 看看控制台守护进程 (tools/console)。请注意,有时实际使用的是 Qemu 控制台。如果您为 VM 选择文件支持的虚拟存储,Qemu 也作为默认后端出现在图片中。
  • 试验虚拟机间通信的“Xen 方式”:授权表、事件 channel 和 Xenstore。借助这些基础知识,您可以在 VM 之间创建自己的共享 channel 。例如,您可以通过编写在两个域中使用的内核模块来让它们相互通信来做到这一点。
  • 我还可以在源代码中提供一些您可以查看的指针:
  • xen/xen/include/public/xen.h将为您提供所有 super 调用的列表,并附上他们所做的评论。
  • xen/xen/include/xen/mm.h向您介绍 Xen 使用的不同内存术语(即真实地址与虚拟地址和页码)。如果您不掌握这些差异,那么阅读虚拟机管理程序代码肯定会令人沮丧。
  • xen/xen/include/asm-x86/config.h概述了 Xen 的内存布局。
  • xen/tools/libxc/xenctrl.h导出大量有趣的域控制操作,它提供了 Dom0 和管理程序之间任务划分的抽象 View 。

  • 最后但同样重要的是,强烈推荐 David Chisnall 撰写的《Xen Hypervisor 权威指南》一书。它以全面的技术方式涵盖了所有这些主题以及更多内容,并提供了大量代码示例。

    Xen wiki 和开发者邮件列表也是了解 Xen 的重要资源。

    如果您有更具体的问题,那么我可以给您更具体的答案。

    关于xen - Xen 从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11575299/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com