CN115145696A - Method, system and computing device for determining running difference of process virtual machine - Google Patents

Method, system and computing device for determining running difference of process virtual machine Download PDF

Info

Publication number
CN115145696A
CN115145696A CN202211050855.6A CN202211050855A CN115145696A CN 115145696 A CN115145696 A CN 115145696A CN 202211050855 A CN202211050855 A CN 202211050855A CN 115145696 A CN115145696 A CN 115145696A
Authority
CN
China
Prior art keywords
virtual machine
program
architecture
process virtual
computing device
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.)
Granted
Application number
CN202211050855.6A
Other languages
Chinese (zh)
Other versions
CN115145696B (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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software 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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202211050855.6A priority Critical patent/CN115145696B/en
Publication of CN115145696A publication Critical patent/CN115145696A/en
Application granted granted Critical
Publication of CN115145696B publication Critical patent/CN115145696B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring 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)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The invention discloses a method, a system and computing equipment for determining running difference of a process virtual machine, and relates to the technical field of computers. The method comprises the following steps: simulating and executing a second framework program through a first process virtual machine to generate a first execution result file; acquiring a first execution command, analyzing and generating a first text file; sending the first text file to a second service program of the second computing device, so that the second service program can analyze the first text file to generate a second execution command; sending the second architecture program to a second service program, starting a second process virtual machine by the second service program through a second execution command, simulating and executing the second architecture program, and generating a second execution result file; and comparing the first execution result file with the second execution result file to determine the difference information of the process virtual machine based on the operation of the first architecture and the second architecture. According to the technical scheme of the invention, the difference of the process virtual machine based on the operation of different architecture platforms can be automatically searched.

Description

