摘要 | 第4-5页 |
ABSTRACT | 第5页 |
1 绪论 | 第9-14页 |
1.1 研究背景 | 第9-10页 |
1.2 Linux操作系统的特点 | 第10-11页 |
1.3 国内外研究现状 | 第11页 |
1.4 主要研究工作与论文的结构安排 | 第11-14页 |
2 内存数据的获取 | 第14-29页 |
2.1 内存获取方案 | 第14-16页 |
2.1.2 内存获取的注意事项 | 第15页 |
2.1.3 本文采用方案 | 第15页 |
2.1.4 实验运行环境及参数说明 | 第15-16页 |
2.2 实现自动加载和卸载驱动模块的接口 | 第16页 |
2.3 内存数据获取的驱动设计 | 第16-20页 |
2.3.1 驱动设计思路 | 第16-17页 |
2.3.2 驱动的具体实现以及相关原理 | 第17-19页 |
2.3.3 Linux中的ioctl的使用 | 第19-20页 |
2.4 驱动的具体实现 | 第20-28页 |
2.4.1 内存数据获取相关的原理 | 第20-21页 |
2.4.2 内存数据获取的具体实现 | 第21-23页 |
2.4.3 进程链表获取具体实现 | 第23-24页 |
2.4.4 虚拟地址转换为物理地址具体实现 | 第24-27页 |
2.4.5 基于驱动实现的系统主界面 | 第27-28页 |
2.5 本章小结 | 第28-29页 |
3 Linux核心数据变量 | 第29-35页 |
3.1 空闲页面管理的头结点 | 第29-31页 |
3.2 进程链表头结点 | 第31-34页 |
3.3 本章小结 | 第34-35页 |
4 进程双向循环链表 | 第35-44页 |
4.1 进程链表的结构 | 第35-36页 |
4.2 task struct结构体 | 第36-40页 |
4.3 进程双向循环链表实例分析 | 第40-43页 |
4.4 本章小结 | 第43-44页 |
5 段/页式地址转换 | 第44-61页 |
5.1 Linux的段式映射 | 第44-51页 |
5.1.1 Linux的分段机制 | 第44-45页 |
5.1.2 段式映射相关的寄存器 | 第45-49页 |
5.1.3 Linux的段式映射的过程 | 第49-51页 |
5.2 Linux的页式映射 | 第51-56页 |
5.2.1 CR3的获取 | 第52-55页 |
5.2.2 页式映射的基本模型 | 第55-56页 |
5.3 Linux页式映射的实例分析 | 第56-60页 |
5.3.1 第一级映射 | 第56-58页 |
5.3.2 第二级映射 | 第58页 |
5.3.3 第三级映射 | 第58-59页 |
5.3.4 第四级映射 | 第59页 |
5.3.5 最终得物理地址的计算 | 第59-60页 |
5.4 本章小结 | 第60-61页 |
6 空闲页的管理 | 第61-85页 |
6.1 物理内存空间描述 | 第61-66页 |
6.1.1 节点 | 第62-63页 |
6.1.2 区域 | 第63-64页 |
6.1.3 页面 | 第64-66页 |
6.2 空闲页面的管理 | 第66-68页 |
6.2.1 区域与空闲页面 | 第67-68页 |
6.3 伙伴算法原理 | 第68-69页 |
6.4 伙伴算法具体分析 | 第69-72页 |
6.4.1 页面分配过程 | 第70-71页 |
6.4.2 页面回收过程 | 第71-72页 |
6.5 空闲页面管理实例分析 | 第72-84页 |
6.5.1 free area原理及数据块首地址获取 | 第72-76页 |
6.5.2 空闲页面管理实例分析 | 第76-84页 |
6.6 本章小结 | 第84-85页 |
总结 | 第85-87页 |
参考文献 | 第87-93页 |
附录: 攻读学位期间的主要学术成果 | 第93-95页 |
致谢 | 第95页 |