(我觉得这个问题的一半属于这里,一半属于服务器故障;如果你认为有一个更好的场所,请告诉我。)
Xen(或任何虚拟机管理程序)如何将硬件暴露给客户操作系统?
例如,想要在网络上进行通信的客户;在某个阶段,其请求必须转换为对NIC的请求。管理程序是否公开虚拟网络设备,我们假设客户知道如何使用?或者半虚拟客户是否知道如何直接请求给定的硬件? (如果是这样,非半虚拟客户会做什么?)
一旦提出请求,谁来处理它?我猜测虚拟机管理程序对物理硬件知之甚少(从驱动程序的角度来看),所以它可能必须归结为dom0。正确?
我问,因为我喜欢做内核开发,但编写驱动程序是件苦差事。如果我可以依赖具有相当好的硬件支持的dom0(比如说Ubuntu),然后只编写我的内核来运行半虚拟化,和/或利用Xen暴露的一些模拟设备,那将使我的生活变得更容易。但是,很难找到有关这些主题的文档,因此我的下一步可能是查看一系列Xen来宾实现; HaLVM,一个GHC端口,用于本地运行Haskell软件作为Xen客户端,看起来是一个良好的开端。
谢谢和致敬!
编辑:this marketing doc from Xen.org似乎表示dom0运行驱动程序以便于domUs的块设备和网络访问,这符合我的猜测。在这种情况下,任何技术参考/规格/等。太棒了!
答案 0 :(得分:1)
有三种类型的设备型号。
PV - 例如,Linux PV客人使用pv_ops(http://wiki.xen.org/wiki/XenParavirtOps,http://wiki.xen.org/wiki/Category:PVOPS)
HVM - 使用QEMU(https://serverfault.com/questions/222010/difference-between-xen-pv-xen-kvm-and-hvm)设备的完全虚拟化
本书The Definitive Guide to the Xen Hypervisor可能对您有用。
维基上有很多与开发相关的信息: http://wiki.xen.org/wiki/Category:Developers