XenBus 为半虚拟化驱动域间通信提供抽象总线。实际上,此总线是配置协议,通过域间通道完成大多数数据传输,域间通道由共享页和事件通道组成。
XenStore 是可以被所有域访问的集中型的数据库。管理工具配置、通过向数据库写值来控制虚拟设备,以触发驱动里的事件。
驱动程序和工具开发人员应该以此文档为指导,将XenBus和XenStorede 的功能引入他们的代码。
XenBus
=====================================================================================
设备驱动
所有的Xen虚拟化设备驱动应该在初始化时将他们自己注册到XenBus上,通过传递一个合适的已初始化的结构体xenbus_driver给xenbus_register_frontend()来完成注册。大多数内部初始化和设置应推迟到Xenbus调用探测回调函数。
传统的Xen分离设备驱动,例如块设备驱动,前端和后端的通信应该在探测回调函数执行的时候建立。对于希望看到真正的实现的开发者,块驱动是一个好的例子(见linux/drivers/block/xen-blkfront.c)。