跨态通信方法和通道驱动装置制造方法及图纸

技术编号:20362746 阅读:20 留言:0更新日期:2019-02-16 16:28
本公开提供了一种跨态通信方法和通道驱动装置,涉及通信技术领域,该方法应用于位于操作系统内核空间的通道驱动装置,通道驱动装置与操作系统的用户空间通过各个APP进程共享的协议通道传输消息。在通道驱动装置的协助下,只需数量较少的协议通道即可实现内核态与用户态之间的多对多跨态通信。本公开能够使内核态与用户态之间的消息并发数量不再受限。

【技术实现步骤摘要】
跨态通信方法和通道驱动装置
本公开涉及通信
,尤其是涉及一种跨态通信方法和通道驱动装置。
技术介绍
在当前信息行业普遍使用的Linux系统架构中,内核态(也即,程序工作在内核空间)和用户态(也即,程序工作在用户空间)是操作系统的两种运行级别。操作系统将硬件内存资源按需分别划分给内核态和用户态,两者不能随意访问彼此的空间,以达到系统安全防护作用。但对于实际数据交互业务,特别是在控制层面相关业务应用中,内核态与用户态之间的数据交互却成为必不可少的环节。Netlink技术就是在这样的背景下应运而生,并逐渐成为了内核态与用户态之间的主要通信手段。然而,内核态与用户态采用传统的Netlink技术进行通信的过程,存在如下问题:在内核空间中的多个内核子系统对应用户空间中的多个应用APP的多对多场景中,消息并发交互所需的协议通道数量会受到操作系统所支持的最大协议号限制,消息并发数量受限会影响到内核态和用户态之间的跨态通信。
技术实现思路
有鉴于此,本公开的目的在于提供一种跨态通信方法和通道驱动装置,以使内核态与用户态之间的消息并发数量不再受限,从而较好地提升了跨态通信的并发效果。为了实现上述目的,本公开实施例采用的技术方案如下:第一方面,本公开实施例提供了一种跨态通信方法,所述方法应用于位于操作系统内核空间的通道驱动装置,所述通道驱动装置与所述操作系统的用户空间通过各个应用APP进程共享的协议通道传输消息,所述方法包括:所述通道驱动装置接收第一APP进程发送给第一内核子系统的第一消息;其中,所述第一消息的目的端为所述第一内核子系统的标识、源端为所述第一APP进程的标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一消息的类型,获取所述第一内核子系统的回调接口,并通过所述回调接口将所述第一消息中的第一操作内容传递给所述第一内核子系统;其中,所述第一操作内容还携带有所述第一APP进程的标识;所述通道驱动装置接收所述第一内核子系统返回的第二消息;其中,所述第二消息的源端为所述第一内核子系统的标识、目的端为所述第一APP进程的标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一APP进程的标识将所述第二消息传递给所述第一APP进程。第二方面,本公开实施例还提供一种跨态通信装置,所述通道驱动装置位于操作系统的内核空间,且所述通道驱动装置与所述操作系统的用户空间通过各个APP进程共享的协议通道传输消息,所述通道驱动装置包括:第一接收单元,用于接收第一APP进程发送给第一内核子系统的第一消息;其中,所述第一消息的目的端为所述第一内核子系统的标识、源端为所述第一APP进程的标识;第一传递单元,用于根据所述第一内核子系统的标识和所述第一消息的类型,获取所述第一内核子系统的回调接口,并通过所述回调接口将所述第一消息中的第一操作内容传递给所述第一内核子系统;其中,所述第一操作内容还携带有所述第一APP进程的标识;第二接收单元,用于接收所述第一内核子系统返回的第二消息;其中,所述第二消息的源端为所述第一内核子系统的标识、目的端为所述第一APP进程的标识;第二传递单元,用于根据所述第一内核子系统的标识和所述第一APP进程的标识将所述第二消息传递给所述第一APP进程。第三方面,本公开实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述跨态通信方法。第四方面,本公开实施例提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述跨态通信方法。上述跨态通信方法、装置、电子设备和机器可读存储介质,操作系统的内核空间配置有通道驱动装置,该通道驱动装置与用户空间通过各个APP进程共享的协议通道传输消息。通道驱动装置接收第一消息(目的端为第一内核子系统的标识、源端为第一APP进程的标识),并基于第一消息查找第一内核子系统对应的回调接口;进而通过查找到的回调接口将第一消息中的第一操作内容传递给第一内核子系统;通道驱动装置接收第二消息(源端为第一内核子系统的标识、目的端为第一APP进程的标识),并基于第二消息将其传递给第一APP进程。本公开提供的上述方式中,由于配置有可确定APP进程和内核子系统的对应关系的通道驱动装置,在通道驱动装置的协助下,只需共享的协议通道即可实现内核态与用户态之间的多对多跨态通信,内核态与用户态之间的消息并发数量不再受限,从而较好地提升了跨态通信效果。本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本公开实施例所提供的一种Netlink通信模式示意图;图2示出了本公开实施例所提供的一种应用APP主动发起通信的多对多通信示意图;图3示出了本公开实施例所提供的一种内核子系统主动发起通信的多对多通信示意图;图4示出了本公开实施例所提供的一种内核态与用户态之间的多对多通信示意图;图5示出了本公开实施例所提供的一种跨态通信方法流程图;图6所示的本公开实施例所提供的一种APP与内核子系统的交互过程示意图;图7示出了本公开实施例所提供的另一种内核态与用户态之间的多对多通信示意图;图8示出了本公开实施例所提供的一种应用APP与内核子系统的交互过程示意图;图9示出了本公开实施例所提供的另一种应用APP与内核子系统的交互过程示意图;图10示出了本公开实施例所提供的一种通道驱动装置的结构框图;图11示出了本公开实施例所提供的一种电子设备的结构示意图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。Netlink是Linux操作系统中一种特殊IPC(InterProcessCommunication,进程间通信)技术,属于异步网络通信机制,具有使用简单、层次抽象、屏蔽对内核模块的依赖、增加系统的安全性、降低开发难度等优点。Netlink技术常见的内核态操作有单播netlink_unicast和广播netlink_broadcast两种传播方式。其中,netlink_unicast用于内核空间中的内核子系统与用户空间中的应用进程间一对一的数据通信模式;netlink_broadcast用于内核空间中的内核子系统与用户空间中的应用进程间一对多的数据通信模式。现有的内核子系统的数量通常为多个,多个内核子系统在与多个应用进程进行通信时,本文档来自技高网...

