摘要 | 第3-4页 |
Abstract | 第4页 |
目录 | 第5-7页 |
1 绪论 | 第7-11页 |
1.1 研究背景 | 第7页 |
1.2 发展概况 | 第7-8页 |
1.3 虚拟光驱概述 | 第8-9页 |
1.4 块设备仿真概述 | 第9页 |
1.5 本文特点和组织 | 第9-10页 |
1.6 本章小结 | 第10-11页 |
2 基本的设备管理 | 第11-19页 |
2.1 设备概述 | 第11页 |
2.2 设备管理的基本原理 | 第11-17页 |
2.2.1 I/O系统的组织结构 | 第12-13页 |
2.2.2 使用轮询的直接I/O | 第13-14页 |
2.2.3 中断驱动I/O | 第14-16页 |
2.2.4 存储映射I/O | 第16页 |
2.2.5 直接内存访问(DMA) | 第16-17页 |
2.3 块设备工作的过程 | 第17-18页 |
2.4 本章小结 | 第18-19页 |
3 Mac OS X系统的块设备管理 | 第19-36页 |
3.1 I/O Kit | 第19-26页 |
3.1.1 驱动程序 | 第20-21页 |
3.1.2 家族 | 第21页 |
3.1.3 结点 | 第21页 |
3.1.4 驱动程序、结点、家族的互动关系 | 第21-23页 |
3.1.5 I/O Registry和I/O Catalog | 第23-26页 |
3.2 Mac OS X的块设备管理 | 第26-35页 |
3.2.1 设备驱动栈 | 第27-29页 |
3.2.1.1 设备服务层 | 第27-28页 |
3.2.1.2 传输驱动层 | 第28-29页 |
3.2.1.3 物理连接层 | 第29页 |
3.2.2 驱动程序和设备的匹配 | 第29-35页 |
3.2.2.1 驱动程序的个性信息和匹配语言 | 第30-32页 |
3.2.2.2 驱动程序的匹配和装载 | 第32-35页 |
1 驱动程序的匹配 | 第32-33页 |
2 设备的探测 | 第33-35页 |
3 驱动程序的装载 | 第35页 |
3.2.2.3 设备的匹配 | 第35页 |
3.3 本章小结 | 第35-36页 |
4 对Mach系统的块设备进行仿真 | 第36-58页 |
4.1 Mac OS X设备管理的层次接口 | 第36-37页 |
4.2 仿真的设计考虑 | 第37-38页 |
4.3 在Mac OS X的设备驱动栈中各层的驱动实现 | 第38-56页 |
4.3.1 在设备服务层的实现 | 第38-49页 |
4.3.1.1 getProvider函数 | 第40-41页 |
4.3.1.2 init初始化 | 第41-42页 |
4.3.1.3 insertCD函数 | 第42-43页 |
4.3.1.4 ejectCD函数 | 第43页 |
4.3.1.5 readCD函数 | 第43-48页 |
1 prepareRequest函数 | 第44-46页 |
2 deblockRequest函数 | 第46-47页 |
3 breakUpRequest函数 | 第47-48页 |
4 executeRequest函数 | 第48页 |
4.3.1.6 驱动程序个性列表的设置 | 第48-49页 |
4.3.2 设备服务结点实现 | 第49-52页 |
4.3.2.1 初始化init | 第50-51页 |
4.3.2.2 异步读写函数doAsyncReadWrite | 第51-52页 |
4.3.2.3 个性特性列表的设置 | 第52页 |
4.3.3 在传输驱动层的实现 | 第52-56页 |
4.3.3.1 init初始化 | 第54页 |
4.3.3.2 start函数 | 第54页 |
4.3.3.3 stop函数 | 第54-56页 |
4.3.3.4 个性特性列表的设置 | 第56页 |
4.4 本驱动程序的运作原理 | 第56页 |
4.5 本章小结 | 第56-58页 |
5 结束语 | 第58-59页 |
致谢 | 第59-60页 |
参考文献 | 第60-61页 |