基于虚拟机监控器的RTOS网络共享方法技术

技术编号:36357077 阅读:47 留言:0更新日期:2023-01-14 18:13
本发明专利技术涉及基于虚拟机监控器的RTOS网络共享方法,由虚拟机监控器通过jailhouse将主机隔离为两个分区客户机,并通过jailhouse为两个客户机之间的共享内存及信号机制构建通信通道;两个客户机上分别运行Linux系统及Rtos系统。本发明专利技术通过jailhouse的共享通信模型和链路层实现的虚拟网卡驱动程序,在不改变硬件的情况下,实现了同一个网卡的共享和复用。缓解了多核分区系统上接口资源紧张的情况,为多系统的开发和运行提供了便捷的接口。为多系统的开发和运行提供了便捷的接口。为多系统的开发和运行提供了便捷的接口。

【技术实现步骤摘要】
基于虚拟机监控器的RTOS网络共享方法


[0001]本专利技术涉及虚拟网卡
,具体涉及基于虚拟机监控器的RTOS网络共享方法。

技术介绍

[0002]随着集成电路制造工艺的发展,越来越多的计算单元被集成到单一芯片上。如何更有效地使用单芯片上的资源从而获得良好的系统伸缩性成为摆在系统软件设计者前面的重要问题。目前多核系统上部署虚拟机监控器(hypervisor)是解决该问题的一种有效的解决方式。于此同时,针对工控领域,既有工业物联网、工业大数据和人工智能等重负载业务,也有高实时和高可靠性的要求。通过应用虚拟机监控器将通用Linux和RTOS两者有机地结合起来,既能满足系统任务复杂性要求,又能兼顾系统实时性。
[0003]目前使用此类hypervisor(如jailhouse)加载和运行rtos的方案并不像的全功能虚拟机管理程序(如KVM或Xen)一样,拥有丰富的接口和功能。例如,不支持过度分配资源。不能模拟没有的IO设备,当然也不支持IO复用。他们主要实现了硬件隔离和多系统分区运行的功能。但是使用虚拟机监控器运行多个系统会造成硬件资源紧张的问题。当把硬件资源与指定系统绑定时,其余系统就不能再使用。例如当一个网卡分配给RTOS系统之后,Linux就无法再使用这个网卡。

技术实现思路

[0004]为解决已有技术存在的不足,本专利技术提供了一种基于虚拟机监控器的RTOS网络共享方法,由虚拟机监控器通过jailhouse将主机隔离为两个分区

root cell客户机及non root cell Freertos客户机,并通过jailhouse为root cell客户机及non root cell Freertos客户机之间的共享内存及信号机制构建通信通道;root cell客户机上运行Linux系统,non root cell Freertos客户机上运行Rtos系统,其中,数据从root cell客户机流向non root cell Freertos客户机为网络下行,从non root cell Freertos客户机流向root cell客户机为网络上行。
[0005]其中,root cell客户机及non root cell Freertos客户机通信通道的终端编程接口均被设计为PCI设备接口,以便分区操作系统通过初始化阶段的PCI设备扫描发现。
[0006]其中,虚拟机监控器在两个客户机之间建立通信通道时,首先在两个客户机分区操作系统的地址空间中分别分配一片虚拟内存区域,并在虚拟机监控器中分配一片与虚拟内存区域大小相同的共享内存作为供两个客户机的虚拟内存区域映射的可读写物理页面。
[0007]其中,虚拟机监控器在两个客户机之间建立通信通道时,同时为PCI设备提供两个额外的状态寄存器,一个用于写入本客户机分区的状态,另一个用于读取远程客户机分区写入的状态;每个客户机及时更新本地客户机分区状态寄存器,并通过读取另一个状态寄存器确认另一个客户机分区的数据是否写入完成。
[0008]其中,两个客户机的PCI设备中增加描述类型为JAILHOUSE_PCI_TYPE_IVSHMEM的
描述符,同时,该描述符中shmem_region_start与共享内存的物理地址保持一致。
[0009]其中,non root cell Freertos客户机侧虚拟网卡的实现方式如下:Freertos通过bdf描述符读取pci设备的配置空间,通过读取配置空间得到共享内存的通信地址和msix table。
[0010]其中,所述root cell客户机上实现有一个虚拟网卡驱动,通过在root cell客户机的内核配置中增加内核对pci总线和uio驱动的支持的配置以实现虚拟网卡驱动在操作系统层面的支持。
[0011]其中,网络驱动probe匹配时,通过pci扫描发现PCI设备接口,根据bdf描述符读取pci设备的配置空间并为其分配相应的资源,这些资源包括中断资源和内存映射空间,内核拿到上述资源并将上述资源注册为一个网络设备net_device;虚拟网卡驱动的实现包括root cell客户机的net_device设备及与其对应的共享内存。
[0012]其中,root cell客户机分区所注册的网络设备net_device包括一个虚拟网卡驱动的发送缓冲区和接收缓冲区,作为root cell客户机与共享内存的接口,以及虚拟网卡进行算法调度的内存空间;root cell客户机的虚拟网卡以共享内存作为虚拟网卡通信的物理介质,在共享内存中完成与non root cell Freertos客户机系统的网络帧交换。
[0013]其中,网络下行数据传递流程如下:root cell客户机的应用层通过socket接口把数据交给TCP/IP协议栈,TCP/IP协议栈根据互联网协议地址

