[发明专利]基于用户态与内核态驱动协同处理框架的设备驱动方法有效
申请号: | 202011233583.4 | 申请日: | 2020-11-06 |
公开(公告)号: | CN112231007B | 公开(公告)日: | 2022-08-19 |
发明(设计)人: | 李小玲;朱浩;王静;秦莹;高珑;马俊;董攀;谭郁松;吴庆波 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F13/10 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 用户 内核 驱动 协同 处理 框架 设备 方法 | ||
本发明公开了一种基于用户态与内核态驱动协同处理框架的设备驱动方法,本发明包括初始化用户态与内核态驱动协同处理框架,包括:内核态驱动,作为可加载内核模块运行在内核空间,用于提供稳定的内核态驱动开发接口;用户态驱动,作为共享库位于用户空间中,用于为用户态驱动开发提供接口;当用户空间中的应用程序调用用户态驱动时,用户态驱动通过用户态驱动与内核态驱动进行交互,或者通过字符设备、DMA缓冲设备直接与内核态驱动进行交互,从而完成对指定设备的操作。本发明能够实现的用户态与内核态驱动协同处理,共同完成和硬件的交互,可大大简化驱动开发和维护过程,提高内核的稳定性和可靠性。
技术领域
本发明涉及计算机操作系统领域,具体涉及一种Linux系统下的基于用户态与内核态驱动协同处理框架的设备驱动方法。
背景技术
随着计算机技术的发展,Linux不再局限于应用于服务器和终端系统领域,在移动设备上也逐渐被广泛应用。但外设问题一直是影响Linux系统发展的一个重要因素,其原因主要是因为Linux下驱动开发复杂,并且要求遵守 GPL 协议公开源码,导致一些设备厂商在驱动开发方面的动力不足。如今,内核中设备驱动代码所占比例越来越大,特别是企业自行移植和开发的驱动,当这些驱动出现问题时,例如发生非法内存访问,将可能导致整个系统崩溃。研究证明,Linux下驱动导致系统崩溃的可能性是其它内核的3到7倍。
目前,为了提高驱动的健壮性和可靠性,国内外相关领域进行了多种研究,如用户态驱动。通过把驱动作为一个用户进程来运行的方式,其典型实现有Minix系统。Minix系统是一种基于微内核架构的操作系统,内核中仅仅包括进程管理、内存管理等关键部分,而其他模块均作为一个模块化的用户空间进程,包括设备驱动。诸如这类的实现,不可避免的存在性能降低的问题,因此也一直无法得到大规模的应用。而又如Linux中的 UIO,并不支持用户空间下的直接内存存取(Direct Memory Access,DMA),这限制了其在需要 DMA 支持的设备上的应用。因此,如何能更好的兼顾性能和稳定性,完整的支持硬件设备功能,一直是Linux用户态驱动程序设计的一个主要研究方向。
发明内容
本发明要解决的技术问题:针对目前Linux用户态驱动程序对性能和稳定性兼顾的需求,和先有框架功能上的不完善,提供一种基于用户态与内核态驱动协同处理框架的设备驱动方法,本发明能够实现的用户态与内核态驱动协同处理,共同完成和硬件的交互,可大大简化驱动开发和维护过程,提高内核的稳定性和可靠性。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于用户态与内核态驱动协同处理框架的设备驱动方法,包括:
1)初始化用户态与内核态驱动协同处理框架,所述用户态与内核态驱动协同处理框架包括:内核态驱动,作为可加载内核模块运行在内核空间,用于提供稳定的内核态驱动开发接口;用户态驱动,作为共享库位于用户空间中,用于为用户态驱动开发提供接口;内核态驱动、用户态驱动之间通过sys文件系统接口、字符设备/dev/deviceX、DMA缓冲设备/dev/u-dmabufX进行交互;
2)当用户空间中的应用程序调用用户态驱动时,用户态驱动通过用户态驱动与内核态驱动进行交互,或者通过字符设备/dev/deviceX、DMA缓冲设备/dev/u-dmabufX直接与内核态驱动进行交互,从而完成对指定设备的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011233583.4/2.html,转载请声明来源钻瓜专利网。