论文部分内容阅读
随着电子技术的不断发展,各种新的电子产品不断涌现。驱动程序的设计也随着外设的丰富而变得更加复杂,因此驱动代码中存在缺陷的概率也将越来越大。这一趋势为操作系统中设备驱动框架的设计和实现带来了新的挑战。本文在现有设备驱动研究基础之上,结合微内核技术的研究成果,针对内核模式设备驱动框架中存在的安全隐患,提出了一种基于微内核技术的用户空间设备驱动框架。本文克服了用户空间程序访问外部设备中存在的性能瓶颈,实现了用户空间对外围设备的高效访问,并提供了可靠高效的机制来保证应用程序和驱动服务之间的通讯。本文的主要工作和创新点总结如下:1)提出了一种基于微内核技术的用户空间设备驱动框架。本框架将驱动以服务形式运行于用户空间从而实现了驱动与内核之间的隔离。隔离性使得驱动程序中存在的错误局限于它所在线程,确保了不会因为驱动的缺陷导致内核的崩溃。本框架提供驱动服务运行环境,用户可以根据应用场景的不同而按需载入驱动服务,驱动服务和内核以及系统其他模块的耦合很低,可以方便地对系统中已经运行的驱动服务进行动态更新,从而使驱动服务具有新的功能特性。2)实现了驱动服务运行环境。驱动服务运行环境定义了各类驱动的标准接口和驱动服务的交互模型。它对外围设备的特性进行归纳和总结,用IDL语言对各类驱动的接口进行了描述。驱动服务运行环境对微内核提供的IPC机制进行了封装,实现了一种远程方法调用机制用来完成客户端和驱动服务之间的交互。3)实现了硬件抽象层。硬件抽象层利用底层微内核提供的API对底层硬件和外设进行访问和控制,提供一个抽象硬件平台和统一的硬件接口。硬件抽象层包括三个模块,其中内存管理模块将系统中空闲的物理内存映射到它所在地址空间,并加以统一的维护和管理;I/0模块实现了对端口I/O和内存映射I/O两种方式的封装;中断模块在微内核基础上对其中断处理机制作进一步封装,实现了用户对中断的处理和响应。