IP地址及地址解析协议

ARP信息将数据交给root cell客户机的虚拟网卡驱动,root cell客户机的虚拟网卡驱动将网络解包好的网络帧,通过直接存储器访问搬移到共享内存的网络下行队列中,共享内存数据就绪以后,root cell客户机的虚拟网卡驱动通过MSI

X中断通知non root cell Freertos客户机,non root cell Freertos客户机通过初始化好的pci设备,从共享内存中得到网络下行数据,将网络帧的MAC地址转换以后进行发送;网络上行数据传递流程如下:non root cell Freertos客户机将网卡收到的数据进行MAC地址转换, 然后通过初始化好的pci设备,使用DMA将发送缓冲区拷贝到共享内存的网络上行队列中,随后MSI

X中断通知root cell Linux客户机;root cell Linux客户机收到中断以后,将共享内存上行队列中的网络帧取出到虚拟网卡中;虚拟网卡根据链路层的地址解析协议

ARP过滤网络帧数据,只将传给root cellLinux客户机的网络帧送给TCP/IP协议栈,丢弃其它多余的数据;TCP/IP协议栈根据数据帧的互联网协议地址

IP地址和端口号信息传递给用户层对应的socket。
[0014]本专利技术通过jailhouse的共享通信模型和链路层实现的虚拟网卡,在不改变硬件的情况下,实现了同一个网卡的共享和复用。缓解了多核分区系统上接口资源紧张的情况,为多系统的开发和运行提供了便捷的接口。
附图说明
[0015]图1为本专利技术的RTOS网络共享方法的Hypervisor ivshmem共享内存模型。
[0016]图2为本专利技术的RTOS网络共享方法的原理图。
具体实施方式
[0017]为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。
[0018]本专利技术通过在Linux和RTOS之间添加一个虚拟网卡,达到网络本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于虚拟机监控器的RTOS网络共享方法,其特征在于:由虚拟机监控器通过jailhouse将主机隔离为两个分区

root cell客户机及non root cell Freertos客户机,并通过jailhouse为root cell客户机及non root cell Freertos客户机之间的共享内存及信号机制构建通信通道;root cell客户机上运行Linux系统,non root cell Freertos客户机上运行Rtos系统,其中,数据从root cell客户机流向non root cell Freertos客户机为网络下行,从non root cell Freertos客户机流向root cell客户机为网络上行。2.如权利要求1所述的基于虚拟机监控器的RTOS网络共享方法,其特征在于:root cell客户机及non root cell Freertos客户机通信通道的终端编程接口均被设计为PCI设备接口,以便分区操作系统通过初始化阶段的PCI设备扫描发现。3.如权利要求2所述的基于虚拟机监控器的RTOS网络共享方法,其特征在于:虚拟机监控器在两个客户机之间建立通信通道时,首先在两个客户机分区操作系统的地址空间中分别分配一片虚拟内存区域,并在虚拟机监控器中分配一片与虚拟内存区域大小相同的共享内存作为供两个客户机的虚拟内存区域映射的可读写物理页面。4.如权利要求3所述的基于虚拟机监控器的RTOS网络共享方法,其特征在于:虚拟机监控器在两个客户机之间建立通信通道时,同时为PCI设备提供两个额外的状态寄存器,一个用于写入本客户机分区的状态,另一个用于读取远程客户机分区写入的状态;每个客户机及时更新本地客户机分区状态寄存器,并通过读取另一个状态寄存器确认另一个客户机分区的数据是否写入完成。5.如权利要求3所述的基于虚拟机监控器的RTOS网络共享方法,其特征在于:两个客户机的PCI设备中增加描述类型为JAILHOUSE_PCI_TYPE_IVSHMEM的描述符,同时,该描述符中shmem_region_start与共享内存的物理地址保持一致。6.如权利要求3所述的基于虚拟机监控器的RTOS网络共享方法,其特征在于:non root cell Freertos客户机侧虚拟网卡的实现方式如下:Freertos通过bdf描述符读取pci设备的配置空间,通过读取配置空间得到共享内存的通信地址和msix table。7.如权利要求3所述的基于虚拟机监控器的RTOS网络共享方法,其特征在于:所述root cell客户机上实现有一个虚拟网卡驱动,通过在root cell客户机的内核配置中增加内核对pci总线和uio驱动的支持的配置以实现虚拟网卡驱动在操作系统...

【专利技术属性】
技术研发人员:张云飞黄磊崔彦昭战茅齐璇
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1