一种基于分区操作系统的虚拟化权限控制通信方法与流程

文档序号:26003780发布日期:2021-07-23 21:21阅读:83来源:国知局

本发明涉及操作系统分区之间安全通信技术领域,具体为一种基于分区操作系统的虚拟化权限控制通信方法。



背景技术:

在一个物理处理平台上集成来自于多个系统的软件任务,即大量应用通过分区操作系统提供的分区执行环境共存于同一硬件处理平台之上,随着越来越多的综合化模块化电子系统应用都驻留于分区操作系统提供的分区应用运行环境中,由于应用系统的复杂性,多个分区的任务很可能需要进行通信或者数据交互。

在多分区架构中,如果仅使用以系统调用形式存在、采用跨分区数据拷贝机制的ipc通信,频繁地通信行为可能导致大量的软件自陷和数据拷贝动作。由于分区具备时空隔离特性,这种分区间跨地址空间的数据拷贝带来的开销在数据量较大时是难以接收的。面对上述ipc通信存在的性能问题,目前的分区操作系统对于大规模数据通信采用共享内存方式,但是不加保护的共享内存破坏了分区间的空间隔离特性,带来了数据安全隐患。

目前主流的通用cpu都提供了mmu内存管理功能,可以灵活的建立逻辑地址和物理地址之间的映射,并且给逻辑地址空间配置多种访问权限:包括用户态的只读/读写/读写执行和内核态的只读/读写/读写执行等。分区操作系统利用mmu实现了分区地址空间之间的相互隔离。

但是如何利用访问权限的控制,实现分区之间的安全数据共享,成为当前亟待解决的问题。



技术实现要素:

(一)解决的技术问题

针对现有技术的不足,本发明提供一种基于分区操作系统的虚拟化权限控制通信方法,以解决如何利用访问权限的控制,实现分区之间安全数据共享的技术问题。

(二)技术方案

为实现上述目的,本发明提供如下技术方案:

一种基于分区操作系统的虚拟化权限控制通信方法,包括以下步骤:

步骤一,在分区操作系统的分区之间创建虚拟数据交互通道;

步骤二,以应用分区apj作为通道发送端,以服务分区spi作为通道接收端,设置服务分区spi和应用分区apj的描述符;

步骤三,通道发送端应用分区apj向通道接收端服务分区spi发送数据,具体的发送步骤包括:

步骤s1,应用分区apj内的应用任务调用系统服务接口获取所在分区的虚拟数据交互通道;

步骤s2,在获得虚拟数据交互通道的使用权后,应用任务向通道中写入数据,同时通过系统调用向虚拟机监视器发出数据发送虚中断指令;

步骤s3,虚拟机监视器在收到数据发送虚中断指令后,首先进行安全性检查,若发送端应用分区apj或者通道接收端服务分区spi均为安全分区,则做进一步的操作;

其次,虚拟机监视器修改通道发送端应用分区apj对该虚拟数据交互通道的映射属性从读写改为只读,保证数据一旦发送,发送方就无权篡改数据;

随后虚拟机监视器检查该虚拟数据交互通道所在的地址空间是否已经在接收分区的内存管理单元映射关系中;

最后,虚拟机监视器向通道接收端服务分区spi投递通信请求通知;

步骤s4,发送任务在收到虚拟机监视器通信完成通知后,将该次通信的虚拟数据交互通道的数据块状态从繁忙修改为空闲;

步骤四,通道接收端服务分区spi接收通道发送端应用分区apj发送的数据。

进一步的,所述通道接收端服务分区spi接收通道发送端应用分区apj发送的数据,具体的接收步骤包括:

步骤s1,服务分区spi内的应用任务在收到虚拟机监视器投递的通信请求通知后,根据该通知包含的具体信息,从虚拟数据交互通道中获取通信的数据;

步骤s2,在获取到指定的通信数据后,该任务通过系统调用向虚拟机监视器发送数据发送虚中断指令;

步骤s3,虚拟机监视器在收到数据发送虚中断指令后,恢复通道发送端应用分区apj对该虚拟数据交互通道的映射属性从只读改为读写,同时向发送任务投递通信完成通知。

进一步的,所述虚拟数据交互通道的创建步骤包括:

在同一硬件处理平台的分区操作系统上构建服务分区spi(i=1,2,…,m)、应用分区apj(j=1,2,…,n)

在上述的服务分区spi与应用分区apj之间创建虚拟数据交互通道。

进一步的,所述应用分区apj的描述符记录本分区通信通道的大小、剩余空间、发送等待队列、以及通信码(cc1ǁcc2)的信息;

其中,cc1cc2均为二进制序列,其长度均为l,并且l为偶数。

进一步的,所述服务分区spi的描述符包含有一个分区位图,接收任务查询位图信息,判断是否有通信请求,还有对应的通信通道的起始地址、通信数据量、以及通信码(cc1ǁcc2)的信息。

进一步的,所述安全性检查的方法包括以下步骤:

(1)检查通道发送端应用分区apj是否为安全分区,其具体的检查过程如下:

通道发送端应用分区apj首先随机选取一次性交互通信码(cciǁccj)(其中,(cciǁccj)为二进制序列,其长度为l,并且l为偶数),然后进行如下计算,具体为:

cc1=ccicc1

cc2=ccjcc2

最后将一次性验证通信码cc1cc2传输给通道接收端服务分区spi

通道接收端服务分区spi接收到一次性验证通信码cc1cc2之后,开始进行如下计算:

cc1'=cc1cc1

cc2'=cc2cc2

之后验证等式cc1'=cc2'是否成立;

若上述等式成立,则证明通道发送端应用分区apj为安全分区。

进一步的,所述数据发送虚中断指令包含的信息有:虚拟数据交互通道的起始地址、虚拟数据交互通道的大小、目标分区标识、以及发送分区标识。

