CN115865908A - 远程桌面系统启动控制方法及相关设备 - Google Patents

远程桌面系统启动控制方法及相关设备 Download PDF

Info

Publication number
CN115865908A
CN115865908A CN202211555121.3A CN202211555121A CN115865908A CN 115865908 A CN115865908 A CN 115865908A CN 202211555121 A CN202211555121 A CN 202211555121A CN 115865908 A CN115865908 A CN 115865908A
Authority
CN
China
Prior art keywords
virtual
display
graphics
card
display card
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.)
Pending
Application number
CN202211555121.3A
Other languages
English (en)
Inventor
张瑞恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Volcano Engine Technology Co Ltd
Original Assignee
Beijing Volcano Engine Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Volcano Engine Technology Co Ltd filed Critical Beijing Volcano Engine Technology Co Ltd
Priority to CN202211555121.3A priority Critical patent/CN115865908A/zh
Publication of CN115865908A publication Critical patent/CN115865908A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)

Abstract

本公开提供一种远程桌面系统启动控制方法及相关设备。所述方法包括:接收远程桌面系统的客户端发送的启动信号,响应于启动信号控制虚拟机开机,虚拟机中运行有虚拟显卡模拟器,虚拟显卡模拟器模拟出的虚拟显卡,以及,远程桌面系统的服务器;通过虚拟显卡模拟器获取虚拟显卡的显示模式状态,显示模式状态用于标识虚拟显卡当前的工作状态;基于显示模式状态,判断虚拟显卡的显卡驱动程序是否加载;响应于显卡驱动程序未加载,通过虚拟显卡向服务器发送帧缓存图像,通过服务器将帧缓存图像转换为视频流文件发送至客户端。本公开能够解决虚拟机的操作系统在启动阶段因图形命令的更新效率低下导致的信息画面更新不流畅问题。

Description