【技术保护点】
1.一种跨态通信方法,其特征在于,所述方法应用于位于操作系统内核空间的通道驱动装置,所述通道驱动装置与所述操作系统的用户空间通过各个应用APP进程共享的协议通道传输消息,所述方法包括:所述通道驱动装置接收第一APP进程发送给第一内核子系统的第一消息;其中,所述第一消息的目的端为所述第一内核子系统的标识、源端为所述第一APP进程的标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一消息的类型,获取所述第一内核子系统的回调接口,并通过所述回调接口将所述第一消息中的第一操作内容传递给所述第一内核子系统;其中,所述第一操作内容还携带有所述第一APP进程的标识;所述通道驱动装置接收所述第一内核子系统返回的第二消息;其中,所述第二消息的源端为所述第一内核子系统的标识、目的端为所述第一APP进程的标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一APP进程的标识将所述第二消息传递给所述第一APP进程。

【技术特征摘要】
1.一种跨态通信方法,其特征在于,所述方法应用于位于操作系统内核空间的通道驱动装置,所述通道驱动装置与所述操作系统的用户空间通过各个应用APP进程共享的协议通道传输消息,所述方法包括:所述通道驱动装置接收第一APP进程发送给第一内核子系统的第一消息;其中,所述第一消息的目的端为所述第一内核子系统的标识、源端为所述第一APP进程的标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一消息的类型,获取所述第一内核子系统的回调接口,并通过所述回调接口将所述第一消息中的第一操作内容传递给所述第一内核子系统;其中,所述第一操作内容还携带有所述第一APP进程的标识;所述通道驱动装置接收所述第一内核子系统返回的第二消息;其中,所述第二消息的源端为所述第一内核子系统的标识、目的端为所述第一APP进程的标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一APP进程的标识将所述第二消息传递给所述第一APP进程。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述内核空间初始化过程中,所述通道驱动装置接收所述内核空间中各个内核子系统的注册信息,将所述注册信息写入第一映射表;其中,所述第一映射表包含所述内核子系统的标识、消息类型和回调接口间的对应关系;相应地,所述通道驱动装置根据所述第一内核子系统的标识和所述第一消息的类型,获取所述第一内核子系统的回调接口的步骤,包括:所述通道驱动装置应用所述第一内核子系统的标识和所述第一消息的类型查找预存的第一映射表,得到所述第一消息对应的回调接口。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述通道驱动装置接收APP进程启动时发送的初始化信息,将所述初始化信息写入第二映射表;所述第二映射表包含所述APP进程的进程ID、所述APP进程的编码标识和内核子系统的标识间的对应关系;相应地,所述第一APP进程的标识为所述第一APP进程的编码标识;所述通道驱动装置根据所述第一内核子系统的标识和所述第一APP进程的标识将所述第二消息传递给所述第一APP进程的步骤,包括:所述通道驱动装置应用所述第一内核子系统的标识和所述第一APP进程的编码标识查找预存的第二映射表,得到所述第一APP进程的进程ID;所述通道驱动装置将所述第二消息中的目的端由所述第一APP进程的编码标识替换为所述第一APP进程的进程ID,并通过所述协议通道将替换目的端后的所述第二消息传递给所述第一APP进程。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述通道驱动装置接收第二内核子系统向第二APP进程发送的事件类消息;其中,所述事件类消息的源端为所述第二内核子系统的标识,目的端为所述第二APP进程的编码标识;所述通道驱动装置将所述事件类消息存储至所述第二APP进程的编码标识对应的消息缓存队列,并激活发送线程;所述发送线程判断所述第二APP进程当前是否上线;如果是,所述通道驱动装置通过所述发送线程处理所述消息缓存队列中的事件类消息。5.根据权利要求4所述的方法,其特征在于,所述发送线程判断所述第二APP进程当前是否上线的步骤,包括:所述发送线程在APP在线记录表中,查找所述第二APP进程的编码标识对应的在线记录是否为预设初始值;如果否,确定所述第二APP进程上线。6.根据权利要求1所述的方法,其特征在于,所述通道驱动装置通过所述回调接口将所述第一消息中的第一操作内容传递给所述第一内核子系统包括:所述通道驱动装置将所述第一消息传递至查找到的所述回调接口;所述回调接口解析所述第一消息得到第一操作内容,将第一操作内容交由所述第一内核子系统执行...

【专利技术属性】
技术研发人员:孙政
申请(专利权)人:新华三技术有限公司成都分公司
类型:发明
国别省市:四川,51

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

1