一种用户态驱动与内核态驱动的协同工作系统及方法技术方案

技术编号:28295078 阅读:29 留言:0更新日期:2021-04-30 16:18
本发明专利技术涉及计算机操作系统领域,特别涉及到一种用户态驱动与内核态驱动的协同工作系统及方法。协同工作系统包括一用户态驱动,一内核态驱动以及一可加载内核模块,可加载内核模块向用户态驱动提供一操作接口,可加载内核模块用于根据内核态驱动的请求注册对应的字符设备并创建关联的属性文件,以及向用户态驱动提供字符设备和属性文件,以供用户态驱动通过操作字符设备的方式调用对应的内核态驱动中的驱动部分数据。本发明专利技术的技术方案有益效果在于:提供一种用户态驱动与内核态驱动的协同工作系统及方法,能够实现的用户态驱动与内核态驱动协同处理,共同完成和硬件的交互,可大大简化驱动开发和维护过程,提高内核的稳定性和可靠性。

【技术实现步骤摘要】
一种用户态驱动与内核态驱动的协同工作系统及方法
本专利技术涉及计算机操作系统领域,特别涉及到一种用户态驱动与内核态驱动的协同工作系统及方法。
技术介绍
随着计算机技术的发展,Linux不再局限于应用于服务器和终端系统领域,在移动设备上也逐渐被广泛应用。但外设问题一直是影响Linux系统发展的一个重要因素,其原因主要是因为Linux下驱动开发复杂,并且要求遵守GPL协议公开源码,导致一些设备厂商在驱动开发方面的动力不足。如今,内核中设备驱动代码所占比例越来越大,特别是企业自行移植和开发的驱动,当这些驱动出现问题时,例如发生非法内存访问,将可能导致整个系统崩溃。研究证明,Linux下驱动导致系统崩溃的可能性是其它内核的3到7倍。目前,为了提高驱动的健壮性和可靠性,国内外相关领域进行了多种研究,如用户态驱动。通过把驱动做为一个用户进程来运行的方式,其典型实现有Minix系统。Minix系统是一种基于微内核架构的操作系统,内核中仅仅包括进程管理、内存管理等关键部分,而其他模块均作为一个模块化的用户空间进程,包括设备驱动。诸如这类的实现,不可避免的存在性能降低的问题,因此也一直无法得到大规模的应用。而又如Linux中的UIO,并不支持用户空间下的DMA(DirectMemoryAccess,直接内存存取),这限制了其在需要DMA支持的设备上的应用。因此,如何能更好的兼顾性能和稳定性,完整的支持硬件设备功能,一直是Linux用户态驱动程序设计的一个主要研究方向。
技术实现思路
针对现有技术中存在的上述问题,现提供一种用户态驱动与内核态驱动的协同工作系统及方法。其中,一种用户态驱动与内核态驱动的协同工作系统,应用于Linux系统;所述协同工作系统包括一用户态驱动以及一内核态驱动,所述用户态驱动位于所述Linux系统的用户空间,并提供一包括所有设备的驱动程序的共有部分数据的共享库,所述内核态驱动位于所述Linux系统的内核空间,并提供各个设备所特有的驱动程序数据;所述协同工作系统还包括:一可加载内核模块,设置于所述内核空间并连接所述内核态驱动,所述可加载内核模块还向所述用户态驱动提供一操作接口,所述可加载内核模块用于根据所述内核态驱动的请求注册对应的字符设备并创建关联的属性文件,以及向所述用户态驱动提供所述字符设备和所述属性文件,以供所述用户态驱动通过操作所述字符设备的方式调用对应的所述内核态驱动中的所述驱动部分数据。优选的,所述可加载内核模块中包括:一处理单元,用于根据所述内核态驱动的请求于所述属性文件内写入对应的物理地址;所述用户态驱动获取所述物理地址并进行转换,以调用对应的所述内核态驱动中的所述驱动部分数据。优选的,所述用户态驱动获取所述物理地址并进行物理地址与虚拟地址之间的转换,以调用对应的所述内核态驱动中的所述驱动部分数据。一种驱动协同工作方法,应用于Linux系统;所述协同工作系统包括一用户态驱动以及一内核态驱动,所述用户态驱动位于所述Linux系统的用户空间,并提供一包括所有设备的驱动程序的共有部分数据的共享库,所述内核态驱动位于所述Linux系统的内核空间,并提供各个设备所特有的驱动程序数据;所述协同工作方法包括:向所述用户态驱动提供一操作接口;根据所述内核态驱动的请求注册对应的字符设备并创建关联的属性文件,以及向所述用户态驱动提供所述字符设备和所述属性文件,以供所述用户态驱动通过操作所述字符设备的方式调用对应的所述内核态驱动中的所述驱动部分数据。优选的,所述方法还包括:根据所述内核态驱动的请求于所述属性文件内写入对应的物理地址;所述用户态驱动获取所述物理地址并进行转换,以调用对应的所述内核态驱动中的所述驱动部分数据。优选的,所述用户态驱动获取所述物理地址并进行物理地址与虚拟地址之间的转换,以调用对应的所述内核态驱动中的所述驱动部分数据。本专利技术的技术方案有益效果在于:提供一种用户态驱动与内核态驱动的协同工作系统及方法,能够实现的用户态驱动与内核态驱动协同处理,共同完成和硬件的交互,可大大简化驱动开发和维护过程,提高内核的稳定性和可靠性。附图说明参考所附附图,以更加充分的描述本专利技术的实施例。然而,所附附图仅用于说明和阐述,并不构成对本专利技术范围的限制。图1为本专利技术优选的实施方式中,一种用户态驱动与内核态驱动的协同处理系统在Linux系统中的架构图;图2为本专利技术优选的实施方式中,一种用户态驱动与内核态驱动的协同处理方法的流程图;图3为本专利技术优选的实施方式中,基于所述协同处理系统的用户态驱动运行原理图;图4为本专利技术优选的实施方式中,所述物理地址到虚拟地址的映射流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征。本专利技术提供一种用户态驱动与内核态驱动的协同工作系统及方法。其中,一种用户态驱动与内核态驱动的协同工作系统,应用于Linux系统;协同工作系统包括一用户态驱动以及一内核态驱动,用户态驱动位于Linux系统的用户空间,并提供一包括所有设备的驱动程序的共有部分数据的共享库,内核态驱动位于Linux系统的内核空间,并提供各个设备所特有的驱动程序数据;协同工作系统还包括:一可加载内核模块,设置于内核空间并连接内核态驱动,可加载内核模块还向用户态驱动提供一操作接口,可加载内核模块用于根据内核态驱动的请求注册对应的字符设备并创建关联的属性文件,以及向用户态驱动提供字符设备和属性文件,以供用户态驱动通过操作字符设备的方式调用对应的内核态驱动中的驱动部分数据。具体地,针对目前Linux用户态驱动程序对性能和稳定性兼顾的需求,和先有系统功能上的不完善,本专利技术实现了一种用户态驱动与内核态驱动的协同处理系统,也称为协同处理系统框架,并基于该系统提供了一种驱动实现方法。该系统将驱动程序最终分为两部分,少数一部分功能实现位于内核空间,主要实现资源注册、中断处理功能;绝大部分功能实现位于用户空间,来完成硬件控制的其它的工作。该系统下内核空间与用户空间驱动协同处理,共同完成和硬件的交互。为了实现以上目的,本专利技术中的系统作为一个可加载内核模块的方式运行在内核地址空间,提供用户空间设备驱动开发标准接口,包含有设备注册函数、打开关闭函数、设备查询函数、设备属性获取函数、内存操作函数、中断处理函数。上述系统包含有一个用于用户态驱动开发的动态库,该库对以上接口函数进行进一步扩展和封装,用于用户态驱动的开发。如图1所示,本专利技术的优选实施方式中,可加载内核模块中包括:一处理单元,用于根据内核态驱动的请求于属本文档来自技高网...

【技术保护点】
1.一种驱动协同工作系统,应用于Linux系统;其特征在于,所述协同工作系统包括一用户态驱动以及一内核态驱动,所述用户态驱动位于所述Linux系统的用户空间,并提供一包括所有设备的驱动程序的共有部分数据的共享库,所述内核态驱动位于所述Linux系统的内核空间,并提供各个设备所特有的驱动程序数据;/n所述协同工作系统还包括:/n一可加载内核模块,设置于所述内核空间并连接所述内核态驱动,所述可加载内核模块还向所述用户态驱动提供一操作接口,所述可加载内核模块用于根据所述内核态驱动的请求注册对应的字符设备并创建关联的属性文件,以及向所述用户态驱动提供所述字符设备和所述属性文件,以供所述用户态驱动通过操作所述字符设备的方式调用对应的所述内核态驱动中的所述驱动部分数据。/n

【技术特征摘要】
1.一种驱动协同工作系统,应用于Linux系统;其特征在于,所述协同工作系统包括一用户态驱动以及一内核态驱动,所述用户态驱动位于所述Linux系统的用户空间,并提供一包括所有设备的驱动程序的共有部分数据的共享库,所述内核态驱动位于所述Linux系统的内核空间,并提供各个设备所特有的驱动程序数据;
所述协同工作系统还包括:
一可加载内核模块,设置于所述内核空间并连接所述内核态驱动,所述可加载内核模块还向所述用户态驱动提供一操作接口,所述可加载内核模块用于根据所述内核态驱动的请求注册对应的字符设备并创建关联的属性文件,以及向所述用户态驱动提供所述字符设备和所述属性文件,以供所述用户态驱动通过操作所述字符设备的方式调用对应的所述内核态驱动中的所述驱动部分数据。


2.根据权利要求1中所述的一种用户态驱动与内核态驱动的协同工作系统,其特征在于,所述可加载内核模块中包括:
一处理单元,用于根据所述内核态驱动的请求于所述属性文件内写入对应的物理地址;
所述用户态驱动获取所述物理地址并进行转换,以调用对应的所述内核态驱动中的所述驱动部分数据。


3.根据权利要求2中所述的一种用户态驱动与内核态驱动的协同工作系统,其特征在于,所述用户态驱动获取所述物理地址并进行物理地址与虚拟地址之间的转换,...

【专利技术属性】
技术研发人员:刘家杰
申请(专利权)人:普华基础软件股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1