CN117369938A - 应用于宿主机和虚拟机之间的数据交互方法及宿主机 - Google Patents
应用于宿主机和虚拟机之间的数据交互方法及宿主机 Download PDFInfo
- Publication number
- CN117369938A CN117369938A CN202210769501.0A CN202210769501A CN117369938A CN 117369938 A CN117369938 A CN 117369938A CN 202210769501 A CN202210769501 A CN 202210769501A CN 117369938 A CN117369938 A CN 117369938A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- host
- serial port
- machine
- pseudo terminal
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000003993 interaction Effects 0.000 title claims abstract description 46
- 230000008569 process Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000006266 hibernation Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 15
- 230000005059 dormancy Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- 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/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请的实施方式提供了一种应用于宿主机和虚拟机之间的数据交互方法及宿主机。示例地,应用于宿主机和虚拟机之间的数据交互方法可以包括:通过虚拟机管理程序将虚拟机重定位至宿主机的伪终端;以及响应于宿主机的串口控制程序被启动,通过串口控制程序和伪终端进行宿主机的调试串口和虚拟机之间的数据交互。本申请的实施方式提供的应用于宿主机和虚拟机之间的数据交互方法可以使宿主机和虚拟机进行数据交互。
Description
技术领域
本申请的实施方式涉及计算机技术领域,更具体地,涉及一种应用于宿主机和虚拟机之间的数据交互方法及宿主机。
背景技术
虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。如何更好地进行虚拟机和宿主机之间的交互/监控是亟需解决的问题。
发明内容
本申请的实施方式提供了一种可至少部分解决现有技术中存在的上述问题的应用于宿主机和虚拟机之间的数据交互方法及宿主机。
本申请的实施方式的一方面提供了一种应用于宿主机和虚拟机之间的数据交互方法,虚拟机部署于宿主机,该方法包括:通过虚拟机管理程序将虚拟机重定位至宿主机的伪终端;以及响应于宿主机的串口控制程序被启动,通过串口控制程序和伪终端进行宿主机的调试串口和虚拟机之间的数据交互。
本申请的实施方式另一方面提供了一种宿主机,宿主机上部署有虚拟机、伪终端和串口控制程序;其中,虚拟机被重定位至伪终端,串口控制程序被配置为进行伪终端和宿主机的调试串口之间的数据转发。
根据本申请的实施方式,通过串口控制程序进行伪终端和调试串口之间的数据转发,通过将虚拟机的输入输出重定位至伪终端,使得伪终端能够作为虚拟机和宿主机之间进行数据交互的管道,以便宿主机和虚拟机进行数据交互。
进一步地,虚拟机和宿主机之间可以双向数据传输,使得虚拟机可以响应宿主机的标准输入流并将处理结果反馈至宿主机,用户可通过宿主机查看标准输入流的处理结果。
进一步地,由于在虚拟机的内核启动开始后即可将虚拟机的标准输出流写至伪终端,虚拟机启动过程中产生的日志可通过伪终端和调试串口被宿主机获取,用户可以在宿主机中监控虚拟机的启动过程。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本申请的其它特征、目的和优点将会变得更明显。其中:
图1是根据本申请一个实施方式的应用于宿主机和虚拟机之间的数据交互方法的流程示意图;
图2是根据本申请的一些实施方式中宿主机中虚拟机、伪终端和串口控制程序的部署示意图。
具体实施方式
为了更好地理解本申请,将参考附图对本申请的各个方面做出更详细的说明。应理解,这些详细说明只是对本申请的示例性实施方式的描述,而非以任何方式限制本申请的范围。在说明书全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列项目中的一个或多个的任何和全部组合。
还应理解的是,诸如“包括”、“包括有”、“具有”、“包含”和/或“包含有”等表述在本说明书中是开放性而非封闭性的表述,其表示存在所陈述的特征、元件和/或部件,但不排除一个或多个其它特征、元件、部件和/或它们的组合的存在。此外,当诸如“...中的至少一个”的表述出现在所列特征的列表之后时,其修饰整列特征,而非仅仅修饰列表中的单独元件。此外,当描述本申请的实施方式时,使用“可”表示“本申请的一个或多个实施方式”。并且,用语“示例性的”旨在指代示例或举例说明。
除非另外限定,否则本文中使用的所有措辞(包括工程术语和科技术语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,除非本申请中有明确的说明,否则在常用词典中定义的词语应被解释为具有与它们在相关技术的上下文中的含义一致的含义,而不应以理想化或过于形式化的意义解释。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。另外,除非明确限定或与上下文相矛盾,否则本申请所记载的方法中包含的具体步骤不必限于所记载的顺序,而可以任意顺序执行或并行地执行。下面将参考附图并结合实施例来详细说明本申请。
此外,在本申请中当使用“连接”或“联接”时可表示相应部件之间为直接的接触或间接的接触,除非有明确的其它限定或者能够从上下文推导出的除外。
目前,一些虚拟机调试技术可实现虚拟机的安卓系统的调试信息单向输出到宿主机调试终端上,无法实现从宿主机调试终端输入命令到虚拟机。
为解决该问题,在一些实施方式中,可使用远程连接(telnet)技术实现宿主机对虚拟机输入/输出的命令交互。然而,telnet技术依赖虚拟机的网络(network)功能可用,其需要在虚拟机启动telnetd服务。具体地,虚拟机需要经历“加载虚拟机内核→启动内核网络→启动rootfs→挂载文件系统→启动网络服务→启动telnetd”这一系列流程后才能在宿主机上使用telnetd访问虚拟机的调试终端。该方案是一个基于应用层的实现方法。若出现虚拟机的网络异常、虚拟机内核启动过程异常或虚拟机休眠,将无法使用telnet,宿主机和虚拟机之间将无法交互。此外,由于telnet技术需要在虚拟机启动后使用,无法抓到虚拟机启动、休眠唤醒过程中的日志,上述虚拟机启动过程中的日志无法通过调试终端监视;虚拟机在执行休眠/唤醒时网络有一段空白时间(即网络不可用),也无法通过调试终端监视虚拟机实时输出的日志。
在另一些实施方式中,可以在系统级芯片(SOC)上额外增加一个调试串口给虚拟机调试终端。然而,SOC上的串口硬件资源往往有限造成资源浪费,不利于硬件平台功能的扩展。
基于上述内容,本申请的实施方式提供了一种应用于宿主机和虚拟机之间的数据交互方法,其通过虚拟机的管理程序对虚拟机的输入输出进行重定位,并通过伪终端构建虚拟机的输入输出和调试串口之间的数据管道,使得宿主机和虚拟机之间可以进行交互。此外,本实施方式通过虚拟机的管理程序提供的虚拟输入输出控制底层驱动(virtio-console)来辅助实现,从虚拟机内核启动开始即可与宿主机进行数据交互,使得宿主机能够对虚拟机的休眠/启动等过程进行监控。
为了便于理解,下面对本申请的实施方式提供的应用于宿主机和虚拟机之间的数据交互方法进行示例性说明。
图1是根据本申请一个实施方式的应用于宿主机和虚拟机之间的数据交互方法的流程示意图。在本申请的一些实施方式中,如图1所示,应用于宿主机和虚拟机之间的数据交互方法包括步骤S11和步骤S12。
S11,通过虚拟机管理程序将虚拟机重定位至宿主机的伪终端。
S12,响应于宿主机的串口控制程序被启动,通过串口控制程序和伪终端进行宿主机的调试串口和虚拟机之间的数据交互。
根据本申请的实施方式,通过串口控制程序进行伪终端和调试串口之间的数据转发,通过将虚拟机的输入输出重定位至伪终端,使得伪终端能够作为虚拟机和宿主机之间进行数据交互的管道,以便宿主机和虚拟机进行数据交互。
为了便于理解,下面结合图1,以类UNIX系统中的虚拟机为例,对本申请的是实施方式提供的应用于宿主机和虚拟机之间的数据交互方法进行示例性说明。
图2是根据本申请的一些实施方式中宿主机中虚拟机、伪终端和串口控制程序的部署示意图。
如图2所示,在本申请的一些实施方式中,宿主机200上部署有虚拟机210、伪终端220和串口控制程序230。调试串口240通过串口控制程序230和伪终端220与虚拟机210进行数据交互。
在本申请的一些实施方式中,宿主机200是可用于部署虚拟机210的计算机设备(如服务器)。示例地,宿主机200可以采用类UNIX系统,例如,Linux系统、QNX系统等。
在本申请的一些实施方式中,虚拟机210是用户在宿主机200内搭建的模拟的计算机设备。虚拟机210的搭建过程可参考一些其他相关技术,此处不做详述。不同类型的虚拟机210的创建过程可有所不同。虚拟机210可通过虚拟机管理程序211进行管理。在本申请的实施方式中,虚拟机管理程序211至少用于通过重定位技术,将虚拟机210的输入和输出重定位至伪终端220(例如,伪终端220的主逻辑设备221),以便虚拟机210从伪终端220获取标准输入流,并将其标准输出流输出至伪终端220。其中,重定位是指把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程。通常情况下,虚拟机210的输出被重定位至宿主机200中的一个普通文件中,用户可以通过普通文件查看虚拟机210的输出。然而,由于虚拟机210的输出被重定位至普通文件,用户无法实时看到虚拟机的输出,只能事后查看,实时性差。此外,若系统启动失败或出现其他情况,普通文件中的日志容易丢失。由于其仅对虚拟机210的输出进行了重定位,虚拟机210只能对外输出数据,无法进行交互。而本实施方式中,将虚拟机210的输入和输出都进行重定位,使得其具有双向输入输出。此外,将虚拟机210的输入和输出重定位至伪终端,使得双向输入输出具有终端的功能,使得用户不仅可以看到虚拟机210的输出,还可以对虚拟机进行读写操作,可以实现交互。
在本申请的一些实施方式中,伪终端220可以是成对的逻辑终端设备。示例地,类UNIX系统中一般都具有被称为伪终端的功能。例如,宿主机通过pty(Pseudo-TerminalUtilities,伪终端工具)驱动生成的包括主逻辑设备(master)221和从逻辑设备(slave)223的特殊文件。伪终端的驱动程序222会将主逻辑设备221写入的数据转发给从逻辑设备223供其输入,将从逻辑设备223写入的数据转发给主逻辑设备221供其读取。伪终端的驱动程序222可以将主逻辑设备221写入的数据转发给从逻辑设备223供串口控制程序230输入,并将把串口控制程序230写入从逻辑设备223的数据转发给主逻辑设备221供虚拟机210读取。在本申请的实施方式中,虚拟机的输出被重定位到伪终端220的主逻辑设备221,并通过调试串口程序230读写伪终端的从逻辑设备223,使得可以在宿主机200上实现虚拟机210的输入输出控制(即console)功能。此外,通过伪终端220构建虚拟机的输入输出和宿主机的调试串口之间的数据传输的通道,使得虚拟机能够具备终端功能,既能够实现交互,也能够实现Ctrl+C(复制)等热键功能。
在本申请的一些实施方式中,串口控制程序230主要用于实现数据转发功能。示例地,用户通过指定的指令开启串口控制程序230后,串口控制程序230接收宿主机200的调试串口240的标准输入流并将其写入到伪终端220的从逻辑设备223,从伪终端的从逻辑设备223读入数据并将其写入到宿主机200的调试串口240的标准输出流。
例如,通过调试串口240的控制程序判断串口控制程序230是否被启动。响应于串口控制程序230被启动,调试串口240的控制程序将调试串口240接入的标准输入流通过串口控制程序230传输至伪终端220。响应于串口控制程序230被关闭,调试串口240的控制程序依照原有的数据处理规则,将其输入至宿主机200的对应程序,并通过宿主机200处理调试串口240接入的标准输入流。
上面对宿主机上部署的与本申请的实施方式相关的模块进行了示例性说明,下面结合场景对本申请的实施方式提供的数据交互方法进行示例性说明。
实施例1
在本申请的一些实施方式,虚拟机需要响应宿主机的标准输入流并将结果返回到宿主机的标准输出流。该示例中,通过串口控制程序和伪终端进行宿主机和虚拟机之间的数据交互的过程可以包括:通过串口控制程序和伪终端将从调试串口获取的宿主机的标准输入流传输至虚拟机;通过虚拟机处理宿主机的标准输入流,并将宿主机的标准输入流的处理结果作为虚拟机的标准输出流;以及通过伪终端和串口控制程序将虚拟机的标准输出流传输至调试串口。
值得一提的是,通过伪终端和串口控制程序形成调试串口和虚拟机之间的管道,使得两者之间能够进行数据交互。
在一些实施方式中,响应于串口控制程序被关闭,调试串口的数据被写入宿主机,通过宿主机处理宿主机的标准输入流。
值得一提的是,通过串口控制程序改变调试串口的标准输入流的流向,以根据需要调用宿主机或虚拟机响应调试串口的标准输入流,实现了虚拟机和宿主机共享调试串口的目的,可提高串口硬件资源的利用率,减少串口硬件资源的浪费,有利于硬件平台功能的扩展。
实施例2
在本申请的一些实施方式中,宿主机需要对虚拟机进行监控。该示例中,通过串口控制程序和伪终端进行宿主机和虚拟机之间的数据交互的过程可以包括:通过伪终端和串口控制程序将虚拟机的标准输出流传输至调试串口。其中,虚拟机的标准输出流包括虚拟机的运行日志。通过宿主机基于调试串口输出的虚拟机的标准输出流对虚拟机进行监控。虚拟机的运行日志被输出至伪终端,使得宿主机可从伪终端获取虚拟机的运行日志,从而使得用户可在宿主机中监控虚拟机。
示例地,由于虚拟机的console初始化完成后即可将虚拟机的运行日志作为虚拟机的标准输出流输出至伪终端,运行日志可包括虚拟机启动、休眠和唤醒过程中产生的日志。当某一运行日志包括虚拟机在启动、休眠和唤醒中的至少一个操作过程中产生的日志,宿主机基于虚拟机在启动、休眠和唤醒中的至少一个操作过程中产生的日志,对虚拟机的启动、休眠和唤醒中的至少一个操作过程进行监控。
值得一提的是,由于本申请的实施方式提供的数据交互方法从虚拟机内核启动开始即可进行数据交互,宿主机能够对虚拟机启动过程进行监控。
在一些实施方式中,结合上文关于伪终端的相关描述,实施例1和实施例2中提及的通过伪终端和串口控制程序将虚拟机的标准输出流传输至调试串口的过程可以包括:通过伪终端的驱动程序将伪终端的主逻辑设备中的虚拟机的标准输出流传输至伪终端的从逻辑设备;以及通过串口控制程序将从逻辑设备中的虚拟机的标准输出流传输至调试串口,以将虚拟机的标准输出流作为宿主机的标准输出流输出。通过伪终端220构建虚拟机的输入输出和宿主机的调试串口之间的数据传输的通道,使得虚拟机能够具备终端功能,既能够实现交互,也能够实现Ctrl+C(复制)等热键功能。
应当理解的是,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请的实施方式还提供了一种宿主机,如图2所示,宿主机200上部署有虚拟机210、伪终端220和串口控制程序230。虚拟机210被重定位至伪终端220,串口控制程序230被配置为进行伪终端220和宿主机200的调试串口230之间的数据转发。
在本申请的一些实施方式中,虚拟机210是用户在宿主机200内搭建的模拟的计算机设备。虚拟机210的搭建过程可参考一些其他相关技术,此处不做详述。不同类型的虚拟机210的创建过程可有所不同。虚拟机210可通过虚拟机管理程序211进行管理。在本申请的实施方式中,虚拟机管理程序211至少用于通过重定位技术,将虚拟机210的输入和输出重定位至伪终端220(例如,伪终端220的主逻辑设备221),以便虚拟机210从伪终端220获取标准输入流,并将其标准输出流输出至伪终端220。其中,重定位是指把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程。通常情况下,虚拟机210的输出被重定位至宿主机200中的一个普通文件中,用户可以通过普通文件查看虚拟机210的输出。然而,由于虚拟机210的输出被重定位至普通文件,用户无法实时看到虚拟机的输出,只能事后查看,实时性差。此外,若系统启动失败或出现其他情况,普通文件中的日志容易丢失。由于其仅对虚拟机210的输出进行了重定位,虚拟机210只能对外输出数据,无法进行交互。而本实施方式中,将虚拟机210的输入和输出都进行重定位,使得其具有双向输入输出。此外,将虚拟机210的输入和输出重定位至伪终端,使得双向输入输出具有终端的功能,使得用户不仅可以看到虚拟机210的输出,还可以对虚拟机进行读写操作,可以实现交互。
作为一个示例,虚拟机210需要响应宿主机200的标准输入流并将结果返回到宿主机200的标准输出流。该示例中,串口控制程序230和伪终端220将从调试串口240获取的宿主机200的标准输入流传输至虚拟机210。虚拟机210处理宿主机200的标准输入流,并将宿主机200的标准输入流的处理结果作为虚拟机210的标准输出流。伪终端220和串口控制程序230将虚拟机210的标准输出流传输至调试串口240。宿主机200可以配置为:通过显示设备(未示出)显示虚拟机210的输出流.
值得一提的是,通过伪终端220和串口控制程序230形成调试串口240和虚拟机210之间的管道,使得两者之间能够进行数据交互。
在一些实施方式中,串口控制程序230被关闭后,调试串口240的数据被写入宿主机200,宿主机200处理宿主机200的标准输入流,并通过显示设备显示处理结果。
值得一提的是,通过串口控制程序230改变调试串口240的标准输入流的流向,以根据需要调用宿主机200或虚拟机210响应调试串口240的标准输入流,实现了虚拟机210和宿主机200共享调试串口240的目的,可提高串口硬件资源的利用率,减少串口硬件资源的浪费,有利于硬件平台功能的扩展。
作为另一示例,宿主机200需要对虚拟机210进行监控。该示例中,伪终端220和串口控制程序230将虚拟机210的标准输出流传输至调试串口240。其中,虚拟机210的标准输出流包括虚拟机210的运行日志。宿主机200还可以被配置为:基于调试串口240输出的虚拟机210的标准输出流对虚拟机210进行监控。虚拟机210的运行日志被输出至伪终端220,使得宿主机200可从伪终端220获取虚拟机210的运行日志,从而使得用户可在宿主机200中监控虚拟机210。
示例地,由于虚拟机210的console初始化完成后即可将虚拟机210的运行日志作为虚拟机210的标准输出流输出至伪终端220,运行日志可包括虚拟机210启动、休眠和唤醒过程中产生的日志。当某一运行日志包括虚拟机210在启动、休眠和唤醒中的至少一个操作过程中产生的日志,宿主机200还可以被配置为:基于虚拟机210在启动、休眠和唤醒中的至少一个操作过程中产生的日志,对虚拟机210的启动、休眠和唤醒中的至少一个操作过程进行监控。
值得一提的是,由于本申请的实施方式提供的数据交互方法从虚拟机内核启动开始即可进行数据交互,宿主机能够对虚拟机启动过程进行监控。
在本申请的一些实施方式中,宿主机200还可以包括计算单元(未示出),其可以根据存储在只读存储器(ROM)中的计算机程序或者从存储单元加载到随机访问存储器(RAM)中的计算机程序,来执行各种适当的动作和处理。在RAM中,还可存储宿主机200操作所需的各种程序和数据。备选的,宿主机200的只读存储器和随机访问存储器中的部分资源被作为虚拟机的只读存储器和随机访问存储器。
在本申请的一些实施方式中,宿主机200还可以包括多个调试串口,即I/O接口。宿主机200中的多个部件连接至I/O接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许宿主机200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元执行上文所描述的各个方法和处理。在一些实施方式中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到宿主机200上。当计算机程序加载到RAM并由计算单元执行时,可以执行上文描述的健康监测方法的一个或多个步骤。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、系统级芯片(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置,例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器;以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
以上描述仅为本申请的实施方式以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的保护范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离技术构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种应用于宿主机和虚拟机之间的数据交互方法,其特征在于,所述虚拟机部署于所述宿主机,所述方法包括:
通过虚拟机管理程序将所述虚拟机的输入输出重定位至所述宿主机的伪终端;以及
响应于所述宿主机的串口控制程序被启动,通过所述串口控制程序和所述伪终端进行所述宿主机的调试串口和所述虚拟机之间的数据交互。
2.根据权利要求1所述的方法,其中,所述通过所述串口控制程序和所述伪终端进行所述宿主机和所述虚拟机之间的数据交互包括:
通过所述串口控制程序和所述伪终端将从所述调试串口获取的所述宿主机的标准输入流传输至所述虚拟机;
通过所述虚拟机处理所述宿主机的标准输入流,并将所述宿主机的标准输入流的处理结果作为所述虚拟机的标准输出流;以及
通过所述伪终端和所述串口控制程序将所述虚拟机的标准输出流传输至所述调试串口。
3.根据权利要求2所述的方法,其中,所述方法还包括:
响应于所述串口控制程序被关闭,通过所述宿主机处理所述宿主机的标准输入流。
4.根据权利要求1所述的方法,其中,所述通过所述串口控制程序和所述伪终端进行所述宿主机和所述虚拟机之间的数据交互包括:
通过所述伪终端和所述串口控制程序将所述虚拟机的标准输出流传输至所述调试串口,所述虚拟机的标准输出流包括所述虚拟机的运行日志;
其中,所述方法还包括:
通过所述宿主机基于所述调试串口输出的所述虚拟机的标准输出流对所述虚拟机进行监控。
5.根据权利要求4所述的方法,其中,所述运行日志包括所述虚拟机在启动、休眠和唤醒中的至少一个操作过程中产生的日志;
其中,所述通过所述宿主机基于所述调试串口输出的所述虚拟机的标准输出流对所述虚拟机进行监控包括:
基于所述至少一个操作过程中产生的日志对所述至少一个操作过程进行监控。
6.根据权利要求3所述的方法,其中,所述通过所述串口控制程序和所述伪终端将从所述调试串口获取的所述宿主机的标准输入流传输至所述虚拟机包括:
通过所述串口控制程序将从所述调试串口获取的所述宿主机的标准输入流传输至所述伪终端的从逻辑设备;
通过所述伪终端的驱动程序将所述从逻辑设备中的所述宿主机的标准输入流传输至所述伪终端的主逻辑设备,以及
通过所述虚拟机从所述主逻辑设备获取所述宿主机的标准输入流。
7.根据权利要求2或4所述的方法,其中,所述通过所述伪终端和所述串口控制程序将所述虚拟机的标准输出流传输至所述调试串口包括:
通过所述伪终端的驱动程序将所述伪终端的主逻辑设备中的所述虚拟机的标准输出流传输至所述伪终端的从逻辑设备;以及
通过所述串口控制程序将所述从逻辑设备中的所述虚拟机的标准输出流传输至所述调试串口,以将所述虚拟机的标准输出流作为所述宿主机的标准输出流输出。
8.一种宿主机,其特征在于,所述宿主机上部署有虚拟机、伪终端和串口控制程序;
其中,所述虚拟机被重定位至所述伪终端,所述串口控制程序被配置为进行所述伪终端和所述宿主机的调试串口之间的数据转发。
9.根据权利要求8所述的宿主机,其中,所述宿主机被配置为:基于通过所述伪终端和所述串口控制程序传输至所述调试串口的所述虚拟机的运行日志对所述虚拟机进行监控。
10.根据权利要求9所述的宿主机,其中,所述虚拟机的运行日志包括所述虚拟机在启动、休眠和唤醒中的至少一个操作过程中产生的日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769501.0A CN117369938A (zh) | 2022-06-30 | 2022-06-30 | 应用于宿主机和虚拟机之间的数据交互方法及宿主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769501.0A CN117369938A (zh) | 2022-06-30 | 2022-06-30 | 应用于宿主机和虚拟机之间的数据交互方法及宿主机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369938A true CN117369938A (zh) | 2024-01-09 |
Family
ID=89387920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210769501.0A Pending CN117369938A (zh) | 2022-06-30 | 2022-06-30 | 应用于宿主机和虚拟机之间的数据交互方法及宿主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369938A (zh) |
-
2022
- 2022-06-30 CN CN202210769501.0A patent/CN117369938A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10628209B2 (en) | Virtual machine monitor to I/O stack conduit in virtual real memory | |
US8521929B2 (en) | Virtual serial port management system and method | |
CN112764872B (zh) | 计算机设备、虚拟化加速设备、远程控制方法及存储介质 | |
US10572434B2 (en) | Intelligent certificate discovery in physical and virtualized networks | |
CN103874984A (zh) | 可虚拟化以及前向兼容硬件-软件接口 | |
US20210089325A1 (en) | Supervised learning based uefi pre-boot control | |
US11875145B2 (en) | Virtual machine update while keeping devices attached to the virtual machine | |
CN105556461A (zh) | 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 | |
US10996942B1 (en) | System and method for graphics processing unit firmware updates | |
KR102315102B1 (ko) | 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체 | |
US6775785B1 (en) | Method and apparatus for access to resources not mapped to an autonomous subsystem in a computer based system without involvement of the main operating system | |
CN116701285A (zh) | 远程访问控制装置、方法、设备及计算机可读介质 | |
CN113392052B (zh) | 一种基于四路服务器的bios系统、方法及计算机可读存储介质 | |
CN117369938A (zh) | 应用于宿主机和虚拟机之间的数据交互方法及宿主机 | |
CN116089124A (zh) | 一种仿真系统通信方法、装置、介质 | |
CN115145381A (zh) | 一种远程重置bmc芯片的方法、系统、存储介质及设备 | |
US11392406B1 (en) | Alternative interrupt reporting channels for microcontroller access devices | |
TW202305589A (zh) | 儲存裝置及其操作方法 | |
JP5459549B2 (ja) | コンピュータシステム及びその余剰コアを用いた通信エミュレート方法 | |
CN105068835A (zh) | 移动终端及其调试信息显示方法 | |
CN112052132B (zh) | 通过sdio接口调试外挂芯片的方法、装置、设备和介质 | |
WO2020221161A1 (zh) | 计算作业处理方法、系统、移动设备及加速设备 | |
US11983182B2 (en) | System and method to enable a data analytics in a smart data accelerator interface device | |
WO2016178681A1 (en) | Pre-operating system content transmission | |
CN114416495A (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 |