【技术实现步骤摘要】
跨态通信方法和通道驱动装置
本公开涉及通信
,尤其是涉及一种跨态通信方法和通道驱动装置。
技术介绍
在当前信息行业普遍使用的Linux系统架构中,内核态(也即,程序工作在内核空间)和用户态(也即,程序工作在用户空间)是操作系统的两种运行级别。操作系统将硬件内存资源按需分别划分给内核态和用户态,两者不能随意访问彼此的空间,以达到系统安全防护作用。但对于实际数据交互业务,特别是在控制层面相关业务应用中,内核态与用户态之间的数据交互却成为必不可少的环节。Netlink技术就是在这样的背景下应运而生,并逐渐成为了内核态与用户态之间的主要通信手段。然而,内核态与用户态采用传统的Netlink技术进行通信的过程,存在如下问题:在内核空间中的多个内核子系统对应用户空间中的多个应用APP的多对多场景中,消息并发交互所需的协议通道数量会受到操作系统所支持的最大协议号限制,消息并发数量受限会影响到内核态和用户态之间的跨态通信。
技术实现思路
有鉴于此,本公开的目的在于提供一种跨态通信方法和通道驱动装置,以使内核态与用户态之间的消息并发数量不再受限,从而较好地提升了跨态通信的并发效果。为了实现上述目的,本公开实施例采用的技术方案如下:第一方面,本公开实施例提供了一种跨态通信方法,所述方法应用于位于操作系统内核空间的通道驱动装置,所述通道驱动装置与所述操作系统的用户空间通过各个应用APP进程共享的协议通道传输消息,所述方法包括:所述通道驱动装置接收第一APP进程发送给第一内核子系统的第一消息;其中,所述第一消息的目的端为所述第一内核子系统的标识、源端为所述第一APP进程的标识; ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。