微内核进程间通讯方法和系统技术方案

技术编号:21453684 阅读:47 留言:0更新日期:2019-06-26 04:42
本发明专利技术提供了一种微内核进程间通讯方法和系统,借助硬件启动虚拟化环境,将微内核构造成次内核,所述次内核之下构造根内核,所述根内核能够与虚拟化环境交互;为不同的进程构造对应的扩展页表,所述进程分成客户进程和服务器进程,将客户进程的页表基地址填入服务器进程的扩展页表中;提供面向用户态进程的接口,所述接口能够在用户态的地址空间中进行进程间切换;对进程中的代码页进行扫描,并替换非法的代码跳转指令。本发明专利技术利用硬件虚拟化技术,利用扩展页表控制用户态进程的页表内容,实现无需修改进程页表基地址的进程间切换,在对现有硬件架构无需做任何修改的情况下,大幅提升微内核中进程间通信的性能。

【技术实现步骤摘要】
微内核进程间通讯方法和系统
本专利技术涉及操作系统微内核
,具体地,涉及一种微内核进程间通讯方法和系统,尤其是涉及一种高效且安全的微内核进程间通讯方法和系统。
技术介绍
微内核自上世纪提出以来,经过了30年的研究与发展,其关键的设计是将操作系统内核只提供最基础的机制,并将大部分操作系统内核的其他功能从内核态移到用户态服务器进程中。这意味着一个服务器进程内发生的错误不会影响到其他服务器进程,更不会影响到微内核服务器微内核。因此,这样的设计能够增强微内核的鲁棒性。同时,将大部分功能移除内核态,可以有效减小可信计算基(TCB),使得系统更不容易被攻击,也更容易被形式化验证。基于上述优势,微内核被广泛应用于高度依赖于安全与可靠性的领域,例如航空、车载系统、医疗设备。在一个微内核中,任何两个进程之间的通讯都依赖于进程间通讯机制,但是目前已知该机制是运行时开销的重要来源。一次进程间通讯首先需要调用系统调用陷入微内核,之后微内核查找到目标进程,再将消息拷贝到目标进程,同时还需要两次进程地址空间切换(如果要防御最近的熔断Meltdown攻击),最后回到用户态。如果要回到原进程,这样的过程还需要完整的重复一遍。研究人员一直在探索更加高效的优化方案,以便减少微内核进程间通讯的开销。目前已知软件和硬件两类优化方案。目前已知性能最佳的微内核进程间通讯方法由seL4操作系统实现,该方案完全通过软件实现,目标将所有不必要的操作从进程间通讯的路径中去除。seL4为Call和ReplyWait系统调用使用快速通道的技术方法,该方法会直接将消息传送给目标进程,同时不需要调度。所有的传输的数据存放在寄存器中,也消除了数据拷贝的开销。但是seL4存在缺陷,首先,快速通道技术依然需要下陷进入内核,因此它的性能开销也较大;其次,快速通道路径只适用于部分系统调用(Call和ReplyWait),同时只能传输少量数据,当使用其它系统调用或者传输数据超出一定限制,只能使用性能开销更大的慢速通道技术,也就是传统的微内核进程间通讯方法。第三,当通讯的两个进程运行在不同的处理器上,一次进程间通讯需要使用跨处理器中断(Inter-ProcessorInterrupt),该中断会极大的影响进程间通讯的性能。基于硬件的修改方案可以大大提高微内核进程间通讯的开销,dIPC项目通过修改硬件的方式将所有进程间通讯参与方放置在同一个虚拟地址空间,之后的进程间通讯完全由硬件实现,允许一个进程直接调用另一个进程的函数,而无需操作系统内核的帮助。进程间的隔离依赖于dIPC实现的标签内存,该内存也需要通过修改硬件的方式实现。但是,使用dIPC需要对软件做出较大修改,以便利用dIPC提出的接口。同时也需要对操作系统内核做出较大修改,以便适应新的进程间通讯方式。修改硬件的技术手段距离真正被大规模使用依然需要长时间的时间检验,同时该方法与直接使用成熟商用硬件的方法相比,较难得到部署。因此该方法很难在短时间内得到接受。与本申请相关的现有技术是专利文献CN103425538A,公开了一种进程通讯方法,根据进程通讯请求分配内存空间;将通讯数据存入所述内存空间;将所述内存空间的逻辑地址写入消息队列;通过从所述消息队列中读取的逻辑地址访问所述通讯数据。上述进程通讯方法及系统,在接收到进程通讯请求时分配用于存储通讯数据的内存空间,这将不需要预先划分通讯数据的存储空间,将内存空间的逻辑地址写入消息队列中,通过在消息队列中逻辑地址的读取进行通讯数据的访问,以在消息队列的作用下使得数据访问进程通过对消息队列中逻辑地址的逐一读取有序访问通讯数据,在多个进程之间的通讯过程中不需要进行通讯数据的复制,大大地提高了数据共享的灵活性。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种微内核进程间通讯方法和系统。根据本专利技术提供的一种微内核进程间通讯方法,包括:轻量级虚拟化步骤:借助硬件启动虚拟化环境,将微内核构造成次内核,所述次内核之下构造根内核,所述根内核能够与虚拟化环境交互;扩展页表步骤:为不同的进程构造对应的扩展页表,所述进程分成客户进程和服务器进程,将客户进程的页表基地址填入服务器进程的扩展页表中;快速通讯步骤:提供面向用户态进程的接口,所述接口能够在用户态的地址空间中进行进程间切换;二进制修改步骤:对进程中的代码页进行扫描,并替换非法的代码跳转指令。优选地,所述轻量级虚拟化步骤包括:虚拟层下陷消除步骤:对虚拟层下陷进行处理;根内核初始化步骤:在次内核启动后对根内核进行初始化,动态将次内核移动到非特权模式下,根内核提供用于管理扩展页表的接口;进程识别步骤:为进程分配一个内存页用于记录进程的身份信息,记为身份信息页,并将所述身份信息页映射到所述进程扩展页表中以及次内核的虚拟地址空间中,使得次内核能够通过虚拟地址访问当前下陷进程的身份信息页以识别下陷进程的身份信息。所述身份信息页在不同进程扩展页表中拥有相同的客户物理地址。优选地,所述对虚拟层下陷进行处理中,对于特权指令造成的下陷,根内核通过配置VMCS域令特权指令的执行不造成虚拟层下陷;对于硬件事件造成的下陷,根内核允许硬件向非特权模式下的次内核插入外部中断;对于访问扩展页表违规造成的下陷,根内核使用大容量页表将物理内存地址映射给次内核。优选地,所述扩展页表步骤中包括:初始化步骤:初始化时对服务器进程注册到次内核,当客户进程进行注册时,次内核通知根内核为客户进程、服务器进程分别复制扩展页表,添加扩展页表映射;切换进程步骤:客户进程访问跳板代码页进行进程间切换,跳板代码页调用VMFUNC指令将扩展页表指针从客户进程的扩展页表改成指向服务器进程的扩展页表,无需修改CR3寄存器值。优选地,所述快速通讯步骤,对于小数据量传输,所述小数据量通过CPU寄存器传输,对于大数据量传输,分配共享缓冲区,将共享缓冲区的地址映射到客户进程及服务器进程的扩展页表中。优选地,所述二进制修改步骤中,对于植入的单条VMFUNC指令,将所述单条VMFUNC指令替换为三条空指令;对于由相邻指令拼凑的非法指令,令相邻指令之间插入一个空指令;对于存在于一条长指令之中的非法指令,令所述长指令替换成多个等价的指令后再处理。优选地,所述次内核是运行在非特权模式下的微内核;所述根内核运行在特权模式下的,包括下陷处理单元、扩展表管理单元、自我虚拟化单元;所述下陷处理单元处理次内核引起的下陷,包括访问扩展页表违规和使用特权指令下陷;所述扩展表管理单元动态管理次内核、及次内核内进程的扩展页表;所述自我虚拟化单元在系统启动时动态将次内核降级为非特权模式并初始化其VMCS和扩展页表。根据本专利技术提供的一种微内核进程间通讯系统,包括:轻量级虚拟化模块:借助硬件启动虚拟化环境,将微内核构造成次内核,所述次内核之下构造根内核,所述根内核能够与虚拟化环境交互;扩展页表模块:为不同的进程构造对应的扩展页表,所述进程分成客户进程和服务器进程,将客户进程的页表基地址填入服务器进程的扩展页表中;快速通讯模块:提供面向用户态进程的接口,所述接口能够在用户态的地址空间中进行进程间切换;二进制修改模块:对进程中的代码页进行扫描,并替换非法的代码跳转指令。与现有技术相比,本专利技术具有如下的有益效果:1、对于存在已久的本文档来自技高网
...