Method, system and computing device for determining running difference of process virtual machine
Technical Field
The invention relates to the technical field of computers, in particular to a method for determining running differences of process virtual machines, a system for determining the running differences of the process virtual machines and computing equipment.
Background
At present, the Windows operating system occupies most of the market of the computer operating system, the software ecology on the Windows operating system is extremely rich, and most of common software is developed based on Windows. In order to provide the same experience for the user on the UOS, software on Windows needs to be migrated to the UOS for use. Due to different system interfaces, the Windows application program cannot be directly migrated to the UOS for running. And Wine is used as a compatible adaptation layer between Windows application and a Linux kernel, and provides support for cross-platform migration of the application.
Wine simulates the API interfaces called by x86 and x64 Window applications, but does not simulate the hardware layer. From an instruction set perspective, windows applications can run on Linux systems based on the x86, x64 architecture through Wine, but cannot run on other architectures. The UOS supports various architectures, and in order to enable the UOS system based on the ARM architecture to run Windows application programs, a process virtual machine is needed to simulate and run Wine.
The principle of the process virtual machine is to analyze the X86 instruction one by one and simulate the function of the X86 instruction by using a c code to realize the behavior of the instruction, or translate the X86 binary system into ARM instructions one by one and execute the ARM instructions after the X86 binary system is partitioned. Generally, an application program to be simulated needs to frequently use system resources, and a system call is a necessary entry for a user program to access the system resources, for this reason, a process virtual machine needs to intercept the system call of the simulation program and forward the system call to a real system, so that the program to be simulated considers that the program to be simulated completes the operation of the system resources.
In fact, the process virtual machine does not simply intercept the int 80 instruction, take over the system call of the program to be emulated, and forward it directly. The following problems also need to be solved: under different architectures, the calling numbers and the number of system calls are not completely the same; under different bit widths, data cannot be directly transmitted, and conversion between 32 bits and 64 bits is needed; the system calls related to memory allocation, file paths, signals, etc. need to be transferred to the corresponding processing modules. To this end, the process virtual machine designs an intermediate layer, called the system call engine, to emulate the X86 system call.
The system call engine belongs to a core module of the process virtual machine, and when the system call engine simulates X86 system call, all differences between the ARM platform and the X86 platform are not clear, and the system call quantity is large, so that platform difference processing cannot be performed in all places where differences are likely to occur. This may cause a plurality of test programs to normally run on the X86 platform, and the ARM platform may be stuck, crashed, and the execution result is not expected when the system calls the relevant test programs.
In order to debug and track the execution difference of the system call engine on the X86 platform and the ARM platform, and avoid some potential problems which may occur, a method for determining the running difference of the process virtual machine is needed.
Disclosure of Invention
To this end, the present invention provides a method and system for determining a running difference of a process virtual machine, so as to solve or at least alleviate the above problems.
According to one aspect of the invention, a method for determining running difference of a process virtual machine is provided, which is executed on a first computing device, wherein the first computing device is in communication connection with a second computing device; the first computing device comprises a first architecture processor and runs a first operating system, and a first process virtual machine and a first service program are deployed on the first operating system; the second computing device comprises a second architecture processor and runs a second operating system, and a second process virtual machine and a second service program are deployed on the second operating system; the method comprises the following steps: simulating and executing a second framework program through a first process virtual machine to generate a first execution result file; a first service program acquires a first execution command, and analyzes the first execution command to generate a first text file; sending the first text file to a second service program so that the second service program can analyze the first text file to generate a second execution command; sending the second architecture program to a second service program, so that the second service program starts a second process virtual machine through the second execution command, and simulates and executes the second architecture program through the second process virtual machine to generate a second execution result file; and starting a comparison program, and comparing the first execution result file with the second execution result file through the comparison program to determine the running difference information of the process virtual machine based on the first architecture and the second architecture.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, comparing the first execution result file with the second execution result file includes: generating a first data list based on the first execution result file, and generating a second data list based on the second execution result file; deleting the same data positioned in the same row in the first data list and the second data list, and comparing the rest data in the first data list with the rest data in the second data list.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, comparing the remaining data in the first data list with the remaining data in the second data list includes: and dividing the residual data in the first data list and the residual data in the second data list into a plurality of data blocks and comparing the data blocks.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, before starting the first service program by the first process virtual machine, the method includes: and starting the first process virtual machine, and starting the first service program through the first process virtual machine.
Optionally, in the method for determining running differences of process virtual machines according to the present invention, before sending the first text file to the second service program, the method includes: informing the second service program to start the second process virtual machine; sending the first text file to a second service program, including: and responding to a request of a second service program for acquiring the first text file, and sending the first text file to the second service program.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, sending the second framework program to a second service program includes: and responding to a request of the second service program for acquiring the second architecture program, and sending the second architecture program to the second service program.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, before comparing the first execution result file with the second execution result file, the method includes: responding to a message sent by the second computing device that the execution of the second architecture program is finished, and requesting to acquire a second execution result file from the second service program; and responding to a message that the simulation of the first process virtual machine finishes the execution of the second framework program, and acquiring a first execution result file.
Optionally, in the method for determining an operation difference of a process virtual machine according to the present invention, the determining, by the process virtual machine, difference information of the process virtual machine that operates based on a first architecture and a second architecture includes: determining that a system call engine of the process virtual machine operates based on difference information of the first architecture and the second architecture.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, a compatible layer of a second operating system is further deployed on the first operating system, and the performing of the second framework program through the first process virtual machine simulation includes: and simulating and running the compatible layer through the first process virtual machine, and executing a second architecture program based on the compatible layer simulation.
Optionally, in the method for determining a running difference of a process virtual machine according to the present invention, the first framework is an ARM framework, and the first operating system is a UOS operating system; the second architecture is an X86 architecture, and the second operating system is a Windows operating system.
According to one aspect of the invention, a system for determining running differences of process virtual machines is provided, which comprises the following steps: a first computing device comprising a first architecture processor and running a first operating system on which a first process virtual machine and a first service program are deployed, the first computing device being adapted to perform the method described above; and the second computing device comprises a second architecture processor and runs a second operating system, and a second process virtual machine and a second service program are deployed on the second operating system.
According to an aspect of the invention, there is provided a computing device comprising: at least one processor; a memory storing program instructions, wherein the program instructions are configured to be executed by the at least one processor, the program instructions comprising instructions for performing the method for determining process virtual machine operation differences as described above.
According to an aspect of the present invention, there is provided a readable storage medium storing program instructions, which when read and executed by a computing device, cause the computing device to perform the method for determining a running difference of a process virtual machine as described above.
According to the technical scheme of the invention, a method for determining running difference of a process virtual machine is provided, wherein the process virtual machine and a service program are respectively deployed on first computing equipment and second computing equipment with different architectures, the second architecture program is executed on the first computing equipment through simulation of the first process virtual machine to generate a first execution result file, a first execution command input by a user is obtained through the first service program, the first execution command is analyzed into a first text file, and the first text file is sent to a second service program of the second computing equipment. The second service program may parse the first text file into a text file, and after acquiring the second framework program from the first computing device, start the second process virtual machine through the second execution command, and simulate and execute the second framework program through the second process virtual machine to generate a second execution result file. Finally, the first computing device can determine the difference information of the system call engine of the process virtual machine running based on the first architecture and the second architecture by starting the comparison program and comparing the first execution result file with the second execution result file through the comparison program. According to the method, the system call engine of the progress virtual machine can be automatically searched for the difference based on the operation of different architecture platforms under the unattended condition, so that the operation difference of a plurality of architecture platforms can be searched in batch, the working efficiency is favorably improved, the misoperation rate is reduced, and the labor cost is saved.
Furthermore, according to the method of the present invention, the same data in the same row in the two data lists corresponding to the two execution result files are deleted, and then the remaining data are divided into data blocks for comparison, so that the compared data amount can be greatly reduced, and the comparison efficiency and the comparison speed can be improved.
The above description is only an overview of the technical solutions of the present invention, and the present invention can be implemented in accordance with the content of the description so as to make the technical means of the present invention more clearly understood, and the above and other objects, features, and advantages of the present invention will be more clearly understood.
Drawings
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings, which are indicative of various ways in which the principles disclosed herein may be practiced, and all aspects and equivalents thereof are intended to be within the scope of the claimed subject matter. The above and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description read in conjunction with the accompanying drawings. Throughout this disclosure, like reference numerals generally refer to like parts or elements.
FIG. 1 illustrates a schematic diagram of a system 100 for determining differences in the operation of process virtual machines, according to one embodiment of the invention;
FIG. 2 shows a schematic diagram of a computing device 200, according to one embodiment of the invention;
FIG. 3 illustrates a flow diagram of a method 300 of determining process virtual machine operational differences according to one embodiment of the invention;
FIG. 4 illustrates a timing diagram of a method of determining differences in the operation of process virtual machines according to one embodiment of the invention.
Detailed Description
Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
FIG. 1 shows a schematic diagram of a system 100 for determining differences in the operation of process virtual machines, according to one embodiment of the invention.
As shown in fig. 1, a system 100 for determining a running difference of a process virtual machine includes a first computing device 110 and a second computing device 120, wherein the first computing device 110 is communicatively connected with the second computing device 120, for example, through a wired or wireless network connection. The first computing device 110 includes a first architecture processor 115 and runs a first operating system. The first process virtual machine 111, the first service program 112, the second architecture program, and the contrast program are deployed on the first operating system of the first computing device 110.
The second computing device 120 includes a second architecture processor 125 and runs a second operating system, and a second process virtual machine 121 and a second service program 122 are deployed on the second operating system of the second computing device 120.
In one embodiment, the first computing device 110 may be implemented as a client and the second computing device 120 may be implemented as a server.
It should be noted that, in the embodiment of the present invention, the first process virtual machine 111 and the second process virtual machine 121 are the same process virtual machine, and only differ in the operating environment. To distinguish process virtual machines running on different architecture platforms, the process virtual machine running on the first architecture processor 115 and the first operating system of the first computing device 110 is referred to as a first process virtual machine 111, and the process virtual machine running on the second architecture processor 125 and the second operating system of the second computing device 120 is referred to as a second process virtual machine 121.
It should be further noted that, in the embodiment of the present invention, the first computing device 110 and the second computing device 120 may recognize the control command of each other through the first service program 112 and the second service program 122, and may transmit a message or a file to each other.
It should be noted that, in the embodiment of the present invention, specific types of the first architecture and the second architecture are not limited.
In one embodiment, the first architecture may be an ARM architecture and accordingly, the first architecture processor 115 may be an ARM processor. The first operating system may be a UOS operating system. The second architecture may be an X86 architecture, and accordingly, the second architecture processor 125 may be an X86 processor. The second operating system may be a Windows operating system.
According to an embodiment of the present invention, hook (Hook) is performed on the process virtual machines (the first process virtual machine 111 and the second process virtual machine 121), so that the process virtual machines can determine whether to start the background service programs (the first service program 112 and the second service program 122) according to the incoming environment variables, and before the process virtual machines complete the execution and exit, an execution completion message can be sent to the service programs. In addition, the service program may obtain commands input by the user.
In an embodiment of the present invention, at the first computing device 110, the first process virtual machine 111 is started, and the first service program 112 is started through the first process virtual machine 111. Subsequently, the second framework program may be simulated by the first process virtual machine 111 to be executed to generate a first execution result file.
The first service program 112 of the first computing device 110 may obtain a first execution command input by a user of the first computing device 110, parse the first execution command, generate a first text file, and send the first text file to the second service program 122 of the second computing device 120. Here, in one implementation, the first text file may be implemented as a json text file.
The second service program 122 of the second computing device 120 generates a second execution command suitable for execution at the second computing device 120 by parsing the first text file, and may then request acquisition of the second architecture program from the first computing device 110.
After the first service program 112 of the first computing device 110 sends the second architecture program to the second service program 122 of the second computing device 120, the second service program 122 of the second computing device 120 may start the second process virtual machine 121 by executing the second execution command, and after the second process virtual machine 121 is started, the second architecture program from the first computing device 110 may be simulated by the second process virtual machine 121 to generate a second execution result file.
After the first process virtual machine 111 finishes simulating the execution of the second architecture program and generates the first execution result file, and the second process virtual machine 121 finishes simulating the execution of the second architecture program and generates the second execution result file, the first service program 112 of the first computing device 110 obtains the first execution result file and the second execution result file, and starts the comparison program. By comparing the first execution result file with the second execution result file through the comparison program, the difference information of the process virtual machine running based on the first architecture and the second architecture can be determined. In particular, it may be determined that a system call engine of the process virtual machine operates based on difference information of the first architecture and the second architecture.
In the embodiment of the present invention, the first computing device 110 and the second computing device 120 may be a personal computer such as a desktop computer and a notebook computer, and may also be a mobile phone, a tablet computer, a multimedia device, a smart wearable device, and the like, but are not limited thereto.
In an embodiment of the present invention, the first computing device 110 is adapted to perform the method 300 of the present invention for determining process virtual machine operational differences. The method 300 of determining process virtual machine operating differences of the present invention will be described in detail below.
In one embodiment of the invention, the first computing device 110 and the second computing device 120 may each be implemented as a computing device as shown below.
FIG. 2 shows a schematic diagram of a computing device 200, according to one embodiment of the invention. As shown in FIG. 2, in a basic configuration, computing device 200 includes at least one processing unit 202 and system memory 204. According to one aspect, the processing unit 202 may be implemented as a processor depending on the configuration and type of computing device. The system memory 204 includes, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. According to one aspect, operating system 205 is included in system memory 204.
According to one aspect, the operating system 105 is, for example, adapted to control the operation of the computing device 200. Further, the examples are practiced in conjunction with a graphics library, other operating systems, or any other application program, and are not limited to any particular application or system. This basic configuration is illustrated in fig. 2 by those components within the dashed line. According to one aspect, computing device 200 has additional features or functionality. For example, according to one aspect, computing device 200 includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in FIG. 2 by removable storage device 209 and non-removable storage device 210.
As stated hereinabove, according to one aspect, a program module 203 is stored in system memory 204. According to one aspect, the program module 203 may include one or more applications, the invention is not limited to the type of application, for example, the applications may include: email and contacts applications, word processing applications, spreadsheet applications, database applications, slide show applications, drawing or computer-aided applications, web browser applications, and the like. In an embodiment according to the invention, program module 203 includes a plurality of program instructions for performing the method 300 of determining process virtual machine operational differences of the present invention.
According to one aspect, a process virtual machine, a service program, is included in the program module 203. The process virtual machine and service program are configured to perform the method 300 of the present invention for determining process virtual machine operational differences.
According to one aspect, the processing unit 202 may be implemented as a first architecture processor and the operating system 205 may be implemented as a first operating system.
According to one aspect, examples may be practiced in a circuit comprising discrete electronic elements, a packaged or integrated electronic chip containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, an example may be practiced via a system on a chip (SOC) in which each or many of the components shown in fig. 2 may be integrated on a single integrated circuit. According to one aspect, such SOC devices may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all integrated (or "burned") onto a chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein may be operated via application-specific logic integrated with other components of the computing device 200 on the single integrated circuit (chip). Embodiments of the invention may also be practiced using other technologies capable of performing logical operations (e.g., AND, OR, AND NOT), including but NOT limited to mechanical, optical, fluidic, AND quantum technologies. In addition, embodiments of the invention may be practiced within a general purpose computer or in any other circuits or systems.
According to one aspect, computing device 200 may also have one or more input devices 212, such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 214 such as a display, speakers, printer, etc. may also be included. The foregoing devices are examples and other devices may also be used. Computing device 200 may include one or more communication connections 216 that allow communication with other computing devices 218. Examples of suitable communication connections 216 include, but are not limited to: RF transmitter, receiver and/or transceiver circuitry; universal Serial Bus (USB), parallel, and/or serial ports.
The term computer readable media as used herein includes computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules. System memory 204, removable storage 209, and non-removable storage 210 are all examples of computer storage media (i.e., memory storage). Computer storage media may include Random Access Memory (RAM), read Only Memory (ROM), electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture that can be used to store information and that can be accessed by computing device 200. In accordance with one aspect, any such computer storage media may be part of computing device 200. Computer storage media does not include a carrier wave or other propagated data signal.
According to one aspect, communication media is embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal (e.g., a carrier wave or other transport mechanism) and includes any information delivery media. According to one aspect, the term "modulated data signal" describes a signal that has one or more feature sets or that has been altered in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio Frequency (RF), infrared, and other wireless media.
In an embodiment in accordance with the invention, computing device 200 is configured to perform a method 300 of determining process virtual machine operational differences in accordance with the invention. The computing device 200 includes one or more processors, and one or more readable storage media storing program instructions that, when configured to be executed by the one or more processors, cause the computing device to perform a method 300 of determining process virtual machine operational differences in embodiments of the present invention.
FIG. 3 illustrates a flow diagram of a method 300 of determining process virtual machine operational differences in accordance with one embodiment of the present invention. The method 300 is suitable for execution in a first computing device 110, such as the computing device 200 described above. Additionally, FIG. 4 illustrates a timing diagram of a method of determining differences in the operation of process virtual machines, according to one embodiment of the invention.
In an embodiment consistent with the invention, first computing device 110 is communicatively connected to second computing device 120. The first computing device 110 includes a first architecture processor 115 and runs a first operating system. The first process virtual machine 111, the first service program 112, the second architecture program, and the contrast program are deployed on the first operating system of the first computing device 110.
The second computing device 120 includes a second architecture processor 125 and runs a second operating system, and a second process virtual machine 121 and a second service program 122 are deployed on the second operating system of the second computing device 120.
It should be noted that, in the embodiment of the present invention, the first process virtual machine 111 and the second process virtual machine 121 are the same process virtual machine, and only differ in that the running environments are different. To distinguish process virtual machines running on different architecture platforms, the process virtual machine running on the first architecture processor 115 and the first operating system of the first computing device 110 is referred to as a first process virtual machine 111, and the process virtual machine running on the second architecture processor 125 and the second operating system of the second computing device 120 is referred to as a second process virtual machine 121.
It should be further noted that, in the embodiment of the present invention, the first computing device 110 and the second computing device 120 may recognize the control command of each other through the first service program 112 and the second service program 122, and may transmit a message or a file to each other.
It should be noted that, in the embodiment of the present invention, specific types of the first architecture and the second architecture are not limited.
In one embodiment, the first architecture may be an ARM architecture and, accordingly, the first architecture processor 115 may be an ARM processor. The first operating system may be a UOS operating system. The second architecture may be an X86 architecture, and accordingly, the second architecture processor 125 may be an X86 processor. The second operating system may be a Windows operating system.
As shown in fig. 3, the method 300 begins at step 310.
Before step 310 is performed, the first process virtual machine 111 is started on the first computing device 110, and the first service program 112 is started by the first process virtual machine 111.
According to an embodiment of the present invention, before executing the method 300, by Hook-hooking the process virtual machines (the first process virtual machine 111 and the second process virtual machine 121), the process virtual machines may be caused to determine whether to start the background service programs (the first service program 112 and the second service program 122) according to the incoming environment variables, and before the process virtual machines are executed completely and quit, an execution completion message may be sent to the service programs. In addition, the service program may obtain commands input by the user.
Thus, after the first computing device 110 starts the first process virtual machine 111, the first process virtual machine 111 may determine whether to start the first service program 112 according to the incoming environment parameters, and start the first service program 112 if it is determined to start the first service program 112 according to the incoming environment parameters.
In step 310, at the first computing device 110, the second framework program is simulated to be executed by the first process virtual machine 111 to generate a first execution result file.
It should be noted that the second architecture program is an application program based on the second architecture and the second operating system, in other words, the second architecture program can be executed based on the second architecture processor 125 and the second operating system.
In one embodiment, the first architecture may be an ARM architecture and the first operating system may be a UOS operating system. The second architecture may be an X86 architecture and the second operating system may be a Windows operating system. And the compatible layer (Wine) only supports the X86 and X64 architectures and does not support the ARM architecture. Based on this, when the first computing device 110 simulates execution of the second architecture program through the first process virtual machine 111, it is also necessary to deploy a compatible layer (Wine) on the first operating system of the first computing device 110, simulate running of the compatible layer through the first process virtual machine 111, and simulate execution of the second architecture program (based on the second architecture and the second operating system) based on the compatible layer. Specifically, the first process virtual machine 111 can convert the second architecture instruction of the compatible layer and the second architecture program into the first architecture instruction (ARM instruction) and execute the first architecture instruction.
Subsequently, in step 320, the first service program 112 of the first computing device 110 obtains a first execution command input by the user of the first computing device 110, and parses the first execution command to generate a first text file. Here, in one implementation, the first text file may be implemented as a json text file.
Next, the first service program 112 may notify the second service program 122 of the second computing device 120 to start the second process virtual machine 121.
Next, in step 330, the first service program 112 of the first computing device 110 may send the first text file to the second service program 122 of the second computing device 120.
Specifically, the second service program 122 of the second computing device 120 sends a request for obtaining the first text file to the first service program 112 of the first computing device 110 after receiving the notification message for starting the second process virtual machine 121 sent by the first service program 112 of the first computing device 110. The first service program 112 of the first computing device 110 sends the first text file to the second service program 122 of the second computing device 120 in response to a request by the second service program 122 of the second computing device 120 to obtain the first text file.
Subsequently, the second service program 122 parses the first text file, and generates a second execution command. Here, the second execution command is a command suitable for execution at the second computing device 120.
The second service program 122 of the second computing device 120 may send a request to the first computing device 110 to acquire the second framework program after completing parsing the first text file and generating the second execution command, so as to request to acquire the second framework program from the first computing device 110.
Subsequently, in step 340, the first service program 112 of the first computing device 110 sends the second architecture program to the second service program 122 of the second computing device 120 in response to a request for the second service program 122 of the second computing device 120 to obtain the second architecture program. In this way, the second service program 122 of the second computing device 120 may start the second process virtual machine 121 by executing the second execution command, and after the second process virtual machine 121 starts, the second process virtual machine 121 may simulate execution of the second architecture program from the first computing device 110 to generate a second execution result file.
Here, it should be noted that, when the first service program 112 of the first computing device 110 parses the first execution command and generates the first text file, the environment parameter for starting the first service program 112 is not set, so that the second process virtual machine 121 of the second computing device 120 can directly start to simulate and execute the second framework program after entering the execution subject.
In an embodiment of the present invention, after the second process virtual machine 121 of the second computing device 120 completes the simulation of the execution of the second architecture program, the second computing device 120 sends a message that the execution of the second architecture program is completed to the first computing device 110. Specifically, after the second process virtual machine 121 finishes executing the second framework program, it sends a message that the second framework program is completely executed to the second service program 122, and exits from execution. Then, the second service program 122 sends a message that the execution of the second framework program is completed to the first service program 112 of the first computing device 110.
In one implementation, the first service program 112 of the first computing device 110 may continue to wait for the second computing device's execution complete message within a predetermined time range until receiving the second architecture program execution complete message sent by the second computing device 120.
After receiving the message sent by the second computing device 120 that the second architecture program is executed completely, the first service program 112 of the first computing device 110 requests the second service program 122 of the second computing device 120 to obtain a second execution result file in response to the message sent by the second computing device 120 that the second architecture program is executed completely. Here, after the second process virtual machine 121 finishes the simulation of executing the second framework program, it may generate a second execution result file and provide the second execution result file to the second service program 122, so that the second service program 122 may send the second execution result file to the first service program 112 of the first computing device 110.
In addition, in an embodiment, after the first process virtual machine 111 of the first computing device 110 finishes simulating the execution of the second architecture program, a first execution result file may be generated, and the first process virtual machine 111 may send a message that the simulation of the execution of the second architecture program is finished to the first service program 112, and exit the execution. The first service program 112 of the first computing device 110 may obtain the first execution result file from the first process virtual machine 111 in response to the first process virtual machine 111 simulating execution of the second architecture program done message.
Finally, in step 350, the first service program 112 of the first computing device 110 starts a comparison program, and compares the first execution result file with the second execution result file through the comparison program to determine the difference information of the process virtual machine based on the operation of the first architecture and the second architecture.
Thus, by comparing the first execution result file of the first process virtual machine 111 simulating the execution of the second architecture program on the first architecture processor 115 and the first operating system with the second execution result file of the second architecture program on the second architecture processor 125 and the second operating system by the second process virtual machine 121, the difference information of the process virtual machine based on the operation of the first architecture and the second architecture can be determined. Specifically, it may be determined that a system call engine of the process virtual machine operates based on difference information of the first architecture and the second architecture.
It should be noted that the process virtual machine includes a system call engine, the system call engine in the first process virtual machine 111 is a first system call engine, and the system call engine in the second process virtual machine 121 is a second system call engine. According to one embodiment of the invention, by comparing the first execution result file with the second execution result file through the comparison program, the system calling engine of the process virtual machine can be determined to operate based on the difference information of the first architecture and the second architecture.
However, the method 300 according to the present invention is not limited to determining the difference that the system call engine of the process virtual machine operates based on different architecture platforms, and may also determine the difference that other modules of the process virtual machine operate based on different architecture platforms.
According to an embodiment of the present invention, when comparing the first execution result file with the second execution result file, the comparison program may first generate a first data list based on the first execution result file and a second data list based on the second execution result file. Here, the data in the first execution result file may be specifically divided by rows and stored in a first list, so as to obtain a first data list; and dividing the data in the second execution result file according to rows and storing the data in a second list to obtain a second data list. It is to be understood that the first data list is generated based on data in the first execution result file and the second data list is generated based on data in the second execution result file. The first data list and the second data list may respectively include multiple lines of data.
Then, the same data in the same row in the first data list and the second data list may be deleted, and the remaining data in the first data list may be compared with the remaining data in the second data list.
Specifically, the first data list and the second data list may respectively include multiple lines of data, and each line of data corresponds to a line number. The data of the first data list and the data of the second data list marked with the same row number are compared in sequence, whether the data of the first data list and the data of the second data list marked with the same row number are the same or not is determined, if the data of the two data lists marked with the same row number are the same, the data are the same data in the first data list and the same data in the second data list positioned in the same row, and the same data in the first data list and the same data in the second data list positioned in the same row are deleted.
After comparing all the row data marked with the same row number in the first data list and the second data list, deleting all the same data positioned in the same row in the first data list and the second data list, and then comparing the residual data in the first data list with the residual data in the second data list. In this way, the same data in the same row in the two data lists are deleted, and only the rest data are compared, so that the compared data amount can be greatly reduced, and the comparison efficiency is improved.
In one embodiment, after the remaining data in the first data list and the remaining data in the second data list are divided into a plurality of data blocks, the data blocks in the first data list and the data blocks in the second data list may be compared. Therefore, the method is beneficial to realizing rapid comparison and further improving the comparison efficiency.
In one implementation, the comparison program of the first computing device 110 may utilize the standard library of python, difflib, to compare differences between text in the first execution result file and text in the second execution result file.
In one embodiment, the comparison program may generate the comparison result after comparing the text in the first execution result file with the second execution result file, and present the comparison result on the first computing device 110, so as to present the comparison result to the user. In one implementation, the comparison procedure may output the comparison results in different formats using the standard library Difflib. For example, the comparison result may be in the format of an HTML document. That is, the comparison result is presented to the user through the HTML document. In this way, the user can determine, from the comparison result (HTML document), the difference information that the process virtual machine operates based on the first architecture and the second architecture, for example, the difference information that the system call engine of the process virtual machine operates based on the first architecture and the second architecture.
According to the embodiment of the invention, after the difference information of the process virtual machine based on the operation of the first architecture and the second architecture is determined, the reason of the difference can be quickly positioned, so that the purpose of improving and perfecting the process virtual machine is achieved, and finally the process virtual machine can more stably and reliably operate an X86 program on an ARM platform. For example, after determining the difference information according to the method 300 of the present invention, a difference mapping table of two architecture platforms may be established based on the difference information, and a system call engine in the process virtual machine may be configured according to the difference mapping table, so that the system call engine may convert the parameter into a semantic corresponding to the architecture platform and then forward the semantic to the real system, thereby solving the semantic problem between different architecture platforms.
According to the method for determining the running difference of the process virtual machines, the process virtual machines and the service programs are respectively deployed on first computing equipment and second computing equipment of different architectures, the second architecture programs are executed on the first computing equipment through simulation of the first process virtual machines to generate first execution result files, first execution commands input by users are obtained through the first service programs, the first execution commands are analyzed into first text files, and the first text files are sent to second service programs of the second computing equipment. The second service program may parse the first text file into a text file, and after acquiring the second framework program from the first computing device, start the second process virtual machine through the second execution command, and simulate and execute the second framework program through the second process virtual machine to generate a second execution result file. Finally, the first computing device can determine the difference information of the system call engine of the process virtual machine running based on the first architecture and the second architecture by starting the comparison program and comparing the first execution result file with the second execution result file through the comparison program. According to the method, the system call engine of the progress virtual machine can be automatically searched for the difference based on the operation of different architecture platforms under the unattended condition, so that the operation difference of a plurality of architecture platforms can be searched in batch, the working efficiency is favorably improved, the misoperation rate is reduced, and the labor cost is saved.
Furthermore, according to the method of the present invention, the same data in the same row in the two data lists corresponding to the two execution result files are deleted, and then the remaining data are divided into data blocks for comparison, so that the data amount for comparison can be greatly reduced, and the comparison efficiency and the comparison speed can be improved.
The various techniques described herein may be implemented in connection with hardware or software or, alternatively, with a combination of both. Thus, the methods and apparatus of the present invention, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as removable hard drives, U.S. disks, floppy disks, CD-ROMs, or any other machine-readable storage medium, wherein, when the program is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention.
In the case of program code execution on programmable computers, the mobile terminal will generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Wherein the memory is configured to store program code; the processor is configured to perform the method of determining a process virtual machine operating difference of the present invention according to instructions in the program code stored in the memory.
By way of example, and not limitation, readable media may comprise readable storage media and communication media. Readable storage media store information such as computer readable instructions, data structures, program modules or other data. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. Combinations of any of the above are also included within the scope of readable media.
In the description provided herein, algorithms and displays are not inherently related to any particular computer, virtual system, or other apparatus. Various general purpose systems may also be used with examples of this invention. The required structure for constructing such a system will be apparent from the description above. Moreover, the present invention is not directed to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any descriptions of specific languages are provided above to disclose the best mode of the invention.
In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. However, the disclosed method should not be interpreted as reflecting an intention that: that the invention as claimed requires more features than are expressly recited in each claim. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.
Those skilled in the art will appreciate that the modules or units or components of the devices in the examples disclosed herein may be arranged in a device as described in this embodiment or alternatively may be located in one or more devices different from the devices in this example. The modules in the foregoing examples may be combined into one module or may additionally be divided into multiple sub-modules.
Those skilled in the art will appreciate that the modules in the device in an embodiment may be adaptively changed and disposed in one or more devices different from the embodiment. The modules or units or components of the embodiments may be combined into one module or unit or component, and furthermore they may be divided into a plurality of sub-modules or sub-units or sub-components. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and all of the processes or elements of any method or apparatus so disclosed, may be combined in any combination, except combinations where at least some of such features and/or processes or elements are mutually exclusive. Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
Furthermore, those skilled in the art will appreciate that while some embodiments described herein include some features included in other embodiments, rather than other features, combinations of features of different embodiments are meant to be within the scope of the invention and form different embodiments.
Additionally, some of the embodiments are described herein as a method or combination of method elements that can be implemented by a processor of a computer system or by other means of performing the described functions. A processor having the necessary instructions for carrying out the method or method elements thus forms a means for carrying out the method or method elements. Further, the elements of the apparatus embodiments described herein are examples of the following apparatus: the apparatus is used to implement the functions performed by the elements for the purpose of carrying out the invention.
As used herein, unless otherwise specified the use of the ordinal adjectives "first", "second", "third", etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.
While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this description, will appreciate that other embodiments can be devised which do not depart from the scope of the invention as described herein. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the appended claims. The present invention has been disclosed in an illustrative rather than a restrictive sense with respect to the scope of the invention, as defined in the appended claims.