远程桌面系统启动控制方法及相关设备
技术领域
本公开涉及互联网技术领域,尤其涉及一种远程桌面系统启动控制方法及相关设备。
背景技术
随着计算机技术以及网络技术的快速发展,远程桌面技术的应用也越来越广泛。远程桌面技术的工作原理是指:将一台设备屏幕显示的内容(即桌面数据),通过网络发送到另一端的设备进行显示。
云桌面技术是远程桌面技术的一种具体应用,基于在云端部署的物理机(如物理服务器),云桌面是指将运行在物理机的虚拟机的桌面数据呈现在终端,即在终端进行显示。
但是,目前远程桌面在启动阶段的显示更新效率低下。
发明内容
有鉴于此,本公开的目的在于提出一种远程桌面系统启动控制方法及相关设备。
基于上述目的,本公开的第一个方面提供了一种远程桌面系统启动控制方法,包括:
接收远程桌面系统的客户端发送的启动信号,响应于所述启动信号控制虚拟机开机,所述虚拟机中运行有虚拟显卡模拟器,所述虚拟显卡模拟器模拟出的虚拟显卡,以及,所述远程桌面系统的服务器;
通过所述虚拟显卡模拟器获取所述虚拟显卡的显示模式状态,所述显示模式状态用于标识所述虚拟显卡当前的工作状态;
基于所述显示模式状态,判断所述虚拟显卡的显卡驱动程序是否加载;
响应于所述显卡驱动程序未加载,通过所述虚拟显卡向所述服务器发送帧缓存图像,通过所述服务器将所述帧缓存图像转换为视频流文件发送至所述客户端。
在一些实施例中,所述显示模式状态包括视频图形阵列显示状态和原生显示状态;所述基于所述显示模式状态,判断所述虚拟显卡的显卡驱动程序是否加载,包括以下至少之一:
响应于所述虚拟显卡的当显示模式状态为视频图形阵列显示状态,则确定所述显卡驱动程序未加载;
响应于所述虚拟显卡的当前显示模式状态为视频图形阵列显示状且前一有效显示模式状态为原生显示状态,则确定所述显卡驱动程序未加载;
响应于所述虚拟显卡的当前显示模式状态为原生显示状态,则确定所述显卡驱动程序已加载;
响应于所述虚拟显卡的当前显示模式状态为原生显示状态且前一有效显示模式状态为视频图形阵列显示状态,则确定所述显卡驱动程序已加载。
在一些实施例中,所述方法,还包括:
响应于所述显卡驱动程序已加载,通过所述服务器拦截所述显卡驱动程序发送至所述虚拟显卡的图形命令,并对所述图形命令优化后发送至所述客户端。
在一些实施例中,所述对所述图形命令优化,包括:
基于图形命令树对所述图形命令进行优化,对所述图形命令中所包含的至少部分图形进行裁剪,以减少所述图形命令中所包含的图形。
在一些实施例中,所述方法,还包括:
响应于所述显卡驱动程序已加载,控制所述虚拟显卡停止向所述服务器发送所述帧缓存图像。
可选的,响应于所述显卡驱动程序未加载之后,还包括:
在一些实施例中,所述方法,还包括:
在所述显卡驱动程序已加载之前,禁止所述服务器向所述客户端发送所述图形命令。
本公开的第二个方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一个方面所述的方法。
本公开的第三个方面还提供了一种远程桌面系统启动控制系统,包括:
客户端;以及,
如第二个方面所述的电子设备。
本公开的第四个方面还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一个方面所述的方法。
本公开的第五个方面还提供了一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据第一个方面所述的方法。
从上面所述可以看出,本公开提供的远程桌面系统启动控制及相关设备,在虚拟机启动阶段获取虚拟显卡的显示模式状态,基于虚拟显卡的显示模式状态来判断虚拟显卡的显卡驱动程序是否加载,且在显卡驱动程序未加载时,服务器获取虚拟显卡发送的帧缓存图像并将所述帧缓存图像转换为视频流文件发送至所述客户端,从而能够解决虚拟机的操作系统在启动阶段因图形命令的更新效率低下导致的信息画面更新不流畅问题。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例所述远程桌面系统启动控制方法的流程示意图;
图2为本公开实施例所述远程桌面系统启动控制系统的结构框图;
图3为本公开实施例所述虚拟显卡的显示模式状态示意图;
图4为本公开实施例所述远程桌面系统启动控制方法的另一流程示意图;
图5为本公开实施例电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
远程桌面是指将运行在物理机(即宿主机)的虚拟机的桌面呈现在终端,即在终端(即客户端)进行显示。主要工作原理是,不断抓捕虚拟机中的屏幕画面声音等桌面数据,并通过网络将桌面数据传递到终端,终端可将物理机的桌面展现给用户。
独立计算环境简单协议(Simple Protocol for Independent ComputingEnvironment,SPICE)是一种基于虚拟化环境的远程桌面传输协议。独立计算环境简单协议使用了基于图形命令的显示更新策略来实现SPICE客户端(client)与SPICE服务器(server)之间的数据传输。
具体的,在宿主机上设置有虚拟机,虚拟机中包括虚拟显卡模拟器以及SPICE服务器,虚拟显卡模拟器模拟出虚拟显卡。在实现远程桌面的数据传输时,SPICE服务器通过虚拟显卡拦截图形命令后,通过图形命令树对该图形命令进行优化后基于独立计算环境简单协议发送至设置于终端上的SPICE客户端。其中,通过图形命令树对图形命令进行优化时,可删除被其他命令隐藏的命令,使得隐藏于其他图片之后不能被用户看到的图片的图形命令被删除掉,从而节省后续图形命令传输时所需的网络带宽。
SPICE客户端接收到优化后的图形命令之后,可基于图形命令中的操作码和操作数更新显示内容,从而实现远程桌面显示。
然而,在远程桌面的操作系统的启动阶段,由于虚拟显卡处于VGA(VideoGraphics Array)兼容模式,此时虚拟显卡的显卡驱动程序尚未在虚拟机的操作系统中加载,此时SPICE服务器无法从虚拟显卡中拦截到图形命令,自然也无法对图形命令进行优化。在这种情况下,虚拟显卡模拟器直接通过处于VGA兼容模式下的虚拟显卡获取命令,而这种模式下图形命令的更新效率低下,导致操作系统启动阶段以大量图片及文本模式显示的信息画面更新不流畅且具有撕裂现象,信息可辨识度低。
有鉴于此,本公开实施例提供一种远程桌面系统启动控制方法。如图1所示,所述方法包括:
步骤S101,接收远程桌面系统的客户端发送的启动信号,响应于所述启动信号控制虚拟机开机,所述虚拟机中运行有虚拟显卡模拟器,所述虚拟显卡模拟器模拟出的虚拟显卡,以及,所述远程桌面系统的服务器。
步骤S103,通过所述虚拟显卡模拟器获取所述虚拟显卡的显示模式状态,所述显示模式状态用于标识所述虚拟显卡当前的工作状态。
步骤S105,基于所述显示模式状态,判断所述虚拟显卡的显卡驱动程序是否加载。
步骤S107,响应于所述显卡驱动程序未加载,通过所述虚拟显卡向所述服务器发送帧缓存图像,通过所述服务器将所述帧缓存图像转换为视频流文件发送至所述客户端。
本公开实施例所述远程桌面系统启动控制方法,在虚拟机启动阶段获取虚拟显卡的显示模式状态,基于虚拟显卡的显示模式状态来判断虚拟显卡的显卡驱动程序是否加载,且在显卡驱动程序未加载时,服务器获取虚拟显卡发送的帧缓存图像并将所述帧缓存图像转换为视频流文件发送至所述客户端,从而能够解决虚拟机的操作系统在启动阶段因图形命令的更新效率低下导致的信息画面更新不流畅问题。
图2示出了本公开实施例所述远程桌面系统启动控制系统的结构框图。下面结合图2所示的远程桌面系统启动控制系统进一步说明本公开的技术方案。
如图2所示,在本实施例中所述远程桌面系统启动控制系统包括宿主机100以及客户端200。其中,宿主机100上安装有虚拟机及其操作系统。虚拟机中设置有虚拟显卡模拟器101和服务器103,通过虚拟显卡模拟器101对虚拟显卡102模拟进行模拟,将虚拟显卡102以PCI(Peripheral Component Interconnect,用于定义局部总线的标准)显卡设备的形式配置到虚拟机内部。虚拟显卡102用于接收虚拟显卡驱动发送的虚拟机绘图命令,从而实现虚拟机桌面的图像渲染。
当用户需要开启远程桌面时,可通过安装于终端设备上的远程桌面系统的客户端200向宿主机100发送启动信号。其中,终端设备可以是各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等。终端设备上安装有客户端200(如浏览器),用户通过客户端200向宿主机100发送启动信号。
宿主机100接收到该启动信号后,基于该启动信号控制虚拟机及其操作系统开机启动。其中,虚拟机中运行有虚拟显卡模拟器101,所述虚拟显卡模拟器101模拟出的虚拟显卡102,以及,所述远程桌面系统的服务器103。其中,虚拟显卡102可以为QXL虚拟显卡,服务器103可以为SPICE服务器。
同时,通过宿主机100中的虚拟显卡模拟器101获取虚拟显卡102的显示模式状态,并基于虚拟显卡102的显示模式状态来判断所述虚拟显卡102的显卡驱动程序是否加载。其中,所述显示模式状态用于标识所述虚拟显卡102当前的工作状态。
当宿主机100判定虚拟显卡102的显卡驱动程序未加载时,虚拟显卡驱动无法向虚拟显卡102发送虚拟机绘图命令,则服务器103无法从虚拟显卡102中拦截到图形命令,也无法对图形命令进行优化。此时,可通过虚拟显卡模拟器101将虚拟显卡102中已绘制的帧缓存图像发送至服务器103,服务器103将该帧缓存图像转换为视频流文件后进行压缩编码与数据封装后发送至客户端200。
例如,宿主机100可以以预设的频率(例如30FPS,即每秒30帧)捕捉帧缓存图像从而将帧缓存图像转换为视频流文件,之后对其压缩编码、数据封装后发送至客户端200。之后,客户端200对接收到的数据进行解码显示,从而获得相应的视频流文件进行播放显示,保证了客户端200播放的流畅。
在本实施例中,在虚拟显卡102的显卡驱动程序未加载即服务器103无法对虚拟显卡102发送的图形命令进行优化时,将虚拟显卡102中的帧缓存图像转换为视频流文件进行发送,相比于未优化而直接基于图形命令发送的大量图片能够减少网络流量,避免因大量图片及文本模式显示的内容直接基于图形命令传输占用大量网络带宽,导致客户端200的图像更新不流畅。
在一些实施例中,虚拟显卡102的显示模式状态包括视频图形阵列显示状态(即VGA兼容模式)和原生显示状态(即Native模式)。其中,所述视频图形阵列显示状态用于表示所述虚拟显卡102处于标准兼容模式状态,所述原生显示状态用于表示所述虚拟显卡102处于受控制状态。
例如,如图3所示,当虚拟显卡102为QXL虚拟显卡时:虚拟显卡102的视频图形阵列显示状态可以为VGA(Video Graphics Array,视频传输标准)标准兼容模式状态,虚拟显卡102处于VGA标准兼容模式状态表示该虚拟显卡102处于VGA标准兼容模式状态下,即处于低标准兼容视频传输状态;虚拟显卡102的原生显示状态可以为Native模式状态,虚拟显卡102处于Native模式状态表示虚拟机的操作系统中已加载QXL虚拟显卡的显卡驱动程序,QXL虚拟显卡受宿主机100驱动控制。
其中,QXL虚拟显卡,是由模拟器实现的一个虚拟显卡。通过在客户机上安装QXL虚拟显卡的显卡驱动程序,在虚拟机中表现为一个普通的显卡。当虚拟机上的一个应用程序需要产生一个渲染操作的时候,例如虚拟机操作系统需要产生桌面窗口图像的渲染操作时,由该虚拟机操作系统发送请求给虚拟机的图形引擎(GDI/X),图形引擎将命令传送给QXL虚拟显卡的显卡驱动程序,QXL虚拟显卡的显卡驱动程序将命令翻译为QXL命令推送到模拟器中QXL虚拟显卡的消息队列里面,由SPICE服务器进行处理并转换为相应的图形命令。
因此,基于虚拟显卡102的显示模式状态,可以判断所述虚拟显卡的显卡驱动程序是否加载。
在一些实施例中,响应于所述虚拟显卡的当前显示模式状态为视频图形阵列显示状态,则确定所述显卡驱动程序未加载。
在本实施例中,当虚拟显卡102处于视频图形阵列显示状态时,可判定虚拟显卡102的显卡驱动程序未加载。例如,当虚拟显卡102为QXL虚拟显卡且该QXL虚拟显卡处于VGA标准兼容模式状态时,则QXL虚拟显卡的显卡驱动程序未加载。
在另一些实施例中,响应于所述虚拟显卡的当前显示模式状态为视频图形阵列显示状态且前一有效显示模式状态为,则确定所述显卡驱动程序未加载。
在本实施例中,当虚拟显卡102的当前显示模式状态为视频图形阵列显示状态,且前一显示模式状态为原生显示状态时,可判定虚拟显卡102的显卡驱动程序未加载。例如,当虚拟显卡102为QXL虚拟显卡,且该QXL虚拟显卡当前处于VGA标准兼容模式状态,且前一显示模式状态为Native模式状态时,则QXL虚拟显卡的显卡驱动程序未加载。
可选的,在本实施例中,以虚拟显卡102的当前显示模式状态为视频图形阵列显示状态且前一显示模式状态为原生显示状态为基准判断虚拟显卡的显卡驱动程序未加载并执行步骤S107的步骤,仅需在虚拟显卡102的显示模式状态从原生显示状态转化为视频图形阵列显示状态时执行该判断,而无需连续不断的执行该判断,从而可以减小系统的开销。例如,假设虚拟显卡102在当前时刻(第t时刻)的显示模式状态为视频图形阵列显示状态,且在前一时刻(第t-1时刻)显示模式状态为原生显示状态,而在后一时刻(第t+1时刻)的显示模式状态仍为视频图形阵列显示状态,在第t+1时刻由于不存在显示模式状态的切换,无需执行步骤S105中的判断,宿主机100继续以虚拟显卡102处于视频图形阵列显示状态时的步骤执行。
可选的,在本实施例中,可通过虚拟显卡102的显示模式转换状态机来执行步骤S105中的判断,从而确定虚拟显卡102的显卡驱动程序是否加载。
在一些实施例中,响应于所述虚拟显卡的当前显示模式状态为原生显示状态,则确定所述显卡驱动程序已加载。
在本实施例中,当虚拟显卡102处于原生显示状态时,可判定虚拟显卡102的显卡驱动程序已加载。例如,当虚拟显卡102为QXL虚拟显卡且该QXL虚拟显卡处于Native模式状态时,则QXL虚拟显卡的显卡驱动程序已加载。
在另一些实施例中,响应于所述虚拟显卡的当前显示模式状态为原生显示状态且前一有效显示模式状态为视频图形阵列显示状态,则确定所述显卡驱动程序已加载。
在本实施例中,当虚拟显卡102的当前显示模式状态为原生显示状态,且前一显示模式状态为视频图形阵列显示状态时,可判定虚拟显卡102的显卡驱动程序未加载。例如,当虚拟显卡102为QXL虚拟显卡,且该QXL虚拟显卡当前处于Native模式状态,且前一显示模式状态为VGA标准兼容模式状态时,则QXL虚拟显卡的显卡驱动程序已加载。
可选的,在一些实施例中,视频图形阵列显示状态和原生显示状态为虚拟显卡102的有效模式状态,实际上虚拟显卡102还包括无效模式状态。其中,无效模式状态用于表示虚拟显卡102尚未进行初始化,或者初始化后由于显示模式切换而产生的不确定状态,或者为设备重置后的状态。例如,当虚拟显卡102为QXL虚拟显卡时,虚拟显卡102的无效模式状态可以为Invalid模式状态。QXL虚拟显卡的初始状态即为Invalid模式状态。
在宿主机100中的虚拟机及其操作系统的启动阶段,QXL虚拟显卡的初始显示模式状态为无效模式状态即Invalid模式状态,其首先会转换到视频图形阵列显示状态即VGA标准兼容模式状态;在虚拟机的显示分辨率调整后,QXL虚拟显卡的显示模式状态重新回到Invalid模式状态,之后再次进入VGA标准兼容模式状态,此过程可重复数次,从而实现开机阶段虚拟机显示分辨率的调整。
在虚拟机的操作系统加载QXL虚拟显卡的显卡驱动程序之后,QXL虚拟显卡的显示模式状态重新变化为Invalid模式状态,之后进入Native模式状态,表示QXL虚拟显卡的显卡驱动程序已加载。
因此,所述虚拟显卡102的显示模式状态由原生显示状态转化为视频图形阵列显示状态,即虚拟显卡102的当前显示模式状态为视频图形阵列显示状态且前一有效显示模式状态为原生显示状态,实际可以为虚拟显卡102的显示模式状态由原生显示状态转化为无效模式状态,再由无效模式状态转化为视频图形阵列显示状态。例如,当虚拟显卡102为QXL虚拟显卡,当该QXL虚拟显卡由有效模式状态中的Native模式状态转化为无效模式状态的Invalid模式状态,再转化为当前的有效显示模式状态中的VGA标准兼容模式状态,则宿主机100判断QXL虚拟显卡的显卡驱动程序未加载。
在一些实施例中,宿主机100仅获取虚拟显卡102的有效模式状态,因此宿主机100显示模式转换状态机来判断虚拟显卡102的显卡驱动程序是否加载时,包括:
响应于所述虚拟显卡的当前有效显示状态为视频图形阵列显示状态,且前一有效显示状态为原生显示状态,则虚拟显卡102的显卡驱动程序未加载。即QXL虚拟显卡的当前有效显示状态为VGA标准兼容模式状态且前一有效显示状态为Native模式状态,则QXL虚拟显卡的显卡驱动程序未加载。
响应于所述虚拟显卡的当前有效显示状态为原生显示状态,且前一有效显示状态为视频图形阵列显示状态,则虚拟显卡102的显卡驱动程序已加载。即QXL虚拟显卡的当前有效显示状态为Native模式状态且前一有效显示状态为VGA标准兼容模式状态,则QXL虚拟显卡的显卡驱动程序已加载。
而对于其他情况,例如所述虚拟显卡的当前有效显示状态和前一有效显示状态均为视频图形阵列显示状态,或者所述虚拟显卡的当前有效显示状态为视频图形阵列显示状态且没有前一有效显示状态等情况,则虚拟显卡102的显卡驱动程序未加载。例如,QXL虚拟显卡的当前有效显示状态和前一有效显示状态均为VGA标准兼容模式状态,或者QXL虚拟显卡的当前有效显示状态为VGA标准兼容模式状态且没有前一有效显示状态等情况,则QXL虚拟显卡的显卡驱动程序未加载。
可选的,在上述实施例中,当宿主机100判断所述显卡驱动程序未加载之后,即在所述显卡驱动程序已加载之前,宿主机100禁止所述服务器103向所述客户端200发送所述图形命令,从而避免任何图形命令通过服务器103与客户端200之间的显示通道进行传输占用大量带宽。
在另一些实施例中,响应于所述显卡驱动程序已加载,所述服务器拦截所述显卡驱动程序发送至所述虚拟显卡的图形命令,并对所述图形命令优化后发送至所述客户端。
在本实施例中,当宿主机100判断虚拟显卡102的显卡驱动程序已加载,显卡驱动程序可以向虚拟显卡102发送绘图命令;此时虚拟显卡模拟器101不再向服务器103发送虚拟显卡102的帧缓存图像,服务器103可以拦截显卡驱动程序发送至所述虚拟显卡102的图形命令,并对该图形命令进行优化,之后再将优化后的图形命令发送至所述客户端200。
可选的,本实施例中,可基于图形命令树对所述图形命令进行优化,对所述图形命令中所包含的至少部分图形进行裁剪,以减少所述图形命令中所包含的图形从而删除被其他命令隐藏的命令,使得隐藏于其他图片之后不能被用户看到的图片的图形命令被删除掉,进而节省后续图形命令传输时所需的网络带宽。即在虚拟显卡的显卡驱动程序加载后,显卡驱动程序根据显卡的PCI设备BAR空间资源分配多个绘图表面,其中:主绘图表面表示需要在客户端进行显示的表面,其余均为离屏表面,缓存了各离屏窗口的内容,用于提高图像显示效率。QXL虚拟显卡模拟器会拦截到每个表面的创建命令,执行相应的创建操作,并进一步在SPICE服务器中进行对应的操作。
可选的,在上述实施例中,所述服务器103为SPICE服务器,所述客户端200为SPICE客户端,所述服务器103基于独立计算环境简单协议将所述视频流文件或所述第二图形命令发送至所述客户端200,从而实现SPICE服务器与SPICE客户端之间的数据传输。其中,第二图形命令通过SPICE服务器与SPICE客户端之间的显示通道传输;视频流文件可以通过SPICE服务器与SPICE客户端之间的显示通道传输,也可通过其他通道或协议传输,本实施例对此不作限制。
在一些实施例中,本公开实施例提供一种远程桌面系统启动控制方法,应用于宿主机100。其中,宿主机100上安装有虚拟机及其操作系统。虚拟机中设置有QXL虚拟显卡模拟器和SPICE服务器,通过虚拟显卡模拟器模拟出QXL虚拟显卡。如图4所示,所述方法包括:
步骤S201,QXL虚拟显卡模拟器需要判定当前虚拟机操作系统是否已加载QXL虚拟显卡的显卡驱动程序。
步骤S202,QXL虚拟显卡模拟器判定当前虚拟机操作系统的虚拟显卡驱动未加载,向SPICE服务器提供驱动加载状态信息,并发送已绘制的帧缓存图像,反之执行步骤S203。
步骤S203,QXL虚拟显卡模拟器判定当前虚拟机操作系统的QXL虚拟显卡的显卡驱动程序已加载,向SPICE服务器提供驱动加载状态信息,并停止发送帧缓存图像。
步骤S204,SPICE服务器接收到QXL虚拟显卡模拟器发送的帧缓存图像,对该图像进行视频流压缩编码,并封装为SPICE协议中的视频数据消息,发送到SPICE客户端进行显示。
步骤S205,SPICE服务器查询当前虚拟机操作系统的虚拟显卡驱动加载状态。
步骤S206,SPICE服务器查询到当前虚拟机操作系统的QXL虚拟显卡的显卡驱动程序未加载,禁止图形命令在显示通道上的发送,反之执行步骤S207。
步骤S207,SPICE服务器查询到当前虚拟机操作系统的虚拟显卡驱动已加载,使图形命令在显示通道上发送。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种计算机程序产品,其包括其上具有计算机可读指令的非暂时性有形计算机可读介质。在一些实施例中,所述计算机可读指令由一个或多个处理器可执行以使得所述处理器执行所述的方法。对应于方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种远程桌面系统启动控制方法,其特征在于,包括:
接收远程桌面系统的客户端发送的启动信号,响应于所述启动信号控制虚拟机开机,所述虚拟机中运行有虚拟显卡模拟器,所述虚拟显卡模拟器模拟出的虚拟显卡,以及,所述远程桌面系统的服务器;
通过所述虚拟显卡模拟器获取所述虚拟显卡的显示模式状态,所述显示模式状态用于标识所述虚拟显卡当前的工作状态;
基于所述显示模式状态,判断所述虚拟显卡的显卡驱动程序是否加载;
响应于所述显卡驱动程序未加载,通过所述虚拟显卡向所述服务器发送帧缓存图像,通过所述服务器将所述帧缓存图像转换为视频流文件发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述显示模式状态包括视频图形阵列显示状态和原生显示状态;
所述基于所述显示模式状态,判断所述虚拟显卡的显卡驱动程序是否加载,包括以下至少之一:
响应于所述虚拟显卡的当前显示模式状态为视频图形阵列显示状态,则确定所述显卡驱动程序未加载;
响应于所述虚拟显卡的当前显示模式状态为视频图形阵列显示状态且前一有效显示模式状态为原生显示状态,则确定所述显卡驱动程序未加载;
响应于所述虚拟显卡的当前显示模式状态为原生显示状态,则确定所述显卡驱动程序已加载;
响应于所述虚拟显卡的当前显示模式状态为原生显示状态且前一有效显示模式状态为视频图形阵列显示状态,则确定所述显卡驱动程序已加载。
3.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述显卡驱动程序已加载,通过所述服务器拦截所述显卡驱动程序发送至所述虚拟显卡的图形命令,并对所述图形命令优化后发送至所述客户端。
4.根据权利要求3所述的方法,其特征在于,所述对所述图形命令优化,包括:
基于图形命令树对所述图形命令进行优化,对所述图形命令中所包含的至少部分图形进行裁剪,以减少所述图形命令中所包含的图形。
5.根据权利要求3所述的方法,其特征在于,还包括:
响应于所述显卡驱动程序已加载,控制所述虚拟显卡停止向所述服务器发送所述帧缓存图像。
6.根据权利要求1所述的方法,其特征在于,还包括:
在所述显卡驱动程序已加载之前,禁止所述服务器向所述客户端发送所述图形命令。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任意一项所述的方法。
8.一种远程桌面系统启动控制系统,其特征在于,包括:
客户端,被配置为生成启动信号;以及,
如权利要求7所述的电子设备。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至6任一所述的方法。
10.一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,其特征在于,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据权利要求1至6任一项所述的方法。
CN202211555121.3A 2022-12-05 2022-12-05 远程桌面系统启动控制方法及相关设备 Pending CN115865908A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211555121.3A CN115865908A (zh) 2022-12-05 2022-12-05 远程桌面系统启动控制方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211555121.3A CN115865908A (zh) 2022-12-05 2022-12-05 远程桌面系统启动控制方法及相关设备