【技术保护点】
1.一种微内核进程间通讯方法,其特征在于,包括:轻量级虚拟化步骤:借助硬件启动虚拟化环境,将微内核构造成次内核,所述次内核之下构造根内核,所述根内核能够与虚拟化环境交互;扩展页表步骤:为不同的进程构造对应的扩展页表,所述进程分成客户进程和服务器进程,将客户进程的页表基地址填入服务器进程的扩展页表中;快速通讯步骤:提供面向用户态进程的接口,所述接口能够在用户态的地址空间中进行进程间切换;二进制修改步骤:对进程中的代码页进行扫描,并替换非法的代码跳转指令。

【技术特征摘要】
1.一种微内核进程间通讯方法,其特征在于,包括:轻量级虚拟化步骤:借助硬件启动虚拟化环境,将微内核构造成次内核,所述次内核之下构造根内核,所述根内核能够与虚拟化环境交互;扩展页表步骤:为不同的进程构造对应的扩展页表,所述进程分成客户进程和服务器进程,将客户进程的页表基地址填入服务器进程的扩展页表中;快速通讯步骤:提供面向用户态进程的接口,所述接口能够在用户态的地址空间中进行进程间切换;二进制修改步骤:对进程中的代码页进行扫描,并替换非法的代码跳转指令。2.根据权利要求1所述的微内核进程间通讯方法,其特征在于,所述轻量级虚拟化步骤包括:虚拟层下陷消除步骤:对虚拟层下陷进行处理;根内核初始化步骤:在次内核启动后对根内核进行初始化,动态将次内核移动到非特权模式下,根内核提供用于管理扩展页表的接口;进程识别步骤:为进程分配一个内存页用于记录进程的身份信息,记为身份信息页,并将所述身份信息页映射到所述进程扩展页表中,以及次内核的虚拟地址空间中,使得次内核能够通过虚拟地址访问当前下陷进程的身份信息页以识别下陷进程的身份信息。3.根据权利要求2所述的微内核进程间通讯方法,其特征在于,所述对虚拟层下陷进行处理中,对于特权指令造成的下陷,根内核通过配置VMCS域令特权指令的执行不造成虚拟层下陷;对于硬件事件造成的下陷,根内核允许硬件向非特权模式下的次内核插入外部中断;对于访问扩展页表违规造成的下陷,根内核使用页表将物理内存地址映射给次内核。4.根据权利要求1所述的微内核进程间通讯方法,其特征在于,所述扩展页表步骤中包括:初始化步骤:初始化时将服务器进程注册到次内核,当客户进程进行注册时,次内核通知根内核为客户进程、服务器进程分别复制扩展页表,添加扩展页地址映射;切换进程步骤:客户进程访问跳板代码页进行进程间切换,跳板代码页调用VMFUNC指令将扩展页表指针从客户进程的扩展页表改成指向服务器进程的扩展页表,无需修改CR3寄存器值。5.根据权利要求1所述的微内核进程间通讯方法,其特征在于,所述...

【专利技术属性】
技术研发人员:陈海波糜泽羽臧斌宇管海兵
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

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

1