Claims (11)

1. A method for determining running difference of a process virtual machine is executed on a first computing device which is in communication connection with a second computing device;
the first computing device comprises a first architecture processor and runs a first operating system, and a first process virtual machine and a first service program are deployed on the first operating system;
the second computing device comprises a second architecture processor and runs a second operating system, and a second process virtual machine and a second service program are deployed on the second operating system;
the method comprises the following steps:
simulating and executing a second architecture program through a first process virtual machine to generate a first execution result file;
a first service program acquires a first execution command, and analyzes the first execution command to generate a first text file;
sending the first text file to a second service program so that the second service program can analyze the first text file to generate a second execution command;
sending the second architecture program to a second service program so that the second service program starts a second process virtual machine through the second execution command and simulates and executes the second architecture program through the second process virtual machine to generate a second execution result file;
and comparing the first execution result file with the second execution result file to determine the difference information of the process virtual machine based on the operation of the first architecture and the second architecture.
2. The method of claim 1, wherein comparing the first execution result file to the second execution result file comprises:
generating a first data list based on the first execution result file, and generating a second data list based on the second execution result file;
and deleting the same data positioned in the same row in the first data list and the second data list, and comparing the residual data in the first data list with the residual data in the second data list.
3. The method of claim 2, wherein comparing the remaining data in the first data list to the remaining data in the second data list comprises:
and dividing the residual data in the first data list and the residual data in the second data list into a plurality of data blocks and comparing the data blocks.
4. The method of any of claims 1-3, wherein prior to sending the first text file to a second service, comprising:
informing the second service program to start the second process virtual machine;
sending the first text file to a second service program, including:
and responding to a request of a second service program for acquiring the first text file, and sending the first text file to the second service program.
5. The method of any of claims 1-3, wherein sending the second framework program to a second service program comprises:
and responding to a request of the second service program for acquiring the second architecture program, and sending the second architecture program to the second service program.
6. The method of any of claims 1-3, wherein prior to comparing the first execution result file to the second execution result file, comprising:
responding to a message sent by second computing equipment that the execution of the second architecture program is finished, and requesting to acquire a second execution result file from a second service program;
and responding to a message that the simulation of the first process virtual machine finishes the execution of the second framework program, and acquiring a first execution result file.
7. The method of any one of claims 1-3, wherein the process virtual machine includes a system call engine therein, and determining that the process virtual machine operates based on difference information between the first architecture and the second architecture comprises:
determining that a system call engine of the process virtual machine operates based on difference information of the first architecture and the second architecture.
8. The method of any of claims 1-3, wherein a compatible layer of a second operating system is further deployed on the first operating system, and executing a second architectural program through first process virtual machine emulation comprises:
and simulating and running the compatible layer through the first process virtual machine, and executing a second architecture program based on the compatible layer simulation.
9. A system for determining process virtual machine operational differences, comprising:
a first computing device comprising a first architecture processor and running a first operating system having a first process virtual machine, a first service program deployed thereon, the first computing device adapted to perform the method of any of claims 1-8;
and the second computing device comprises a second architecture processor and runs a second operating system, and a second process virtual machine and a second service program are deployed on the second operating system.
10. A computing device, comprising:
at least one processor; and
a memory storing program instructions, wherein the program instructions are configured to be executed by the at least one processor, the program instructions comprising instructions for performing the method of any of claims 1-8.
11. A readable storage medium storing program instructions that, when read and executed by a computing device, cause the computing device to perform the method of any of claims 1-8.
CN202211050855.6A 2022-08-30 2022-08-30 Method, system and computing device for determining running difference of process virtual machine Active CN115145696B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211050855.6A CN115145696B (en) 2022-08-30 2022-08-30 Method, system and computing device for determining running difference of process virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211050855.6A CN115145696B (en) 2022-08-30 2022-08-30 Method, system and computing device for determining running difference of process virtual machine

