摘要:XenStore是Xen提供的一个域间共享的存储系统,它以字符串形式存放了管理程序和前、后端驱动程序的配置信息。Dom0管理所有的数据,而DomU通过共享内存,向Dom0请求与自己相关的键值,以此实现域间通信。Xen提供了多种接口用来操作XenStore:命令行的xenstore-*命令、用户空间的xs_系列函数、内核的XenBus接口,都可以用来方便地操作XenStore的数据。
0. 动机
在Xen的半虚拟化(PV)系统中,各个虚拟机(Domain)之间可以利用Xen核心提供的授权表(Grant Table)和事件通道(Event Channel)机制进行域间通信。但是在实际使用中有这样的问题:
- Alice使用授权表共享了一个页面,但是Sanae想要拿来用,必须事先知道它的授权引用(gref);
- Alice打开一个事件通道(unbound evtchn),但是Sanae想要绑定这个通道,必须事先知道A