掌桥专利:专业的专利平台
掌桥专利
首页

一种系统信息获取方法、装置及系统

文献发布时间:2023-06-19 11:32:36


一种系统信息获取方法、装置及系统

技术领域

本发明属于计算机技术领域,尤其涉及一种系统信息获取方法、装置及系统。

背景技术

Hypervisor一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统共享硬件。其中,Hypervisor中用来执行一个或多个虚拟机器的操作系统称为Host OS(主机系统),而相应的一个或多个虚拟机器对应的操作系统则称为Guest OS(客机系统)。

在实际应用中,往往需要对Guest OS进行调试,常用的调试手段基本均基于ADB(Android Debug Bridge,安卓调试桥)或其他调试终端程序,并且这些调试手段在本质上都是基于虚拟网络传输实现的,即通过网络连接获取Guest OS的系统信息进而完成调试。因此,一旦Guest OS内部发生系统级故障,比如网络驱动故障、操作系统本身的互锁等,导致网络不能正常工作时,Guest OS与ADB等调试程序之间失去信息交互通道,现有的调试手段无法获取Guest OS的系统信息,自然也就无法对Guest OS进行调试。

发明内容

有鉴于此,本发明的目的在于提供一种系统信息获取方法、装置及服务器,使得Guest OS系统信息的获取不再依赖于网络,具体方案如下:

第一方面,本发明提供一种系统信息获取方法,包括:

获取Host OS接收的控制信息;

通过预设硬中断通道发送所述控制信息至Guest OS;

控制所述GuestOS根据所述控制信息获取目标Guest OS系统信息并存储所述目标Guest OS系统信息至预设共享内存区域;

控制所述Host OS读取所述预设共享内存区域中存储的所述目标Guest OS系统信息。

可选的,所述通过预设硬中断通道发送所述控制信息至GuestOS,包括:

在获取所述控制信息后,触发预设硬中断信号;

通过预设硬中断通道发送所述预设硬中断信息号至Guest OS,其中,所述预设硬中断信号中包含所述控制信息。

可选的,所述控制所述Guest OS根据所述控制信息获取目标Guest OS系统信息,包括:

控制所述Guest OS执行下述操作:

确定与所述控制信息对应的命令控制字;

确定与所述命令控制字对应的Guest OS系统信息,得到目标Guest OS系统信息;

获取所述目标Guest OS系统信息。

可选的,所述获取所述目标Guest OS系统信息,包括:

提取所述命令控制字中目标字段的字段信息;

根据所述字段信息确定Guest OS系统信息的获取方式;

按照所述获取方式获取所述Guest OS系统中的目标Guest OS系统信息。

可选的,所述获取方式包括按照硬中断上下文获取和按照进程上下文获取中的一种。

可选的,本发明第一方面提供的系统信息获取方法,还包括:

控制所述Guest OS获取指定Guest OS系统信息,并存储于所述预设共享内存区域中。

可选的,设置所述预设共享内存区域的过程,包括:

在Hypervisor系统启动后,按预设规则分配内存空间,得到所述预设共享内存区域。

可选的,所述设置所述预设共享内存区域的过程,还包括:

在所述获取Host OS接收的控制信息之后,按预设规则分配内存空间,得到所述预设共享内存区域。

第二方面,本发明提供一种系统信息获取装置,包括:

获取单元,用于获取Host OS接收的控制信息;

发送单元,用于通过预设硬中断通道发送所述控制信息至Guest OS;

第一控制单元,用于控制所述Guest OS根据所述控制信息获取目标Guest OS系统信息并存储所述目标Guest OS系统信息至预设共享内存区域;

第二控制单元,用于控制所述Host OS读取所述预设共享内存区域中存储的所述目标Guest OS系统信息。

第三方面,本发明提供一种服务器,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现本发明第一方面任一项所述的系统信息获取方法。

