论文部分内容阅读
记录系统对操作系统的可靠性有极其重要的意义,记录系统通常与回放系统一起应用到操作系统的调试、故障恢复和还原间谍软件攻击等方面。随着虚拟机技术的发展,虚拟机提供了更少的硬件访问接口,提供了更可信的计算基础,人们开始研制基于虚拟机的记录系统。国外已有几个基于虚拟机的记录系统,它们能记录足够的操作系统信息保障记录日志的安全,然而,仍然存在一些不足:所基于的虚拟机效率不高、需要修改虚拟机上的客户机操作系统、记录产生的日志量大。针对以上问题,提出了基于半虚拟化Xen的非确定性事件记录系统XLS。记录系统XLS之所以基于虚拟机Xen,是因为虚拟机Xen在虚拟机中效率最高,并且是开源项目。记录系统XLS在虚拟机Xen的Hypervisor层及特权操作系统的控制域中获取并记录非确定性事件,因而,不需要修改被记录的操作系统。记录系统XLS对Xen源码中的轻量级操作系统Mini-OS进行记录,记录内容包括通过键盘输入到Mini-OS中的按键值和虚拟机Xen对Mini-OS的时钟更新,由于记录的基准采用性能计数器值而不是被记录操作系统的不精确时钟,因此,记录的非确定性事件更加精确。记录系统XLS采用跨域存储方式将日志存放在特权操作系统的文件系统中,对不同的非确定性事件分类记录,将不同的非确定性事件记录在不同文件中,例如将Mini-OS中的按键输入和时钟更新两类非确定性事件分别记录在两个不同的文件中,从而使记录操作更加模块化,记录内容更加清晰,日志占用空间更小。基于半虚拟化Xen的非确定性事件记录系统XLS实现了对Mini-OS中键盘输入和时钟更新两类非确定性事件的记录。性能测试表明:记录一次按键事件消耗时间为12us,带来的性能损耗为0.06%;记录一次时钟事件消耗时间为17us,带来的性能损耗小于0.001%;日志增长率小于1.4MB/天。记录的时间损耗及日志增长率远小于现有的基于虚拟机的记录系统Revirt、ExecRecorder和ReTrace。