一种远程PCI设备驱动方法的设计与实现
| 摘要 | 第1-6页 |
| Abstract | 第6-8页 |
| 目录 | 第8-10页 |
| 图表目录 | 第10-12页 |
| 第一章 引言 | 第12-17页 |
| ·项目背景 | 第12页 |
| ·项目的目的和意义 | 第12-15页 |
| ·应用场景 | 第13-14页 |
| ·项目目的 | 第14-15页 |
| ·项目简介 | 第15页 |
| ·本文的工作与组织 | 第15-17页 |
| 第二章 相关技术 | 第17-31页 |
| ·设备驱动概述 | 第17-18页 |
| ·Linux下的设备 | 第17页 |
| ·Linux设备驱动 | 第17-18页 |
| ·PCI简介 | 第18-24页 |
| ·PCI配置空间 | 第19-21页 |
| ·Linux下的PCI设备驱动 | 第21-24页 |
| ·虚拟机技术 | 第24-28页 |
| ·处理器的虚拟 | 第25页 |
| ·内存的虚拟 | 第25-26页 |
| ·I/O资源的虚拟 | 第26-28页 |
| ·QEMU虚拟机 | 第28-31页 |
| ·QEMU动态翻译技术 | 第28-29页 |
| ·QEMU设备模型 | 第29-31页 |
| 第三章 远程PCI设备驱动的设计 | 第31-45页 |
| ·总体设计 | 第31-33页 |
| ·本地设备代理的设计 | 第33-36页 |
| ·设备虚拟化方式的选择 | 第33页 |
| ·远端PCI设备的模拟 | 第33-35页 |
| ·设备代理的执行流程 | 第35-36页 |
| ·远端驱动代理的设计 | 第36-39页 |
| ·用户空间驱动 | 第36-38页 |
| ·驱动代理的模块设计 | 第38页 |
| ·驱动代理的执行流程 | 第38-39页 |
| ·设备I/O读写的设计 | 第39-40页 |
| ·中断处理的设计 | 第40-41页 |
| ·DMA操作的设计 | 第41-44页 |
| ·网络通信的设计 | 第44-45页 |
| 第四章 远程PCI设备驱动的实现 | 第45-66页 |
| ·本地设备代理的实现 | 第45-50页 |
| ·设备代理的注册 | 第45-46页 |
| ·设备代理的初始化 | 第46-47页 |
| ·配置空间读写的实现 | 第47-49页 |
| ·设备I/O读写的实现 | 第49-50页 |
| ·DMA操作的实现 | 第50-60页 |
| ·DMA映射操作的截获 | 第50-53页 |
| ·DMA映射信息结构 | 第53-54页 |
| ·DMA通用层API的实现 | 第54-59页 |
| ·设备代理和客户机的交互 | 第59-60页 |
| ·远端驱动代理的实现 | 第60-64页 |
| ·内核模块的初始化 | 第60-62页 |
| ·用户空间服务器的实现 | 第62-63页 |
| ·设备操作的实现 | 第63-64页 |
| ·网络通信模块的实现 | 第64-66页 |
| 第五章 总结与展望 | 第66-68页 |
| ·论文小结 | 第66页 |
| ·工作展望 | 第66-68页 |
| 参考文献 | 第68-70页 |
| 致谢 | 第70-71页 |
| 参与项目 | 第71-73页 |