基于上述技术方案,本发明提供的系统信息获取方法,在获取Host OS接收的控制信息之后,通过预设硬中断通道发送控制信息至Guest OS,然后控制Guest OS根据控制信息获取目标Guest OS系统信息并存储目标Guest OS系统信息至预设共享内存区域,最后,控制Host OS读取预设共享内存区域中存储的目标Guest OS系统信息。本发明提供的系统信息获取方法,通过预设硬中断通道传递控制信息,根据控制信息获取目标Guest OS系统信息,同时,通过预设共享内存区实现目标Guest OS系统信息的传递,使得Host OS可以不依赖网络获取Guest OS系统信息,进而使得其他调试程序可以通过Host OS获取Guest OS的系统信息,确保调试过程的有效展开。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种系统信息获取方法流程图;

图2是本发明实施例提供的一种系统信息获取装置的结构框图;

图3是本发明实施例提供的另一种系统信息获取装置的结构框图;

图4是本发明实施例提供的再一种系统信息获取装置的结构框图;

图5是本发明实施例提供的又一种系统信息获取装置的结构框图;

图6是本发明实施例提供的一种服务器的结构框图。

具体实施方式

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

参见图1,图1是本发明实施例提供的一种系统信息获取方法的流程图,该方法可应用于能够进行数据处理的电子设备,具体的,可以应用于运行Hypervisor系统的服务器;参照图1,本发明实施例提供的系统信息获取方法,可以包括:

S100,获取Host OS接收的控制信息。

本发明实施例述及的控制信息,可以是由调试人员通过调试程序向Host OS发送的,也可以在Host OS中预设控制信息输入接口,调试人员通过该输入接口输入控制信息,当然,也可以采用其他可以实现控制信息输入的方式实现。但不论采用何种控制信息输入方式,控制信息的接收都是通过Host OS实现的,避免Guest OS出现故障时,控制信息无法输入。

可选的,控制信息的具体内容,可以参照现有技术中对Guest OS进行调试时所输入的内容,本发明实施例对于调试人员所输入的具体控制信息的内容不做限定。

S110,通过预设硬中断通道发送控制信息至Guest OS。

在获取Host OS接收的控制信息之后,便可将控制信息发送至Guest OS。本发明实施例通过预设硬中断通道的方式实现这一信息传递过程。

具体的,在获取到调试人员输入的控制信息后,即可触发预设的硬中断信号,并且,该预设硬中断信号中,还包含有对应的控制信息。触发后的预设硬中断信号即可通过预设硬中断通道发送至Guest OS。对于预设硬中断通道的建立,可以参照现有技术中的方式实现,本发明对于预设硬中断通道的建立方式不做限定。

可选的,作为一种具体的可选实现方式,在实际应用中,可以将S100和S110的步骤所对应的操作集成到一起,作为程序中的一个模块、一个单元或一个函数。比如,可以将二者结合为控制信息输入模块,同时实现控制信息的获取,以及预设硬中断信号的发送。相应的,本发明实施例中述及的其他步骤,同样可以设置为对应的模块或单元,以便于程序内容的管理和升级,本发明实施例不再对此复述。

S120,控制Guest OS根据控制信息获取目标Guest OS系统信息并存储目标GuestOS系统信息至预设共享内存区域。

可选的,控制信息传递至Guest OS侧之后,Guest OS将执行下述操作,以实现根据所得控制信息获取Guest OS系统信息。具体的,在得到预设硬中断信号中的控制信息后,对控制信息解析,确定与控制信息对应的命令控制字,即得到具体需要执行的控制命令。

可选的,本发明实施例预设第一映射关系,该第一预设映射关系中记录有控制信息与命令控制字的对应关系。在获得控制信息之后,调用第一映射关系,查询第一预设关系中记录的对应关系,即可直接确定与所得控制信息对应的命令控制字。可以想到的是,还可以采用其他方式确定与所得控制信息对应的命令控制字,在不超出本发明核心思想范围的前提下,同样都属于本发明保护的范围内。

可选的,本发明实施例还预设第二映射关系,该第二映射关系中记录有命令控制字与对应需要获取的Guest OS系统信息的对应关系。因此,在确定命令控制字之后,调用并插叙第二映射关系,即可确定与所得命令控制字对应的Guest OS系统信息,并将对应的Guest OS系统信息作为目标Guest OS系统信息。

