基于Intel VT硬件虚拟机内核研究与实现
摘要 | 第1-5页 |
ABSTRACT | 第5-13页 |
第一章 引言 | 第13-16页 |
·课题的必要性、来源 | 第13-14页 |
·虚拟化技术的必要性 | 第13页 |
·基于硬件辅助虚拟化的虚拟机内核的必要性 | 第13-14页 |
·课题来源 | 第14页 |
·主要研发内容 | 第14-15页 |
·各章节的介绍 | 第15-16页 |
第二章 虚拟化技术介绍 | 第16-24页 |
·什么是虚拟化技术 | 第16页 |
·为什么需要虚拟化 | 第16-17页 |
·虚拟化技术的市场 | 第17-18页 |
·虚拟化技术的发展历史 | 第18-19页 |
·虚拟化技术分类 | 第19页 |
·X86虚拟化技术 | 第19-23页 |
·X86虚拟化介绍 | 第19-22页 |
·X86虚拟化的核心内容 | 第22-23页 |
·CPU虚拟化 | 第22页 |
·内存虚拟化 | 第22-23页 |
·外设虚拟化 | 第23页 |
·小结 | 第23-24页 |
第三章 Intel VT介绍 | 第24-31页 |
·英特尔VT技术工作原理 | 第24页 |
·Intel虚拟机扩展(VMX)介绍 | 第24-26页 |
·虚拟机架构 | 第24-25页 |
·VMX操作介绍 | 第25页 |
·VMM应用生命周期 | 第25-26页 |
·虚拟机控制结构 | 第26-29页 |
·虚拟机控制结构的布局 | 第26-27页 |
·数据区的布局 | 第27页 |
·客户状态区域 | 第27-28页 |
·客户状态区的寄存器状态 | 第27-28页 |
·客户非寄存器状态域 | 第28页 |
·宿主状态区 | 第28-29页 |
·VMX的退出条件 | 第29-30页 |
·有条件的退出指令 | 第29页 |
·无条件的退出指令 | 第29页 |
·其他的退出条件 | 第29-30页 |
·小结 | 第30-31页 |
第四章 虚拟机内核设计 | 第31-54页 |
·虚拟机内核架构 | 第31-32页 |
·虚拟机结构图 | 第31页 |
·虚拟机架构设计思想 | 第31-32页 |
·内存管理 | 第32-41页 |
·内存管理架构图 | 第32页 |
·内存管理架构设计思想 | 第32-33页 |
·物理内存管理 | 第33-35页 |
·物理内存管理的初始化 | 第33页 |
·用于虚拟机内核自身的物理内存管理 | 第33-34页 |
·用于客户操作系统的物理内存分配 | 第34-35页 |
·线性地址空间管理 | 第35-41页 |
·缺页异常处理 | 第36-37页 |
·地址空间类型管理 | 第37-39页 |
·地址空间分配与回收 | 第39页 |
·客户操作系统页表管理 | 第39-41页 |
·虚拟CPU调度 | 第41-42页 |
·虚拟CPU调度框架 | 第41-42页 |
·中断异常派发 | 第42-45页 |
·中断异常的注册接口 | 第42页 |
·中断处理的流程框架 | 第42-43页 |
·异常处理的流程框架 | 第43-44页 |
·中断派发 | 第44页 |
·异常派发 | 第44-45页 |
·指令处理单元 | 第45-48页 |
·实模式的模拟 | 第45-47页 |
·BIOS的模拟 | 第47页 |
·非实模式时指令的模拟 | 第47-48页 |
·设备虚拟 | 第48-52页 |
·全虚拟化时设备虚拟化架构 | 第49-50页 |
·半虚拟化时设备虚拟化架构 | 第50页 |
·设备访问的截获 | 第50-51页 |
·虚拟外设的管理 | 第51-52页 |
·虚拟机管理 | 第52页 |
·调试支持 | 第52-53页 |
·小结 | 第53-54页 |
第五章 虚拟机内核实现 | 第54-118页 |
·虚拟机内核初始化 | 第54-69页 |
·虚拟机内核的引导和加载 | 第54-55页 |
·CPU环境初始化 | 第55-56页 |
·内存检测和初始内存管理 | 第56-59页 |
·内存管理的接口 | 第58-59页 |
·ACPI表的分析 | 第59-61页 |
·ACPI表操作接口 | 第61页 |
·APIC的初始化 | 第61-66页 |
·I/O APIC的初始化 | 第62-63页 |
·LAPIC的初始化 | 第63-65页 |
·I/O APIC操作接口 | 第65-66页 |
·LAPIC操作接口 | 第66页 |
·中断模型的初始化 | 第66-68页 |
·PIC模型 | 第67页 |
·虚拟线模型 | 第67页 |
·对称I/O模型 | 第67-68页 |
·从PIC模型切换到对称I/O模型 | 第68页 |
·多处理器的支持 | 第68-69页 |
·多处理器的初始化 | 第68页 |
·多处理器上的同步机制 | 第68页 |
·多处理器上的同步接口 | 第68-69页 |
·多处理器间APIC操作接口 | 第69页 |
·中断和异常管理的实现 | 第69-78页 |
·中断处理的注册 | 第70-71页 |
·中断和异常的统一入口 | 第71页 |
·Do_Irq详细过程 | 第71-72页 |
·客户系统直接处理中断 | 第72页 |
·中断和异常管理的接口 | 第72-73页 |
·软中断的注册与执行 | 第73-75页 |
·软中断的注册 | 第73页 |
·软中断的执行 | 第73-74页 |
·软中断的关键数据结构和接口 | 第74-75页 |
·中断和异常的分发 | 第75-78页 |
·中断的分发 | 第75-77页 |
·异常的分发 | 第77页 |
·中断和异常分发接口 | 第77-78页 |
·HyperCall的实现 | 第78-80页 |
· | 第78-80页 |
·HyperCall参数的传递 | 第78页 |
·HyperCall返回值的传递 | 第78-79页 |
·HyperCall实现代码模板 | 第79-80页 |
·时钟体系的实现 | 第80-94页 |
·时钟体系的初始化 | 第80-85页 |
·时钟中断的实现 | 第85-87页 |
·时钟中断的初始化 | 第85页 |
·时钟中断的代码框架 | 第85-87页 |
·软定时器的实现 | 第87-90页 |
·软定时器的数据结构 | 第87-88页 |
·软定时器的执行 | 第88-89页 |
·软定时器的操作接口 | 第89-90页 |
·高精度定时器的实现 | 第90-93页 |
·高精度定时器的数据结构 | 第90-91页 |
·高精度定时器的触发和执行 | 第91-92页 |
·高精度定时器和软定时器的共存 | 第92-93页 |
·高精度定时器操作接口 | 第93页 |
·时间计量的实现 | 第93-94页 |
·调度框架的实现 | 第94-102页 |
·用于调度的关键数据结构 | 第94-98页 |
·domain数据结构 | 第95-97页 |
·虚拟CPU数据结构 | 第97-98页 |
·调度框架模板 | 第98-101页 |
·调度器数据结构 | 第98-99页 |
·调度框架代码模板 | 第99-101页 |
·调度框架对实时系统的实时性保证 | 第101-102页 |
·内存共享 | 第102-104页 |
· | 第103-104页 |
·伪客户物理地址 | 第103页 |
·内存共享的同步机制 | 第103-104页 |
·内存共享接口 | 第104页 |
·VMX模式操作的实现 | 第104-116页 |
·VMX模式操作接口 | 第104-109页 |
·VMX模式退出处理代码模板 | 第109-116页 |
·客户系统界面显示的实现 | 第116-117页 |
·小结 | 第117-118页 |
第六章 测试 | 第118-127页 |
·测试环境的搭建 | 第118页 |
·硬件环境的搭建 | 第118页 |
·软件环境的搭建 | 第118页 |
·测试的目标 | 第118-120页 |
·功能测试的目标 | 第118-119页 |
·性能测试的目标 | 第119-120页 |
·虚拟机内核对测试的支持 | 第120-121页 |
·虚拟机内核的调试信息显示接口 | 第120页 |
·虚拟机内核的dump接口 | 第120-121页 |
·测试方案 | 第121-125页 |
·功能测试方案 | 第121-124页 |
·虚拟机内核初始化功能测试方案 | 第122页 |
·内存管理的功能测试方案 | 第122-123页 |
·中断和异常管理的功能测试方案 | 第123页 |
·时钟体系的功能测试方案 | 第123-124页 |
·调度框架的功能测试方案 | 第124页 |
·性能测试方案 | 第124-125页 |
·测试结果 | 第125-126页 |
·中断延迟测试结果 | 第125页 |
·物理内存碎片率测试结果 | 第125-126页 |
·功能测试结果 | 第126页 |
·小结 | 第126-127页 |
第七章 结论与展望 | 第127-129页 |
·结论 | 第127页 |
·展望 | 第127-129页 |
参考文献 | 第129-132页 |
致谢 | 第132-133页 |