Publications (2)

Publication Number Publication Date
CN115145696A true CN115145696A (en) 2022-10-04
CN115145696B CN115145696B (en) 2022-11-29

Family

ID=83415738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211050855.6A Active CN115145696B (en) 2022-08-30 2022-08-30 Method, system and computing device for determining running difference of process virtual machine

Country Status (1)

Country Link
CN (1) CN115145696B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136060A (en) * 2011-11-23 2013-06-05 联想(北京)有限公司 Operational control method and operational control device
CN103793260A (en) * 2013-10-09 2014-05-14 中国电子设备系统工程公司研究所 Platform virtualization system
CN104321745A (en) * 2012-02-07 2015-01-28 泰利瑞克股份公司 Environment and method for cross-platform development of software applications
CN107463427A (en) * 2017-06-29 2017-12-12 北京北信源软件股份有限公司 The acquisition methods and device of a kind of VME operating system type and version
US20200285500A1 (en) * 2019-03-08 2020-09-10 International Business Machines Corporation Dispatch of a secure virtual machine
CN113626133A (en) * 2021-06-29 2021-11-09 济南浪潮数据技术有限公司 Virtual machine control method, device, equipment and computer readable storage medium
CN114138423A (en) * 2021-12-13 2022-03-04 上海交通大学 Virtualization construction system and method based on domestic GPU (graphics processing Unit) display card

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136060A (en) * 2011-11-23 2013-06-05 联想(北京)有限公司 Operational control method and operational control device
CN104321745A (en) * 2012-02-07 2015-01-28 泰利瑞克股份公司 Environment and method for cross-platform development of software applications
CN103793260A (en) * 2013-10-09 2014-05-14 中国电子设备系统工程公司研究所 Platform virtualization system
CN107463427A (en) * 2017-06-29 2017-12-12 北京北信源软件股份有限公司 The acquisition methods and device of a kind of VME operating system type and version
US20200285500A1 (en) * 2019-03-08 2020-09-10 International Business Machines Corporation Dispatch of a secure virtual machine
CN113626133A (en) * 2021-06-29 2021-11-09 济南浪潮数据技术有限公司 Virtual machine control method, device, equipment and computer readable storage medium
CN114138423A (en) * 2021-12-13 2022-03-04 上海交通大学 Virtualization construction system and method based on domestic GPU (graphics processing Unit) display card

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
阳昕等: "基于平台抽象层的进程虚拟机设计与实现", 《计算机工程》 *

