论文部分内容阅读
近些年,随着虚拟化热门技术的发展,硬件能力的不断升级,加上虚拟化技术在X86架构上技术的突破,虚拟化技术的研究与应用变得越来越广泛。特别是在KVM虚拟机被Linux内核接纳后,随着Intel VT-d技术的推出,处理器虚拟化、内存虚拟化、I/O设备虚拟化三种机制在同一个水平上得到了提升,使得I/O性能能够满足处理器发展的需求,为整个虚拟化技术的发展带了突破。Intel VT-d技术是指在处理器芯片级对虚拟化提供了硬件支持。该技术的引入推动和加快了虚拟化研究机构对新的虚拟I/O模型的探讨和研究。KVM虚拟机的开源性进一步提升了VT-d技术中I/O模型的发展,使得更多的爱好者和研究者参与到KVM的核心技术中。I/O虚拟化作为虚拟化的重要组成部分,由于I/O设备种类繁多、驱动纷繁复杂,在整个虚拟化系统中处于瓶颈状态。在高效率使用CPU和内存的现实环境驱动下,如何加强I/O虚拟化在虚拟化过程中的性能成为虚拟化技术研究的热门话题。本课题依托Intel VT-d技术,结合虚拟化技术与Intel多核技术项目,在KVM虚拟机上实现一种简单稳定的串口调度解决方案。该方案利用硬件辅助虚拟化技术,并结合串口工作原理和DMA重映射技术,针对串口个数的有限性和串口的可重用性,扩展外设串口的使用;通过介绍串口及KVM虚拟机,提出了一种基于KVM虚拟机的串口转发器的设计方法,能够让一个串口同时能为虚拟机上的不同系统提供物理上的串口服务,实验表明:同一个物理串口能够并发的、让用户有选择的为不同的虚拟系统服务,解决了物理串口外设有限性的难题。同时也为I/O虚拟化技术的瓶颈难题和真实物理设备重复使用提供了思考方向。本文的主要创新点和意义所在:研究了基于Linux KVM内核虚拟机上的VT-d技术;将硬件辅助虚拟化技术应用到串口设备上;提出了基于KVM虚拟机上串口可调度使用的解决方案;为更多的外设可调度使用提供了一种基本模式。