论文部分内容阅读
虚拟化技术在最近几年得到了飞速发展,能够有效地提高处理器的利用率,并且处理器厂商相继推出了支持虚拟化的处理器、芯片组等,如今,虚拟化技术被广泛地应用于各个领域。I/O设备虚拟化技术是将一台高性能的物理设备虚拟成逻辑上独立的多台设备,而这些逻辑上独立的虚拟机用来完成不同的应用,这样不仅可以增加应用的安全性,也可以提高硬件资源的利用率。在研究计算机虚拟化技术的基本理论和机制的基础上,研究了虚拟化的分类,然后着重研究KVM虚拟机的解决方案以及KVM虚拟机的执行流程,并对VT-d技术在KVM中的应用进行了深入的分析。从KVM的应用出发,本文研究了KVM的实现步骤和使用方法。在用户空间设计和实现了串口转发器。在此基础上深入地研究了KVM虚拟串口设备的机制、KVM虚拟设备与用户空间的通信机制,并分别对KVM模拟串口设备、KVM虚拟设备和用户空间通信以及对Linux串口驱动转发方法进行了充分的实验和测试,最终结合Linux串口驱动及Linux的TTY设备模型,提出了一套在内核空间Linux驱动层实现串口转发器的解决方案。该方案将整个转发过程移到Linux内核空间,转发过程中的数据在内核空间流动,不需要在内核空间和用户空间进行切换,减少计算机的性能开销。本文还针对计算机中使用最多的设备即PCI设备进行了深入的研究。结合KVM中串口设备的模拟方法,深入地分析和研究了PCI设备在KVM中的模拟方法、通信机制,以及PCI设备的驱动模型。设计和实现了在内核空间多个KVM共享一个PCI设备的方案。本文分别对用户空间串口转发器的实现方法、Linux内核空间串口转发器的实现方法、内核空间多个KVM共享一个PCI设备的方法以及82576网卡使用VT-d技术进行了实例化,并做了大量的实验和测试。实验测试结果表明,本文设计和实现的用户空间串口转发器与内核空间串口转发器都具有良好的稳定性和通用性。实验结果表明,内核空间多个KVM共享一个PCI设备的方法是有效的,可以解决多个KVM虚拟设备共享一个PCI设备的问题。实验结果还说明VT-d技术在KVM中的应用大大地提高了虚拟机的I/O性能。在上述实验的过程中,系统能保持稳定性和安全性,也证实了本文研究的设备虚拟化方法具有实际的应用价值。