(三)有益的技术效果

与现有技术相比,本发明具备以下有益的技术效果:

本发明在服务分区与应用分区之间创建具有双向交互通信功能的虚拟数据交互通道,并且使虚拟数据交互通道位于分区空间内、将相关的排队等待放在分区的应用运行环境中,实现与其他分区隔离,而且必须经过系统的主动配置才能使配置的目标分区具备对共享数据区的读权限,并且在进行数据共享之前,必须对通信分区进行安全性检查,确认进行交互通信的两个分区均为安全分区,才允许服务分区与应用分区进行双向交互通信;

从而解决了如何利用访问权限的控制,实现分区之间安全数据共享的技术问题。

具体实施方式

下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种基于分区操作系统的虚拟化权限控制通信方法,包括以下步骤:

步骤一,在分区操作系统的分区之间创建虚拟数据交互通道,具体创建步骤包括:

在同一硬件处理平台的分区操作系统上构建服务分区spi(i=1,2,…,m)、应用分区apj(j=1,2,…,n),在上述的服务分区spi与应用分区apj之间创建虚拟数据交互通道,该虚拟数据交互通道隶属于创建它的服务分区spi与应用分区apj,并且虚拟数据交互通道支持服务分区spi与应用分区apj之间的双向交互通信;

步骤二,以应用分区apj作为通道发送端,以服务分区spi作为通道接收端,设置服务分区spi和应用分区apj的描述符,具体设置步骤包括:

应用分区apj的描述符记录本分区通信通道的大小、剩余空间、发送等待队列、以及通信码(cc1ǁcc2)的信息;

服务分区spi的描述符包含有一个分区位图,接收任务查询位图信息,判断是否有通信请求,还有对应的通信通道的起始地址、通信数据量、以及通信码(cc1ǁcc2)的信息;

其中,cc1cc2均为二进制序列,其长度均为l,并且l为偶数;

步骤三,通道发送端应用分区apj向通道接收端服务分区spi发送数据,具体的发送步骤包括:

步骤s1,应用分区apj内的应用任务调用系统服务接口获取所在分区的虚拟数据交互通道,该系统服务接口从通道发送端应用分区apj的描述符中分析本分区数据通道中是否有可用的空间;

若有,则返回通道可用空间的首地址,通知应用任务获得该虚拟数据交互通道的使用权限;

若空间不足,则将应用任务加入通信等待队列,直到有足够的空间后重新激活应用任务;

步骤s2,在获得虚拟数据交互通道的使用权后,应用任务向通道中写入数据,同时通过系统调用向虚拟机监视器发出数据发送虚中断指令,该虚中断包含的信息有:虚拟数据交互通道的起始地址、虚拟数据交互通道的大小、目标分区标识,同时将该虚拟数据交互通道中本次使用的内存状态从空闲变为繁忙,以实现修改本分区的通道发送端应用分区apj的描述符的目的;

步骤s3,虚拟机监视器在收到数据发送虚中断指令后,首先进行安全性检查,若发送端应用分区apj或者通道接收端服务分区spi均为安全分区,则做进一步的操作,若有一方不是安全分区,虚拟机监视器中断本次通信同时向发送方投递通信失败通知;

进一步的,上述安全性检查的方法包括以下步骤:

(1)检查通道发送端应用分区apj是否为安全分区,其具体的检查过程如下:

通道发送端应用分区apj首先随机选取一次性交互通信码(cciǁccj)(其中,(cciǁccj)为二进制序列,其长度为l,并且l为偶数),然后进行如下计算,具体为:

cc1=ccicc1

cc2=ccjcc2

最后将一次性验证通信码cc1cc2传输给通道接收端服务分区spi

通道接收端服务分区spi接收到一次性验证通信码cc1cc2之后,开始进行如下计算:

cc1'=cc1cc1

cc2'=cc2cc2

之后验证等式cc1'=cc2'是否成立;

若上述等式成立,则证明通道发送端应用分区apj为安全分区;

(2)检查通道接收端服务分区spi是否为安全分区,其具体的检查过程参照上述的步骤(1);

其次,虚拟机监视器修改通道发送端应用分区apj对该虚拟数据交互通道的映射属性从读写改为只读,保证数据一旦发送,发送方就无权篡改数据;

随后虚拟机监视器检查该虚拟数据交互通道所在的地址空间是否已经在接收分区的内存管理单元映射关系中,若没有,将该段数据区映射给通道接收端服务分区spi

最后,虚拟机监视器向通道接收端服务分区spi投递通信请求通知,并且向通道接收端服务分区spi的描述符中添加包含有虚拟数据交互通道的起始地址、大小的信息;

步骤s4,发送任务在收到虚拟机监视器通信完成通知后,将该次通信的虚拟数据交互通道的数据块状态从繁忙修改为空闲,以实现维护本分区通道发送端应用分区apj描述符的目的;

步骤四,通道接收端服务分区spi接收通道发送端应用分区apj发送的数据,具体的接收步骤包括:

步骤s1,服务分区spi内的应用任务在收到虚拟机监视器投递的通信请求通知后,根据该通知包含的具体信息,从虚拟数据交互通道中获取通信的数据;

步骤s2,在获取到指定的通信数据后,该任务通过系统调用向虚拟机监视器发送数据发送虚中断指令,表示通信数据已被读取,该虚中断包含的信息有:虚拟数据交互通道的起始地址、虚拟数据交互通道的大小、以及发送分区标识;

步骤s3,虚拟机监视器在收到数据发送虚中断指令后,恢复通道发送端应用分区apj对该虚拟数据交互通道的映射属性从只读改为读写,同时向发送任务投递通信完成通知;

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1