Xen 虚拟机管理程序组件/插件开发

Xen 虚拟机管理程序组件/插件开发

我对虚拟化概念还很陌生,并且对 Xen 特别感兴趣。

机器是一个由许多部件/组成部分组成的复杂系统:

  • CPU(一个或多个)
  • 内存
  • 硬盘
  • 网卡
  • 母板
  • 运行于一切之上的操作系统
  • 多得多...

所以我想象虚拟机还必须对所有这些组件进行建模/虚拟化。我尝试了一下 VirtualBox(只是为了方便),果然,我必须选择所有这些东西来“组装”一台虚拟机。

作为一名程序员,这激起了我的兴趣。假设我有一张全新的网卡、CPU 或内存芯片(无论什么,都无所谓),我想让它与 Xen 之类的虚拟机管理程序兼容。这意味着,我想编写一些代码(?)生成某种二进制文件/插件,并允许 Xen使用在构建新的虚拟机时,我希望这个工件能够正常工作。再说一遍,假设我刚刚创建了自己的网卡SmeebEthernets 5000;当使用 Xen 虚拟机管理程序创建新的 Linux VM 时,我希望该 Linux VM 能够使用我的SmeebEthernets 5000网卡。

我在想:

  • 我使用什么语言/框架/API?
  • 产生的最终(编译/链接/打包)工件是什么(与 Xen 所期望的任何工件兼容)?
  • 对于每种类型的虚拟化组件(CPU,网卡,操作系统,主板等),这个过程是否不同?
  • 是否有任何开源社区正在构建这些类型的虚拟化组件、我可以仔细阅读的存储库等?

例子:

在此处输入图片描述

在上面的屏幕截图中,我可以在几个桥接适配器之间进行选择。我确信 Xen 提供了类似的选择……但是如何提供呢?例如,为了使“Interl(R) 以太网连接 I217-LM”成为 VBox 中的可用选项,必须在某个时候向 VBox 注册某些内容……我问什么?

答案1

斯米布,

取决于您作为开发人员想要做什么。XEN、VirtualBox、VMware 都是使用真实 PC(Ram、HD、CPU 等)的 Hypervisor 引擎。并以“模拟”方式使它们虚拟化。使它们与运行它们的 HOST 的真实硬件层保持抽象。

如果您编写的代码是针对主机的,则虚拟机不会受到影响。除非您利用虚拟机管理程序的 API。例如 XEN 或 VMWare。如果您的代码是针对正在运行的 Linux 或 Windows VM。那么它只会影响它们,而不会影响主机。

取决于 Hypervisor 引擎的软件版本。并非所有设备驱动程序都受支持。比如 USB 设备。较新的引擎可以。较旧的引擎则不然……

您必须在 LAB 机器上试验其效果。

希望这能有所帮助。干杯。

相关内容