可选的,考虑到Guest OS系统信息的数据量比较大,因此,在本发明实施例中,不仅可以控制Guest OS根据调试人员输入的控制信息获取目标Guest OS系统信息,而且还可以控制Guest OS获取一些指定的Guest OS系统信息。

具体的,在Guest OS中预设相应的系统信息录入接口,Guest OS中的各个模块或单元,都可以访问各自对应的接口,并通过对应的接口反馈本模块、本单元的系统信息,并最终由Guest OS对所得信息进行汇总,得到最终的系统运行日志。当然,也可以预设对应的信息获取模块,主动通过各个接口获取对应模块、对应单元的系统信息,并同样在汇总完成后生成最终的系统日志。

根据上述内容可知,在Guest OS侧,至少可以通过两种方式获取Guest OS系统信息,其一是通过预设接口,采集指定的系统信息;其二是根据获取得到的控制信息获取系统目标系统信息。可以想到的是,根据第二种方式获取得到目标系统信息中,可能包括采用第一种方式所采集的指定的系统信息。

进一步的,考虑到Guest OS系统信息的获取过程,可能处于Guest OS的正常工作状态,也可能处于Guest OS系统的非正常状态。因此,对于Guest OS系统信息的获取也可以采用两种方式实现,对于Guest OS正常运行状态中的信息获取,可以按照硬中断上下文获取,避免最系统的原有业务带来影响;而对于Guest OS处于非正常状态的情况,则可以按照进程上下文获取。

具体的,对于具体选用上述哪种方式,可以在上述命令控制字中添加对应的字段信息,根据该字段信息可以直接判定通过哪种方式获取Guest OS系统信息。在得到与控制信息对应的命令控制字之后,提取命令控制字中目标字段的字段信息,然后根据字段信息确定Guest OS系统信息的获取方式,并按照最终确定的获取方式获取Guest OS系统中的目标Guest OS系统信息。

在得到目标Guest OS系统信息之后,即可控制Guest OS将目标Guest OS系统信息存储于预设共享内存区域中。

可选的,考虑到Guest OS出现故障时,可能无法与其他程序进行可靠的信息交互,本发明实施例提出基于预设共享内存区域的方式,解决系统信息传递的难题。顾名思义,本发明实施例所提供的预设共享内存区域,对于Guest OS和Host OS都是可见的,二者均可访问,进行数据的读写操作。

可选的,对于预设共享内存区域的设置,至少可以包括两个设置时机,其一是在Hypervisor系统启动后,立即按照预设规则分配内存空间;其二是在获取Host OS接收的控制信息,即调试过程开始后,再按照预设规则分配内存空间。作为一种可选的实现方式,前述预设规则可以是将固定地址的内存区域确定为预设共享内存区域,可以根据系统运行情况,临时指定内存中的区域作为预设共享内存区域,任何可以显现指定内存区域作为预设共享内存区域的方式都是可选的,在不超出本发明核心思想的前提下,同样都属于本发明实施例所保护的范围。

可选的,对于预设共享内存区域的设置,选用由Host OS执行完成,并在设置完成后,将预设共享内存区域映射至GuestOS侧,只要确保GuestOS和Host OS能够共享该内存区域即可,本发明实施例对于映射的具体过程不做限定。

S130,控制Host OS读取预设共享内存区域中存储的目标Guest OS系统信息。

在控制GuestOS将目标GuestOS系统信息存储于预设共享内存区域之后,即可控制Host OS读取预设共享内存区域中存储的目标Guest OS系统信息,完成Guest OS系统信息的获取过程。

如前所述,GuestOS的调试过程大都基于第三方调试软件完成,因此,在Host OS获取得到目标Guest OS系统信息之后,可以将所得信息发送给第三方调试软件,进而利用第三方调试软件基于所得系统信息,完成对于GuestOS的分析与调试。

