构建可信虚拟计算环境:TRIOB技术解析
1. 核心组件与内存访问机制
在构建可信虚拟计算环境的过程中,有几个核心组件发挥着关键作用,它们分别是内存哈希度量引擎、域页表管理器和监控域,这些组件均在Xen空间中实现,主要基于两方面原因。一方面,Xen具有较高的可信度,能够确保这些组件的可靠性;另一方面,这些组件需要访问属于C - Domain0的任意内存区域,而在Xen空间中实现这一操作相对容易。
内存哈希度量引擎是一组哈希函数,采用MD5哈希算法计算机器内存区域的摘要。当引擎被激活时,它会计算测量信息表中指定机器内存区域的哈希值,并将其保存回表中。为了实现动态执行,借助Xen空间中的空闲域引入了监控域。监控域具有以下三个特点:
- 数据结构不体现在全局域管理列表中,在Xen空间中处于隐藏状态。
- 与Xen共享页表(空闲页表),可以调用Xen内的所有函数。
- 仅创建一个VCPU,其优先级与普通VCPU相同,能够及时激活内存哈希度量引擎。
然而,目前引擎在Xen空间中无法直接访问测量信息表中相关的机器内存区域。在32位x86物理平台的非PAE模式下,Xen的虚拟地址空间仅覆盖64MB内存,为了访问C - Domain0的内核机器内存,引入了域页表管理器。具体访问步骤如下:
1. 从测量信息表中获取C - Domain0内核内存区域的页表项(PTE)或起始机器地址(start mfn)以及内存区域的长度。
2. 调用 alloc_xenheap_page 函数从Xen堆空间分配一页内存,利用 virt_to_mfn 宏将该页的起始虚拟地址转换为对应的起始机器页帧号(mfn)
TRIOB技术构建可信虚拟计算环境
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



