系统级虚拟层内核化的研究

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:gracestoney
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
伴随着计算机体系结构的快速发展,代码迁移这一课题显得越发重要。新的体系结构如果不能广泛的被应用软件支持,将很难生存下去。龙芯是我国自主研发的通用CPU,采用MIPS架构,它的发展有着重大的意义。但是,在当今处理器市场中,X86架构的CPU占据着主导地位,大量的软件和操作系统都是基于该平台开发。在这样的环境下,发展龙芯及其相关产业链的首要任务就是要在软件层上实现对X86架构的兼容。解决跨平台软件兼容问题的常用方法就是利用动态二进制翻译工具在体系结构之上构建一个虚拟层来让目标软件运行。目前,动态二进制翻译工具进行系统级模拟构建虚拟层的相关研究大多是在用户空间下的移植和优化。在此基础上,本文提出了新的思路,内嵌跨平台无需硬件支持的虚拟层到操作系统内核中去,让操作系统直接支持虚拟层、让虚拟层直接与硬件交互,从而提高虚拟层的运行效率。为了验证这一想法,动态二进制翻译工具QEMU被内嵌到了Linux内核中,以便让QEMU进行系统级模拟构建出的虚拟层运行在内核态并可以独占计算机资源。QEMU内核化项目的最终目标是在龙芯平台上构建内核空间中的虚拟层,而本文则实现了以X86平台为基础的具有基本功能的内核化虚拟层这一近期目标。文章首先分析了内核化QEMU的主要思路,给出了内核化虚拟层的架构和大致实现流程。然后,详细介绍了接口移植问题。接口移植问题的实质是QEMU在用户空间使用的库函数的内核化问题。待移植接口可分为四类,分别是可直接移植接口、通过组装修改可实现的接口、用内核方法可替代的接口和需要重写的接口。解决接口移植问题的主要方法是利用内核函数实现QEMU调用的库函数的功能。接着,重点分析了内核化QEMU的设备模拟问题。为了减少设备模拟带来的性能损耗,解决该问题的核心思想是让虚拟层直接与硬件进行交互。在介绍设备模拟问题时,以VGA显卡直通、虚拟层输入问题和内核化QEMU的DMA模拟方案为例进行了详细的分析。最后,含有QEMU的Linux内核被部署在X86平台上进行了实验。通过一系列的测试表明,内核化QEMU的性能确实得到了一定的提升,从而证明了本文提出的优化思路是有效的。通过本文对内核化虚拟层的研究,为如何在龙芯上构建跨平台并且高效的系统级虚拟层提供了一个新的思路。
其他文献
汽车尾气的排放是造成目前日益严重大气污染问题以及能源危机的一个重要原因,为此,大力发展电动车行业是如今的一个主要方向。随着这些电动车用户量的增加,有的地方已经开始
近年来随着嵌入式设备的日益普及,嵌入式软件的安全性越发显得重要。在一些关键领域,如航天、医疗、军事、核能等,如果嵌入式软件存在程序漏洞,有可能导致程序在非正常状态运
视频关键帧提取及其可视化展示有利于视频内容信息的快速查阅和筛选,本文提出了两种关键帧提取算法以及一种螺旋圈结构的视频内容可视化方法,设计开发了三个应用系统。  关键
随着多媒体信息技术的飞速发展,图像资源越来越多地出现在人们的工作和生活当中,如何能够快速确地在庞大的图像资源库中查询到所需信息已经成为计算机视觉领域的一个重大挑战
聚类分析作为数据挖掘的十大难题之一,是数据挖掘范畴的重点研究内容。其中,对高维数据的聚类更是研究者们探索的热点问题。最近的研究显示出传统的聚类算法可能因为高维数据
随着后基因组时代的到来,生命科学的研究内容呈高速发展态势,生物信息数据迅速增长。由于生物数据具有大规模性和复杂性的特征,因此,探索如何高效处理海量生物数据的生物信息学学
怎样从单幅运动模糊图像复原出清晰的图像,一直是数字图像处理领域中富有挑战的问题。图像复原的目的是尽可能的恢复出原始清晰图像,因此对图像质量进行评价是必要的。若图像中
云计算(Cloud Computing)是一种新型的分布式计算范式。它将计算任务分布在大量计算机构成的资源池上,使各种应用能够根据需求获取计算力、存储空间和各种软件服务。云计算用
随着多核处理器的广泛应用,并发编程成为软件开发的主流方式,但是并发编程给程序员带来了很大的挑战。传统的并发编程主要是用锁机制来保证共享资源的互斥访问,锁机制是一种
随着移动互联网的飞速发展,智能手机也风靡全球。苹果、安卓、Windows Phone等智能手机不断吸引着用户的眼球,越来越成为人们生活中不可缺少的通讯工具和计算平台。与此同时,无