Xen hypervisor组件/插件开发

作为一个概念,我对虚拟化并不陌生,对Xen尤其感兴趣。

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

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

所以我想象一个虚拟机器也必须对所有这些组件进行build模/虚拟化。 我玩VirtualBox(只是为了方便/方便),当然,我必须select所有这些东西来“组装”一个虚拟机。

作为程序员,这激起了我的兴趣。 说我有一个全新的网卡,或CPU,或内存芯片(不pipe,无所谓),我想与像Xen这样的hypervisor兼容。 这意味着,我想写一些代码(?)生成某种二进制/插件,并允许Xen在构build新的虚拟机时使用这个工件。 再说,我刚刚创build了自己的网卡, SmeebEthernets 5000 ; 当使用Xenpipe理程序创build一个新的Linux VM时,我希望Linux VM能够使用我的SmeebEthernets 5000网卡。

我在想:

  • 我使用什么语言/框架/ API?
  • 什么是结果(编译/链接/打包)产生的神器(这是与任何Xen期望兼容)?
  • 对于每种types的虚拟化组件(CPU,网卡,操作系统,主板等),这个过程是否有所不同?
  • 是否有任何开源社区构build这些types的虚拟化组件,回购我可以细读等?

例:

在这里输入图像说明

在上面的屏幕截图中,我可以select几个桥接适配器。 我敢肯定,Xen提供了类似的select…但是如何? 例如,为了使“Interl(R)以太网连接I217-LM”成为VBox中的一个可用选项,必须在某个时刻向VBox注册一些东西……我在问什么?

smeeb,

取决于你作为一个开发者想要做什么。 XEN,VirtualBox,VMware都是采用真实PC(Ram,HD,CPU等)的Hypervisor引擎。 并使他们在“模拟”mannor完成。 保持它们从正在运行的主机的真实硬件层抽象出来。

如果您编写用于主机的代码,则虚拟机不受影响。 除非您使用虚拟机pipe理程序的API。 说XEN或VMWare。 如果你的代码是运行在Linux或Windows上的VM。 那么它只会影响他们,而不是主人。

取决于Hypyervisor引擎的软件分解。 不是所有的设备驱动程序都可能被支持 说USB设备。 较新的引擎可以。 老年人不是那么…

您将不得不在LAB机器上实现效果。

希望这个对你有帮助。 干杯..