Publications (1)

Publication Number Publication Date
CN115865908A true CN115865908A (zh) 2023-03-28

Family

ID=85670216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211555121.3A Pending CN115865908A (zh) 2022-12-05 2022-12-05 远程桌面系统启动控制方法及相关设备

Country Status (1)

Country Link
CN (1) CN115865908A (zh)

Similar Documents

Publication Publication Date Title
US10818270B2 (en) Display driving method, and electronic device including the display driver integrated circuit for supporting the same
CA2922867C (en) Desktop-cloud-based media control method and device
WO2019114185A1 (zh) 一种app远程控制方法及相关设备
CN112486609B (zh) 一种基于云桌面的虚拟显卡实现方法和装置
CN104660687A (zh) 虚拟桌面显示的实现方法和系统
US20230215076A1 (en) Image frame display method, apparatus, device, storage medium, and program product
CN106658064B (zh) 虚拟礼物展示方法及装置
JP2008526107A (ja) リモートコンピューティングにおけるグラフィクスプロセッサの使用
CN113542757A (zh) 云应用的图像传输方法、装置、服务器及存储介质
US20240292009A1 (en) Method and apparatus for processing video compression, and medium
WO2017202175A1 (zh) 一种视频压缩方法、装置及电子设备
US20200210213A1 (en) Display method of multi-application based on android system, and terminal device
CN113655975B (zh) 图像显示方法、装置、电子设备和介质
US20240307767A1 (en) Cloud Data Processing
CN113784049A (zh) 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质
CN113672318A (zh) 虚拟机的桌面图像数据的传输方法和装置及电子设备
CN115809106A (zh) 云桌面系统与云桌面显示方法、终端设备及存储介质
CN114968152B (zh) 减少virtio-gpu额外性能损耗的方法
CN115904563A (zh) 应用程序启动中的数据处理方法、装置和存储介质
US9460481B2 (en) Systems and methods for processing desktop graphics for remote display
CN114089896A (zh) 一种渲染图像截取方法及装置
US20120005587A1 (en) Performing Remoting Operations For Different Regions Of A Display Surface At Different Rates
CN111111175A (zh) 一种游戏画面生成方法、装置和移动终端
CN115988265A (zh) 一种显示画面的渲染方法、装置和终端设备
CN108132767B (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