可选的,在GuestOS完成目标Guest OS系统信息在预设共享内存区域的写入后,可以向Host OS发送一通知信息,以使Host OS根据所得通知信息执行读取操作。

综上所述,通过本发明实施例提供的系统信息获取方法,通过预设硬中断通道传递控制信息,根据控制信息获取目标GuestOS系统信息,同时,通过预设共享内存区实现目标Guest OS系统信息的传递,使得Host OS可以不依赖网络获取GuestOS系统信息,进而使得其他调试程序可以通过HostOS获取Guest OS的系统信息,确保调试过程的有效展开。

下面对本发明实施例提供的系统信息获取装置进行介绍,下文描述的系统信息获取装置可以认为是为实现本发明实施例提供的系统信息获取方法,在中央设备中需设置的功能模块架构;下文描述内容可与上文相互参照。

图2为本发明实施例提供的一种系统信息获取装置的结构框图,参照图2,该装置可以包括:

获取单元10,用于获取Host OS接收的控制信息;

发送单元20,用于通过预设硬中断通道发送所述控制信息至Guest OS;

第一控制单元30,用于控制所述Guest OS根据所述控制信息获取目标Guest OS系统信息并存储所述目标Guest OS系统信息至预设共享内存区域;

第二控制单元40,用于控制所述Host OS读取所述预设共享内存区域中存储的所述目标Guest OS系统信息。

可选的,所述发送单元20,用于通过预设硬中断通道发送所述控制信息至GuestOS时,具体包括:

在获取所述控制信息后,触发预设硬中断信号;

通过预设硬中断通道发送所述预设硬中断信息号至GuestOS,其中,所述预设硬中断信号中包含所述控制信息。

可选的,所述第一控制单元30,用于控制所述Guest OS根据所述控制信息获取目标Guest OS系统信息时,具体包括:

控制所述Guest OS执行下述操作:

确定与所述控制信息对应的命令控制字;

确定与所述命令控制字对应的Guest OS系统信息,得到目标Guest OS系统信息;

获取所述目标Guest OS系统信息。

可选的,所述第一控制单元30,用于获取所述目标Guest OS系统信息时,具体包括:

提取所述命令控制字中目标字段的字段信息;

根据所述字段信息确定Guest OS系统信息的获取方式;

按照所述获取方式获取所述Guest OS系统中的目标Guest OS系统信息。

可选的,所述获取方式包括按照硬中断上下文获取和按照进程上下文获取中的一种。

可选的,参见图3,图3是本发明实施例提供的另一种系统信息获取装置,在图2所示实施例的基础上,还包括:

第三控制单元50,用于控制所述Guest OS获取指定Guest OS系统信息,并存储于所述预设共享内存区域中。

可选的,参见图4,图4是本发明实施例提供的再一种系统信息获取装置,在图2所示实施例的基础上,还包括:

第一设置单元60,用于在Hypervisor系统启动后,按预设规则分配内存空间,得到所述预设共享内存区域。

可选的,参见图5,图5是本发明实施例提供的又一种系统信息获取装置,在图2所示实施例的基础上,还包括:

第二设置单元70,用于在所述获取Host OS接收的控制信息之后,按预设规则分配内存空间,得到所述预设共享内存区域。

可选的,图6为本发明实施例提供的服务器的结构框图,参见图6所示,可以包括:至少一个处理器100,至少一个通信接口200,至少一个存储器300和至少一个通信总线400;

在本发明实施例中,处理器100、通信接口200、存储器300、通信总线400的数量为至少一个,且处理器100、通信接口200、存储器300通过通信总线400完成相互间的通信;显然,图6所示的处理器100、通信接口200、存储器300和通信总线400所示的通信连接示意仅是可选的;

可选的,通信接口200可以为通信模块的接口,如GSM模块的接口;

处理器100可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器300,存储有应用程序,可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

其中,处理器100具体用于执行存储器内的应用程序,以实现上述任一实施例中系统信息获取方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 生物体信息获取系统以及生物体信息获取系统的驱动方法
  • 驾驶信息获取方法、装置及信息获取系统
技术分类

06120112966043