首页> 中文学位 >基于内核代理模块和用户空间函数库的设备驱动体系结构的研究
【6h】

基于内核代理模块和用户空间函数库的设备驱动体系结构的研究

代理获取

目录

声明

致谢

摘要

1 绪论

1.1 研究背景

1.2 国内外研究现状

1.3 论文研究内容与技术路线

1.4 论文组织结构

2 研究基础

2.1 内核结构

2.1.1 内核空间与用户空间

2.1.2 内核体系结构

2.2 网络驱动程序

2.3 内核空间与用户空间的交互机制

2.4 内核相关数据结构

2.5 本章小结

3 基于内核代理模块和用户空间函数库的设备驱动体系结构

3.1 跨用户-内核空间的设备驱动体系结构

3.2 设备驱动程序拆分考量

3.2.1 源程序分析工具cflow

3.2.2 驱动程序可转移函数的确认

3.3 关键问题与解决方案

3.3.1 用户空间设备访问控制机制

3.3.2 基于ioctl()系统调用的用户-内核通信方案

3.3.3 基于信号量的并发同步机制

3.4 本章小结

4 原型设计与实现

4.1 总体设计

4.1.1 设备驱动过程设计

4.1.2 实现平台和支撑机制考量

4.1.3 整体架构设计

4.2 核心数据结构设计

4.3 关键模块详细设计

4.3.1 驱动通信控制模块

4.3.2 内核代理模块

4.3.3 用户空间函数库

4.4 原型实现

4.4.1 开发及运行平台

4.4.2 原型构建流程

4.5 本章小结

5 原型测试及结果分析

5.1 测试方案设计

5.2 正确性验证

5.3 性能测试

5.4 本章小结

6 结束语

6.1 工作总结

6.2 研究展望

参考文献

作者简历

学位论文数据集

展开▼

摘要

随着计算机科学技术的发展以及硬件性能的提升,操作系统的稳定性及安全性日益成为现今面临的最主要的挑战。操作系统的安全决定着整个计算机系统的安全,内核作为操作系统的核心,它的稳定与安全对操作系统有至关重要的影响,由于设备驱动代码占到内核代码的70%,因此它是操作系统漏洞的主要来源。在Linux中,操作系统认为内核中的代码是完全可信的,传统的设备驱动以内核模块的方式运行在内核空间,因而设备驱动如果存在漏洞或恶意代码,则将对系统的稳定性和安全性造成破坏和威胁。此外,并不是所有设备驱动程序的开发者都完全熟悉内核,因此,驱动程序的质量参差不齐。为了保障系统的安全,本文提出一种新的保证操作系统安全与稳定的方法,将驱动程序部分隔离,在用户空间实现。
  在深入研究了Linux操作系统的驱动模型并对实现用户空间驱动的关键技术进行分析后,本文设计和实现了一种基于驱动代码分离的用户驱动框架,将驱动程序分为在用户态执行的用户空间函数库和在内核态运行的内核代理模块两部分。一方面,通过使用源程序分析工具cflow对网络驱动代码进行分析,确定驱动程序代码分离的标准,保留驱动代码中的关键部分来兼顾驱动性能。另一方面,以PCnet32网络驱动为例,实现了基于内核代理模块和用户空间函数库的用户空间驱动原型,在一定程度上实现驱动的隔离,降低由驱动引起的漏洞破坏操作系统的可能性,同时减少内核中运行的驱动代码,以达到保障操作系统可靠性的目的。
  本文对实现的用户空间驱动原型进行了正确性和性能方面的测试,实验证明此方法在保证有效性的基础上兼具较高的可用性。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号