Also Published As

Publication number Publication date
CN115145696B (en) 2022-11-29

Similar Documents

Publication Publication Date Title
CN109325195B (en) Rendering method and system for browser, computer device and computer storage medium
CN111427803B (en) Automated random test method, apparatus, computer device and medium
US20210073108A1 (en) Virtualized device-based test system and method thereof
US11237948B2 (en) Rendering engine component abstraction system
CN114021440B (en) FPGA (field programmable Gate array) time sequence simulation verification method and device based on MATLAB (matrix laboratory)
CN110532182A (en) A kind of automated testing method and device of virtual platform
CN110516447A (en) A kind of method and apparatus of identification terminal simulator
CN112154417B (en) Sharing code libraries between stand-alone and Web-based versions of an application via an emulated network communication channel
CN115145696B (en) Method, system and computing device for determining running difference of process virtual machine
CN112860587A (en) UI automatic test method and device
CN112597718A (en) Verification method, verification device and storage medium for integrated circuit design
CN115374017A (en) Method for capturing site during simulation running of executable file and computing equipment
CN114816772B (en) Debugging method, debugging system and computing device for application running based on compatible layer
WO2021056823A1 (en) System calling method and apparatus, and electronic device
CN115185638A (en) Method for acquiring call stack during simulation running of application program and computing equipment
CN116540929A (en) Virtualized reading method and device of disk array, electronic equipment and storage medium
CN116775202A (en) Fuzzy test method, device, medium, electronic equipment and computer program product
CN115687146A (en) BIOS (basic input output System) test method and device, computer equipment and storage medium
CN115576711A (en) Method and system for simulating returned data and computing equipment
CN111949510B (en) Test processing method, device, electronic equipment and readable storage medium
CN110327626B (en) Virtual server creation method and device
US9697018B2 (en) Synthesizing inputs to preserve functionality
CN108848183B (en) Login method and device for simulation user
CN111859403A (en) Method and device for determining dependency vulnerability, electronic equipment and storage medium
CN117251118B (en) Virtual NVMe simulation and integration supporting method and system

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