非根进程:一种基于硬件辅助虚拟化的进程抽象层
摘要 | 第5-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第12-16页 |
1.1 课题的背景和研究目标 | 第12-13页 |
1.2 本文的工作内容 | 第13-14页 |
1.3 本文的主要创新点 | 第14-15页 |
1.4 本文的内容组织 | 第15-16页 |
第2章 相关技术综述 | 第16-33页 |
2.1 经典的操作系统架构 | 第16-22页 |
2.1.1 宏内核 | 第16-18页 |
2.1.2 微内核 | 第18-20页 |
2.1.3 Exokernel | 第20-22页 |
2.2 虚拟化 | 第22-26页 |
2.2.1 系统虚拟化 | 第22-26页 |
2.2.2 OS虚拟化 | 第26页 |
2.3 Intel VT-x技术研究 | 第26-32页 |
2.3.1 处理器虚拟化的支持 | 第27-30页 |
2.3.2 VT-x的内存虚拟化 | 第30-31页 |
2.3.3 IO虚拟化技术VT-d | 第31-32页 |
2.4 本章小结 | 第32-33页 |
第3章 系统总体设计思路分析 | 第33-45页 |
3.1 对虚拟化和OS就抽象角度的分析 | 第33-36页 |
3.2 利用虚拟化做OS架构的思路分析 | 第36-43页 |
3.2.1 定制LibOS | 第36-38页 |
3.2.2 更方便的暴露硬件特性 | 第38-40页 |
3.2.3 IO功能解耦 | 第40-42页 |
3.2.4 总结 | 第42-43页 |
3.3 系统总体设计思路 | 第43-44页 |
3.4 本章小结 | 第44-45页 |
第4章 系统关键部分设计与实现 | 第45-67页 |
4.1 系统总体架构 | 第45-46页 |
4.2 非根进程的表示 | 第46-52页 |
4.2.1 32位模式VMCS的初始化 | 第46-48页 |
4.2.2 64位模式VMCS的初始化 | 第48-49页 |
4.2.3 VMCS的切换和加载 | 第49-51页 |
4.2.4 进程结构体 | 第51-52页 |
4.3 进程的虚地址空间结构 | 第52-55页 |
4.3.1 32位模式 | 第52-53页 |
4.3.2 64位模式 | 第53-55页 |
4.4 进程的运行 | 第55-60页 |
4.4.1 内核态的创建工作 | 第55-56页 |
4.4.2 32位非根进程的loader | 第56-58页 |
4.4.3 64位非根进程的loader | 第58-59页 |
4.4.4 EPT页表的初始化 | 第59-60页 |
4.4.5 进程的调度 | 第60页 |
4.5 中断和异常 | 第60-66页 |
4.5.1 NMI中断和外部中断 | 第60-61页 |
4.5.2 一般情况的异常处理 | 第61-62页 |
4.5.3 缺页异常 | 第62-64页 |
4.5.4 系统调用 | 第64-66页 |
4.6 本章小结 | 第66-67页 |
第5章 系统的测试与分析 | 第67-76页 |
5.1 测试环境的部署 | 第67-69页 |
5.1.1 测试环境 | 第67-68页 |
5.1.2 测试环境的部署安装 | 第68-69页 |
5.2 功能测试 | 第69-70页 |
5.3 性能测试和分析 | 第70-74页 |
5.3.1 异常处理 | 第70-71页 |
5.3.2 系统调用 | 第71-72页 |
5.3.3 启动时间 | 第72-74页 |
5.3.4 内存访问 | 第74页 |
5.4 对测试的综合分析 | 第74-75页 |
5.5 本章小结 | 第75-76页 |
第6章 总结与展望 | 第76-79页 |
6.1 本文工作总结 | 第76-77页 |
6.2 工作展望 | 第77-79页 |
参考文献 | 第79-82页 |
攻读硕士学位期间主要的研究成果 | 第82-83页 |
致谢 | 第83页 |