系统级虚拟层内核化的研究
发布时间:2017-12-16 10:08
本文关键词:系统级虚拟层内核化的研究
更多相关文章: 系统级虚拟层 Linux内核 QEMU 跨平台 接口移植 设备模拟
【摘要】:伴随着计算机体系结构的快速发展,代码迁移这一课题显得越发重要。新的体系结构如果不能广泛的被应用软件支持,将很难生存下去。龙芯是我国自主研发的通用CPU,采用MIPS架构,它的发展有着重大的意义。但是,在当今处理器市场中,X86架构的CPU占据着主导地位,大量的软件和操作系统都是基于该平台开发。在这样的环境下,发展龙芯及其相关产业链的首要任务就是要在软件层上实现对X86架构的兼容。解决跨平台软件兼容问题的常用方法就是利用动态二进制翻译工具在体系结构之上构建一个虚拟层来让目标软件运行。目前,动态二进制翻译工具进行系统级模拟构建虚拟层的相关研究大多是在用户空间下的移植和优化。在此基础上,本文提出了新的思路,内嵌跨平台无需硬件支持的虚拟层到操作系统内核中去,让操作系统直接支持虚拟层、让虚拟层直接与硬件交互,从而提高虚拟层的运行效率。 为了验证这一想法,动态二进制翻译工具QEMU被内嵌到了Linux内核中,以便让QEMU进行系统级模拟构建出的虚拟层运行在内核态并可以独占计算机资源。QEMU内核化项目的最终目标是在龙芯平台上构建内核空间中的虚拟层,而本文则实现了以X86平台为基础的具有基本功能的内核化虚拟层这一近期目标。文章首先分析了内核化QEMU的主要思路,给出了内核化虚拟层的架构和大致实现流程。然后,详细介绍了接口移植问题。接口移植问题的实质是QEMU在用户空间使用的库函数的内核化问题。待移植接口可分为四类,分别是可直接移植接口、通过组装修改可实现的接口、用内核方法可替代的接口和需要重写的接口。解决接口移植问题的主要方法是利用内核函数实现QEMU调用的库函数的功能。接着,重点分析了内核化QEMU的设备模拟问题。为了减少设备模拟带来的性能损耗,解决该问题的核心思想是让虚拟层直接与硬件进行交互。在介绍设备模拟问题时,以VGA显卡直通、虚拟层输入问题和内核化QEMU的DMA模拟方案为例进行了详细的分析。最后,含有QEMU的Linux内核被部署在X86平台上进行了实验。通过一系列的测试表明,内核化QEMU的性能确实得到了一定的提升,从而证明了本文提出的优化思路是有效的。通过本文对内核化虚拟层的研究,为如何在龙芯上构建跨平台并且高效的系统级虚拟层提供了一个新的思路。
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP303
【参考文献】
中国期刊全文数据库 前8条
1 李剑慧;马湘宁;朱传琪;;动态二进制翻译与优化技术研究[J];计算机研究与发展;2007年01期
2 谢海斌,武成岗,张兆庆,冯晓兵;动态二进制翻译中的代码Cache管理策略[J];计算机工程;2005年10期
3 白童心,冯晓兵,武成岗,张兆庆;优化动态二进制翻译器DigitalBridge[J];计算机工程;2005年10期
4 姜玲燕;梁阿磊;管海兵;;动态二进制翻译中的中间表示[J];计算机工程;2009年09期
5 吴少刚;邹国民;;Dalvik虚拟机在龙芯平台上的移植与实现[J];计算机工程;2011年22期
6 李增祥;管海兵;李晓勇;;动态二进制翻译的优化[J];计算机应用与软件;2007年07期
7 马舒兰;;动态二进制翻译中的TCache替换算法[J];计算机应用与软件;2008年04期
8 廖银;孙广中;姜海涛;靳国杰;陈国良;;动态二进制翻译中全寄存器直接映射方法[J];计算机应用与软件;2011年11期
,本文编号:1295619
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/1295619.html