CN115309511B - 基于Xen的数据交互方法、装置、存储介质以及电子设备 - Google Patents
基于Xen的数据交互方法、装置、存储介质以及电子设备 Download PDFInfo
- Publication number
- CN115309511B CN115309511B CN202211186828.1A CN202211186828A CN115309511B CN 115309511 B CN115309511 B CN 115309511B CN 202211186828 A CN202211186828 A CN 202211186828A CN 115309511 B CN115309511 B CN 115309511B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- shared directory
- data
- read
- domain identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000003993 interaction Effects 0.000 title claims abstract description 46
- 238000013475 authorization Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 26
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于Xen的数据交互方法、装置、存储介质以及电子设备。其中,该方法包括:在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;为第一域标识符对应的第一虚拟机分配对共享目录路径的读写权限;控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。本申请解决了由于相关技术中基于修改Domain 0的内核进行数据共享导致的***运行不稳定,通信容错率较低的技术问题。
Description
技术领域
本申请涉及通信领域,具体而言,涉及一种基于Xen的数据交互方法、装置、存储介质以及电子设备。
背景技术
图1是相关技术中进行数据共享所采用的***架构,如图1所示,大部分基于Xen方案数据共享都是采用Domain0 和 DomainU 操作的,一般的,都是基于修改Domain0内核驱动,基于共享环然后通过事件通道通知进行数据共享,但这种通过修改内核前后端的方式,容易造成***的不稳定,导致通信容错率较低,影响通信的正常使用。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于Xen的数据交互方法、装置、存储介质以及电子设备,以至少解决由于相关技术中基于修改Domain 0的内核进行数据共享导致的***运行不稳定,通信容错率较低的技术问题。
根据本申请实施例的一个方面,提供了一种基于Xen的数据交互方法,包括:在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;为第一域标识符对应的第一虚拟机分配对共享目录的读写权限;控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。
可选地,在控制第一虚拟机对共享目录执行数据读写操作之前,还包括:获取目标对象的操作事件,分配与操作事件对应的硬件处理资源,其中,操作事件用于指示目标对象待实现的目标业务;确定与目标业务关联的第二虚拟机,解析第二虚拟机的第二域标识符;基于第二域标识符、授权表与事件通道创建设备IO共享环,将设备IO共享环追加至共享目录下。
可选地,分配与操作事件对应的硬件处理资源,包括:对目标业务采用预设字符进行标识,通过预设函数调用Domain 0的内核态,基于内核态向预设字符对应的目标业务分配硬件处理资源。
可选地,控制第一虚拟机对共享目录执行数据读写操作,包括:控制第二虚拟机读取第一虚拟机的授权表与事件通道,建立第二虚拟机与第一虚拟机的连接生成中断唤醒;根据中断唤醒更新第二虚拟机的状态。
可选地,还包括:控制第一虚拟机读取第二域标识符在共享目录下的引用内容;通过引用内容建立第二虚拟机与第一虚拟机的连接。
可选地,控制第一虚拟机对共享目录执行数据读写操作,包括:通过授权表读取共享目录下硬件处理资源引用的数据内容;基于硬件处理资源引用的数据内容更新第二虚拟机的状态。
可选地,为第一域标识符对应的第一虚拟机分配对共享目录的读写权限,包括:获取预设字符数据组,基于预设字符数据组存储共享目录下的数据内容,将第一域标识符存储至预设字符数据组存储。
根据本申请实施例的另一方面,还提供了一种基于Xen的数据交互方法,包括:第一虚拟机发送业务请求至第二虚拟机;在确定接收到第二虚拟机针对业务请求的响应的情况下,确定第一虚拟机对应的第一域标识符,获取共享目录下第一域标识符所引用的数据文件;将数据内容发送至第二虚拟机,基于数据内容对第二虚拟机的状态进行更新。
根据本申请实施例的另一方面,还提供了一种基于Xen的数据交互装置,包括:创建模块,用于在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;启动模块,用于在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;分配模块,用于为第一域标识符对应的第一虚拟机分配对共享目录的读写权限;控制模块,用于控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行任意一种基于Xen的数据交互方法。
根据本申请实施例的另一方面,还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现任意一种基于Xen的数据交互方法。
在本申请实施例中,采用共享目录的方式,通过在Domain 0初始化中过程的创建共享目录,并在各个虚拟机初始化的时候往共享目录写入内容,并赋予每个虚拟机对共享目录的读写权限,达到了基于引用共享目录的数据内容实现数据共享的目的,从而实现了避免对Domain 0的修改,以确保***的稳定运行,保证不影响正常通信的技术效果,进而解决了由于相关技术中基于修改Domain 0的内核进行数据共享导致的***运行不稳定,通信容错率较低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是相关技术中进行数据共享所采用的***架构的示意图;
图2是根据本申请实施例的基于Xen的数据交互方法的流程示意图;
图3是本申请一实施例中执行投屏业务的整体流程图;
图4是根据本申请实施例的另一种基于Xen的数据交互方法的流程示意图;
图5是根据本申请实施例的一种基于Xen的数据交互装置的结构示意图;
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于本领域技术人员更好地理解本申请相关实施例,现将本申请可能涉及的技术术语或者部分名词解释如下:
Xen是一个开源的VMM,是由剑桥大学实验室开发的一个项目,是一个直接运行在计算机硬件之上的用以替代操作***的软件层,它能够在计算机硬件上并发的运行多个GuestOS。在Xen的使用方式中,分为完全虚拟化与半虚拟化(超虚拟化)两种。全虚拟化是由Hypervisor提供所有的虚拟硬件,操作***不经过任何修改,Hypervisor可以部署在裸机,也可以部署在操作***,各个GuestOS完全隔离,虚机并不知道自己运行在虚拟环境,虚拟机的指令需要翻译为CPU可以识别的指令,性能低于裸机;半虚拟化GuestOS集成了虚拟化相关代码,是修改过的操作***,使其发送出的指令最优,可以直接被CPU理解,减小了消耗,便于在虚拟化环境运行,这种模式,虚拟机知道自己运行在虚拟环境,可以感知Hypervisor以及其他半虚拟化的虚拟机,由于这种模式虚拟机和Hypervisor可以更好的配合,Hypervisor的压力更小,所以性能也最高,接近裸机的性能了,但是不是所有操作***都可以半虚拟化。
I/O共享环:在不同Domain之间存在的一块固定的共享内存,用于各个虚拟机之间传递I/O请求和响应。I/O共享环利用生产者和消费者的机理来产生发送以及响应IO请求。
授权表(grant table):在不同Dom之间高效传输IO数据的机制。通过授权表把内存映射到目的Dom或者把内存传送到目的Dom。
事件通道(event channel,简称evtchn):用于各个虚拟机之间异步事件通知机制。
XenStore 是在 Dom0 中所运行的 VM Guest 与管理工具之间共享的配置和状态信息数据库。VM Guest 和管理工具对XenStore 进行读取和写入以传达配置信息、状态更新和状态更改。XenStore 数据库由 Dom0 管理,支持读取和写入密钥等简单操作。可以通过监测关注项将XenStore 中发生的任何更改通知给 VM Guest 和管理工具.
Automotive Grade Linux (简称AGL)是一个由Linux基金会主导的一个开源项目。这是一个由汽车制造商,供应商,技术公司共同组建的开发团体开发的项目。AGL是一个为车载环境开发的操作***,我们通常称这种***叫做车载信息娱乐***(In-VehicleInfotainment,简称IVI)。
Host OS(主人操作***)就是安装在你硬件设备上的***,而Guest OS(客人操作***)则是安装在虚拟机(VM)上面的***。例如你的电脑上的Windows***就是作为HostOS,如果在你的电脑设备上拓展出一些虚拟机,并在虚拟机上安装了 Windows XP,那么Windows XP 就叫做 Guest OS。
根据本申请实施例,提供了一种基于Xen的数据交互方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的基于Xen的数据交互方法,如图2所示,该方法包括如下步骤:
步骤S202,在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;
需要说明的是,授权表的英文为grant table,事件通道的英文为event channel,简写为evtchn,本申请一些实例中,可用grant table表示授权表,evtchn表示事件通道,其和中文表示的内容相同。
步骤S204,在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;
步骤S206,为第一域标识符对应的第一虚拟机分配对共享目录的读写权限;
步骤S208,控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。
该数据交互方法中,采用共享目录的方式,通过在Domain 0初始化中过程的创建共享目录,并在各个虚拟机初始化的时候往共享目录写入内容,并赋予每个虚拟机对共享目录的读写权限,达到了基于引用共享目录的数据内容实现数据共享的目的,从而实现了避免对Domain 0的修改,以确保***的稳定运行,保证不影响正常通信的技术效果,进而解决了由于相关技术中基于修改Domain 0的内核进行数据共享导致的***运行不稳定,通信容错率较低的技术问题。
本申请一些实施例中,在控制第一虚拟机对共享目录执行数据读写操作之前,可以获取目标对象的操作事件,分配与操作事件对应的硬件处理资源,其中,操作事件用于指示目标对象待实现的目标业务;确定与目标业务关联的第二虚拟机,解析第二虚拟机的第二域标识符;基于第二域标识符、授权表与事件通道创建设备IO共享环,将设备IO共享环追加至共享目录下。
例如,第一虚拟机可以为Anroid***版本的虚拟机,第二虚拟机可以为AGL***版本的虚拟机。上述操作事件为对某一应用进行投屏,则由于应用投屏需要使用GPU进行渲染,则上述硬件处理资源就为GPU单元,又例如,上述操作事件为对定位某地的GPS地理坐标,则分配的硬件处理资源可以有CPU,GPS单元等。
可选地,分配与操作事件对应的硬件处理资源,包括:对目标业务采用预设字符进行标识,通过预设函数调用Domain 0的内核态,基于内核态向预设字符对应的目标业务分配硬件处理资源。需要说明的是,由于***中同时运行的业务可以有多个,因此,可以对目标业务进行标识,以便于根据业务对应的标识向不同的业务匹配不同的硬件处理资源。
本申请一可选的实施例中,控制第一虚拟机对共享目录执行数据读写操作,可以通过如下步骤实现,具体的,可控制第二虚拟机读取第一虚拟机的授权表与事件通道,建立第二虚拟机与第一虚拟机的连接生成中断唤醒;根据中断唤醒更新第二虚拟机的状态。可以理解的,授权表与事件通道是Xen原有的通信机制,因此,可以通过这些原有的通信机制建立第一虚拟机与第二虚拟机的连接,利用中断唤醒实现数据的交互。
作为另一种可选的实施方式,还可以控制第一虚拟机读取第二域标识符在共享目录下的引用内容;通过引用内容建立第二虚拟机与第一虚拟机的连接。
本申请一些实施例中,控制第一虚拟机对共享目录执行数据读写操作,可以为通过授权表读取共享目录下硬件处理资源引用的数据内容;基于硬件处理资源引用的数据内容更新第二虚拟机的状态。例如,在执行投屏业务时,可以AGL端通过grant table得到共享目录下面的显存引用data_ref,这个就是Android端的显存,将这个显存通过grant转换成AGL格式的显存,然后给AGL的GPU进行渲染。
可选地,为第一域标识符对应的第一虚拟机分配对共享目录的读写权限,包括:获取预设字符数据组,基于预设字符数据组存储共享目录下的数据内容,将第一域标识符存储至预设字符数据组存储。即将标识符存储到共享目录下后,就可访问对端的数据内容。作为另一种可选的实施方式,可将是域标识符domain_id 和guest_name同时存储至预设字符数据组中,存储后相当于获取到了授权,即可访问对端的数据内容data_ref。
举例而言,在Domain0初始化的过程中,通过函数调用的方式来创建一个(/local/domain/shm)共享目录,同时用一个长度为256字符数据存储(char domain_cfg[256])目录下内容,创建的过程中得到Xen_domid 是一个整型数值,标记虚拟机创建时候的id,如果Xen_domid是0 表示就是domain0虚拟机,那么就通过Xenstore_mkdir 创建共享目录,同时赋予读写权限,进一步的,可利用上面的字符数组存储guest_name, Xen_domid。同一时刻,AGL虚拟机和Android虚拟机也是在运行的,虚拟机的相关信息是在一个配置文件里面(虚拟机的名字,启动的模式等),初始化过程中会解析配置文件得到Xen_domid 和 guest_name,同样用上面的字符数组的存储guest_name, Xen_domid,保存的采用叠加的方式,最后可得到所有虚拟机的guest_name, Xen_domid 通过遍历的方式针对AGL 和 Android 要相互的通信的虚拟机赋予共享目录读写的权限,可以理解的,为了避免其它虚拟机如果修改内容,导致共享数据出问题,故只对AGL和Android 赋予权限,同时将domain_cfg保存的内容,写到共享目录下面。
图3是本申请一实施例中执行投屏业务的整体流程图,如图3所示:android 和AGL均是虚拟化出来的两个 Guest OS,投屏业务为把android显示的数据通过Xen虚拟化技术结合共享目录下面保存的节点信息传入到AGL端,由AGL端进行显示,具体的:
投屏开始,手势服务可响应用户的操作,例如,用户三指向左向右滑动后,可确定手指区域来获取这个要投屏的应用,然后将包名和投屏开始的动作告诉投屏服务,投屏服务得到消息后,就会根据对应包名创建虚拟屏,这里会在上层填充数据之后接收到onFrameAvailable回调,此外,可以从lockNextBuffer获取一块buffer,需要说明的事,该buffer为图像绘制完成后的内存显示,其用于图像绘制完后做合成使用。
同时,可添加虚拟显示和分配TTM显存,分配这块显存的时候,用户态会调用到内核态,例如,通过一个ioctl函数调用,通过VIRGL_BIND_SHARE_BUFFER标识一下。
if (params.bind & VIRGL_BIND_SHARE_BUFFER) {
qobj->sharefb = true;
virtio_gpu_resource_gref_init(qobj);
}
需要说明的是,该标识的作用就是为了区分于其它业务,避免引起业务冲突。
进一步的,解析投屏对端的domid,利用grant和evtchn的信息创建设备IO环,追加到共享目录下内容后面,回环用于各个虚拟机进行通信,界面显示数据也会不断通过Vsync更新,数据更新后,合成虚拟屏图像也会更新,同时将图像数据TTM内存发送到对端,需要说明的是,将图像数据发送至对端,就是通过写入共享帧grant table信息,该共享帧就是一个显存引用。
需要说明的是,上述追加为添加字符到共享目录字符串的后面,比如 domains =[id = 1, name =android];后面追加grant = 123 evtchn =456,则最后可形成Domains =[id = 1, name =android ] grant 123 evtchn 456。
对于AGL端而言,AGL虚拟机启动后,可创建用户态访问共享帧的设备,之后可接收软总线数据的请求(即投屏的请求),然后,读取发送端的grant和evtchn,通过去读取android 对应domain_id下的引用,然后与发送端设备IO建立连接,产生中断唤醒,该中断唤醒用于读取共享帧的请求,更新帧状态,AGL端可通过grant table得到共享目录下面的显存引用data_ref(即Android端的显存),并可将这个显存通过grant转换成AGL格式的显存,然后对AGL的GPU进行渲染。
图4是根据本申请实施例的一种基于Xen的数据交互方法,如图4所示,该数据交互方法包括:
S402,第一虚拟机发送业务请求至第二虚拟机;
S404,在确定接收到第二虚拟机针对业务请求的响应的情况下,确定第一虚拟机对应的第一域标识符,获取共享目录下第一域标识符所引用的数据文件;
S406,将数据内容发送至第二虚拟机,基于数据内容对第二虚拟机的状态进行更新。
该数据交互方法中,第一虚拟机发送业务请求至第二虚拟机,在确定接收到第二虚拟机针对业务请求的响应的情况下,可确定第一虚拟机对应的第一域标识符,然后,获取共享目录下第一域标识符所引用的数据文件,将数据内容发送至第二虚拟机,最后,基于数据内容对第二虚拟机的状态进行更新,达到了基于引用共享目录的数据内容实现数据共享的目的,从而实现了避免对Domain 0的修改,以确保***的稳定运行,保证不影响正常通信的技术效果,进而解决了由于相关技术中基于修改Domain 0的内核进行数据共享导致的***运行不稳定,通信容错率较低的技术问题。
图5是根据本申请实施例的一种基于Xen的数据交互装置,如图5所示,该数据交互装置包括:
创建模块50,用于在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;
启动模块52,用于在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;
分配模块54,用于为第一域标识符对应的第一虚拟机分配对共享目录的读写权限;
控制模块56,用于控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。
该数据交互装置中,创建模块50,用于在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;启动模块52,用于在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;分配模块54,用于为第一域标识符对应的第一虚拟机分配对共享目录的读写权限;控制模块56,用于控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互,达到了基于引用共享目录的数据内容实现数据共享的目的,从而实现了避免对Domain 0的修改,以确保***的稳定运行,保证不影响正常通信的技术效果,进而解决了由于相关技术中基于修改Domain 0的内核进行数据共享导致的***运行不稳定,通信容错率较低的技术问题。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行任意一种基于Xen的数据交互方法。
具体地,上述存储介质用于存储以下功能的程序指令,实现以下功能:
在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;为第一域标识符对应的第一虚拟机分配对共享目录路径的读写权限;控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。
可选地,在本实施例中,上述存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。上述存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
在本申请一示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述任一项的基于Xen的数据交互方法。
可选地,该计算机程序在被处理器执行时可实现如下步骤:
在特权域Domain 0初始化的过程中创建共享目录,其中,共享目录用于存储通过授权表与事件通道可读取到的数据文件;在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定第一虚拟机对应的第一域标识符;为第一域标识符对应的第一虚拟机分配对共享目录路径的读写权限;控制第一虚拟机对共享目录执行数据读写操作,以实现与第二虚拟机的信息交互。
根据本申请的实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项的基于Xen的数据交互方法。
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入设备输出设备和上述处理器连接。
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如基于Xen的数据共享方法。例如,在一些实施例中,基于Xen的数据共享方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的基于Xen的数据共享方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于Xen的数据共享方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种基于Xen的数据交互方法,其特征在于,包括:
在特权域Domain 0初始化的过程中创建共享目录,其中,所述共享目录用于存储通过授权表与事件通道可读取到的数据文件;
在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定所述第一虚拟机对应的第一域标识符;
为所述第一域标识符对应的第一虚拟机分配对所述共享目录的读写权限;
获取用户的操作事件,分配与所述操作事件对应的硬件处理资源,其中,所述操作事件用于指示所述用户待实现的目标业务;
确定与所述目标业务关联的第二虚拟机,解析所述第二虚拟机的第二域标识符;基于所述第二域标识符、所述第一虚拟机的授权表与所述第一虚拟机的事件通道创建设备IO共享环,将所述设备IO共享环追加至所述共享目录下;
控制所述第一虚拟机对所述共享目录执行数据读写操作,以实现与第二虚拟机的信息交互,其中,所述第一虚拟机与所述第二虚拟机通过如下方式确定实现信息交互:所述第一虚拟机发送业务请求至所述第二虚拟机;在确定接收到所述第二虚拟机针对所述业务请求的响应的情况下,确定所述第一虚拟机对应的第一域标识符,获取共享目录下所述第一域标识符所引用的数据文件;将所述数据文件发送至所述第二虚拟机,基于所述数据文件对所述第二虚拟机的状态进行更新。
2.根据权利要求1所述的方法,其特征在于,分配与所述操作事件对应的硬件处理资源,包括:
对所述目标业务采用预设字符进行标识,通过预设函数调用所述Domain 0的内核态,基于所述内核态向所述预设字符对应的所述目标业务分配所述硬件处理资源。
3.根据权利要求1所述的方法,其特征在于,控制所述第一虚拟机对所述共享目录执行数据读写操作,包括:
控制所述第二虚拟机读取所述第一虚拟机的授权表与事件通道,建立所述第二虚拟机与第一虚拟机的连接生成中断唤醒;
根据所述中断唤醒更新所述第二虚拟机的状态。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括;
控制所述第一虚拟机读取所述第二域标识符在所述共享目录下的引用内容;通过所述引用内容建立所述第二虚拟机与所述第一虚拟机的连接。
5.根据权利要求1所述的方法,其特征在于,控制所述第一虚拟机对所述共享目录执行数据读写操作,包括:
通过所述授权表读取所述共享目录下所述硬件处理资源引用的数据内容;
基于所述硬件处理资源引用的数据内容更新所述第二虚拟机的状态。
6.根据权利要求1所述的方法,其特征在于,为所述第一域标识符对应的所述第一虚拟机分配对所述共享目录的读写权限,包括:
获取预设字符数据组,基于所述预设字符数据组存储所述共享目录下的数据内容,将所述第一域标识符存储至所述预设字符数据组存储。
7.一种基于Xen的数据交互装置,其特征在于,包括:
创建模块,用于在特权域Domain 0初始化的过程中创建共享目录,其中,所述共享目录用于存储通过授权表与事件通道可读取到的数据文件;
启动模块,用于在普通域Domain U启动客户操作***对应的第一虚拟机,至少确定所述第一虚拟机对应的第一域标识符;
分配模块,用于为所述第一域标识符对应的第一虚拟机分配对所述共享目录的读写权限;
控制模块,用于控制所述第一虚拟机对所述共享目录执行数据读写操作,以实现与第二虚拟机的信息交互,其中,所述第一虚拟机与所述第二虚拟机通过如下方式确定实现信息交互:所述第一虚拟机发送业务请求至所述第二虚拟机;在确定接收到所述第二虚拟机针对所述业务请求的响应的情况下,确定所述第一虚拟机对应的第一域标识符,获取共享目录下所述第一域标识符所引用的数据文件;将所述数据文件发送至所述第二虚拟机,基于所述数据文件对所述第二虚拟机的状态进行更新;
在控制所述第一虚拟机对所述共享目录执行数据读写操作之前还包括:获取用户的操作事件,分配与所述操作事件对应的硬件处理资源,其中,所述操作事件用于指示所述用户待实现的目标业务;
确定与所述目标业务关联的第二虚拟机,解析所述第二虚拟机的第二域标识符;基于所述第二域标识符、所述第一虚拟机的授权表与所述第一虚拟机的事件通道创建设备IO共享环,将所述设备IO共享环追加至所述共享目录下。
8.一种非易失性存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6中任意一项所述基于Xen的数据交互方法。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的基于Xen的数据交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186828.1A CN115309511B (zh) | 2022-09-28 | 2022-09-28 | 基于Xen的数据交互方法、装置、存储介质以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186828.1A CN115309511B (zh) | 2022-09-28 | 2022-09-28 | 基于Xen的数据交互方法、装置、存储介质以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115309511A CN115309511A (zh) | 2022-11-08 |
CN115309511B true CN115309511B (zh) | 2023-04-04 |
Family
ID=83866182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211186828.1A Active CN115309511B (zh) | 2022-09-28 | 2022-09-28 | 基于Xen的数据交互方法、装置、存储介质以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115309511B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987566A (zh) * | 2022-12-01 | 2023-04-18 | 贵州电网有限责任公司 | 一种基于新能源电力***服务器隔离架构 |
CN115904761B (zh) * | 2023-01-03 | 2023-06-27 | 南京芯驰半导体科技有限公司 | 片上***、车辆及视频处理单元虚拟化方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN101859256A (zh) * | 2009-11-25 | 2010-10-13 | 北京航空航天大学 | 一种硬件虚拟机中精简模式切换的i/o虚拟化方法 |
CN103870311A (zh) * | 2012-12-10 | 2014-06-18 | 华为技术有限公司 | 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动 |
CN103955362A (zh) * | 2014-04-03 | 2014-07-30 | 广东工业大学 | 一种基于Xen的操作***内核监控方法 |
CN105893112A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种虚拟化环境下的数据包处理方法及装置 |
CN106775956A (zh) * | 2017-01-14 | 2017-05-31 | 中国人民解放军国防科学技术大学 | Xen虚拟机Fork机制建立方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123233A (zh) * | 2013-04-26 | 2014-10-29 | 华茂云天科技(北京)有限公司 | 一种虚拟机大容量内存共享方法 |
CN106445642A (zh) * | 2016-10-27 | 2017-02-22 | 广东铂亚信息技术有限公司 | 一种基于虚拟机监视器的安全通信方法与*** |
CN110351264A (zh) * | 2019-07-01 | 2019-10-18 | 电子科技大学 | 多安全等级分区间通信的实现方法 |
US11249789B2 (en) * | 2020-01-06 | 2022-02-15 | International Business Machines Corporation | Network performance optimization in a hypervisor-based system |
-
2022
- 2022-09-28 CN CN202211186828.1A patent/CN115309511B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN101859256A (zh) * | 2009-11-25 | 2010-10-13 | 北京航空航天大学 | 一种硬件虚拟机中精简模式切换的i/o虚拟化方法 |
CN103870311A (zh) * | 2012-12-10 | 2014-06-18 | 华为技术有限公司 | 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动 |
CN103955362A (zh) * | 2014-04-03 | 2014-07-30 | 广东工业大学 | 一种基于Xen的操作***内核监控方法 |
CN105893112A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种虚拟化环境下的数据包处理方法及装置 |
CN106775956A (zh) * | 2017-01-14 | 2017-05-31 | 中国人民解放军国防科学技术大学 | Xen虚拟机Fork机制建立方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115309511A (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210182239A1 (en) | Trusted File Indirection | |
CN115309511B (zh) | 基于Xen的数据交互方法、装置、存储介质以及电子设备 | |
US9928038B2 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
CN109791471B (zh) | 虚拟化***装置处的非易失性存储装置 | |
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
EP4407470A1 (en) | Request processing method, apparatus and system | |
US20210117386A1 (en) | Host-level persistent volume management for container clouds | |
CN113419845A (zh) | 计算加速方法和装置、计算***、电子设备及计算机可读存储介质 | |
CN116257320B (zh) | 一种基于dpu虚拟化配置管理方法、装置、设备及介质 | |
US9557980B2 (en) | Seamless application integration apparatus and method | |
CN115988218A (zh) | 一种虚拟化视频编解码***、电子设备和存储介质 | |
CN114691300A (zh) | 一种虚拟机实例的热迁移方法 | |
US11249760B2 (en) | Parameter management between programs | |
EP3198406B1 (en) | Facilitation of guest application display from host operating system | |
CN115562871A (zh) | 内存分配管理的方法和装置 | |
WO2018164889A1 (en) | Managing guest partition access to physical devices | |
CN113296876B (zh) | 虚拟机的设备直通方法、设备及存储介质 | |
CN113986476A (zh) | 传感器设备虚拟化的方法、装置、电子设备和存储介质 | |
Cho et al. | Sharing data between processes running on different domains in para-virtualized xen | |
US20230367869A1 (en) | Providing system services | |
US20240126580A1 (en) | Transparently providing virtualization features to unenlightened guest operating systems | |
CN116107764B (zh) | 数据处理方法及*** | |
WO2024081072A1 (en) | Transparently providing virtualization features to unenlightened guest operating systems | |
CN117762560A (zh) | 一种lpi中断虚拟化方法、装置、操作***及存储介质 | |
CN112181504A (zh) | 一种操作***的调用方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |