WO2014078820A1 - Conversion d'appels de fonction dans des environnements virtualisés - Google Patents

Conversion d'appels de fonction dans des environnements virtualisés Download PDF

Info

Publication number
WO2014078820A1
WO2014078820A1 PCT/US2013/070641 US2013070641W WO2014078820A1 WO 2014078820 A1 WO2014078820 A1 WO 2014078820A1 US 2013070641 W US2013070641 W US 2013070641W WO 2014078820 A1 WO2014078820 A1 WO 2014078820A1
Authority
WO
WIPO (PCT)
Prior art keywords
function call
environment
code
thread
application
Prior art date
Application number
PCT/US2013/070641
Other languages
English (en)
Inventor
Frank G. BOYNE
David MAW
Original Assignee
Unisys Corporation
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 Unisys Corporation filed Critical Unisys Corporation
Publication of WO2014078820A1 publication Critical patent/WO2014078820A1/fr

Links

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

Definitions

  • the instant disclosure relates to emulated environments. More specifically, this disclosure relates to providing compatibility in an emulated environment.
  • Computer systems including the software executing on the computer system, can often be in use at a company for long periods of time. Once a computer system has demonstrated reliability, administrators at the company may be reluctant to replace the computer system. Further, replacing the computer system incurs additional costs in installation by administrators, programming by administrators, and new training for users and administrators of the replacement computer system. Another argument in favor of not replacing an older computer system may be that no new features are needed by the company. Thus, the cost of replacing the computer system may yield no additional features or improvement in performance.
  • Programs built on older computer systems may be programmed to call particular functions only available within the older computer system.
  • the older computer system may execute an operating system with exposed functions that are not available in newer operating systems.
  • replacement parts may become difficult to find.
  • the older operating system may not execute on newer computer systems, such as when the underlying computer architecture changes.
  • One conventional solution is to virtualize execution of the older operating system and/or computer software on new computer systems with updated hardware. Virtualization allows a new computer system to appear to the old computer software as an old computer system by emulating the existence of the old computer system.
  • the computer software executes in the virtualized environment without knowing that the computer hardware executing the code is translating execution of the computer software from an old computer system for execution on the new computer system.
  • virtu alizati on may allow an administrator to execute old computer software on a new computer system
  • an administrator of the virtualized environment must continue to be knowledgeable in the older computer system and the new computer system.
  • Program code for older computer systems may be written in languages, such as COBOL, that are no longer widely taught to programmers.
  • an external procedure call (EPC) mechanism may allow old computer software executing in a virtualized environment on a newer computer system to escape into the underlying environment of the new computer system.
  • the program calls a normal function and waits for that function to return a value.
  • the function call may be intercepted and diverted to a function implemented within the virtual machine.
  • the computer software must treat external procedures calls different from internal procedure calls, which increases the overhead of programming and executing the computer software.
  • a computer program executing in a first virtualized environment executing function calls to code outside the virtualized environment may be handled by a host processor of the virtualized environments by invoking managed code running in a common language runtime (CLR).
  • the computer program in the first virtualized environment may execute the function call in the virtualized environment without knowing that the function call will be executed outside the virtualized environment. For example, an apparent call to a function in the first, virtualized environment may become a call to a function within a common language runtime of a second virtualized environment.
  • Parameters, for consumption by the executed function call may be passed between the first virtualized environment and the CLR,
  • the parameters may be converted from data values corresponding to data formats for the first virtualized environment into data values corresponding to data formats for the CLR.
  • integers may be represented by a first number of bytes in the virtualized environment and by a second number of bytes in the CLR.
  • return values may be translated into a data format appropriate for the first virtualized environment.
  • a method includes receiving a first function call from an application executing in a first thread on a processor. The method also includes translating, by the processor, the first function call to a second function call. The method further includes executing, by the processor, the second function call in a second thread. In certain embodiments the second thread may be different from the first, thread.
  • a computer program product includes a non-transitory computer readable medium having code to receive a first function call from an application executing in a first thread on a processor.
  • the medium also includes code to translate the first function call to a second function call.
  • the medium further includes code to execute the second function call in a second thread.
  • the second thread may be different from the first thread.
  • an apparatus includes a memory and a processor coupled to the memory.
  • the processor is configured to receive a first function call from an application executing in a first thread on a processor.
  • the processor is also configured to translate the first function call to a second function call.
  • the processor is further configured to execute the second function call in a second thread.
  • the second thread may be different from the first thread.
  • FIGURE 1 is a block diagram of an application executing in a virtualized environment accessing code outside the virtualized environment according to one embodiment of the disclosure.
  • FIGURE. 2 is a flow chart illustrating a method for making functions available in a virtualized environment according to one embodiment of the disclosure.
  • FIGURE. 3 is a process flow diagram illustrating translating function calls with a wait period according to one embodiment of the disclosure.
  • FIGURE 4 is a process flow diagram illustrating translating function calls according to one embodiment of the disclosure.
  • FIGURE. 5 is a block diagram illustrating a computer network according to one embodiment of the disclosure.
  • FIGURE 6 is a block diagram illustrating a computer system according to one embodiment of the disclosure.
  • FIGURE 7 A is a block diagram illustrating a server hosting an emulated software environment for virtual ization according to one embodiment of the disclosure.
  • FIGURE 7B is a block diagram illustrating a se er hosting an emulated hardware environment according to one embodiment of the disclosure.
  • a lightweight procedure call (LPC) mechanism may be implemented within a host system for virtual environments to allow computer programs in a first virtualized environment to invoke functions implemented in a language not native to the virtualized environment, in the first virtual environment, the function may be invoked as if the function is just another procedure call to an entry point in a library of the first virtualized environment.
  • the LPC mechanism may convert the procedure call in the virtualized environment into a .NET method call.
  • a mechanism such as the LPC mechanism
  • development time for applications in the virtualized environment may be reduced.
  • the reduced development time may be achieved because the function calls translated by the LPC mechanism may not need to be written in a language compatible with the virtualized environment.
  • a SHA-256 hash calculation may be performed by a .NET function executed by a common language runtime (CLR) outside of the virtualized environment.
  • CLR common language runtime
  • coding a function for SHA-256 hash calculation may not be necessary for the system executing in the virtualized environment.
  • a hash calculation in a .NET framework is provided as an example, the function calls may correspond to many other functions.
  • executing functions in the CLR. may decrease processor time and memory consumed to complete execution of the function.
  • the second function call, translated from the first function call and executed on the CLR may execute outside of a virtualized environment. That is, the second function call m ⁇ ' execute in native code on the hardware of the computer system.
  • the second function call may also execute within a second virtualized environment that provides improved performance over the first virtualized environment.
  • the second virtualized environment may be different from the first virtualized environment.
  • the LPC mechanism may provide a remote procedure call (RPC) for non- remote situations.
  • RPC remote procedure call
  • the LPC mechanism may provide function translation services between an application making function calls in a first virtualized environment and a common language runtime executing in a second virtualized environment.
  • the first and second virtualized environments may be executing on separate partitions of a cloud based system, or separate processors.
  • the LPC mechanism may provide access to applications in the virtualized environment for data structures in a library outside of the virtualized environment.
  • the LPC mechanism may provide access to a B-tree, queue, hash table, or other data structure within the .NET framework to a COBOL programmer creating an application in the virtualized environment.
  • FIGURE 1 is a block diagram of an application executing in a virtualized environment accessing code outsize the virtualized environment according to one embodiment of the disclosure.
  • A. system 100 may include hardware 106 executing a virtualized environment, 108. Within the virtualized environment, the hardware 106 may host a library 108a, such as in memory, and execute an application 108b. Additionally, the hardware may execute a common language runtime (CLR) 104, which may compile the code 102 for execution on the hardware 106.
  • the code 102 may be, for example, .NET code, C# code, or the like.
  • a programmer of the application 108b may enhance the application 108b by accessing functions contained in the code 102.
  • the programmer ma ⁇ ' be able to avoid programming code for the application 108b when a function is already available in the code 102.
  • the programmer ma ⁇ ' be able to enhance performance of the application 108b by executing certain functions in the code 102 that execute natively on the hardware 106.
  • Functions within the code 102 may be listed in the library 108a, which is accessed by the application 108b.
  • the function call may be translated for execution and executed by the CLR 104.
  • FIGURE. 2 is a flow chart illustrating a method for making function calls available in a virtualized environment according to one embodiment of the disclosure.
  • the method of FIGURE 2 may allow a computer program executing in a first virtualized environment to execute code running outside that virtualized environment.
  • ALGOL/COBOL code executing in a virtualized environment may execute functions in a .NET CLR.
  • a first function call is received from an application executing in a first thread, such as the application 108b of FIGURE 1,
  • the application may be executing in a virtualized environment, in which the function call is received by a processor hosting the virtualized environment.
  • the processor may recognize that the function call is to a function located in a library external to the virtualized environment such as in the Code 102 of FIGURE 1.
  • the application may be executing a function implemented in a language not, available in the virtualized environment.
  • the virtualized environment may be hosting an operating system using COBOL or ALGOL code, and the function may be implemented in C++, C#, Java, or the like in a library external to the virtualized environment.
  • the library may execute natively on the processor through a common language runtime (CLR) executing on the processor.
  • CLR common language runtime
  • the library may also be located in a second virtualized environment hosted by the processor.
  • the first function call is translated to a second function call.
  • a component within the application or a component supporting the application such as dynamically linked code, a dynamic linked library (DLL), a shared object or other tool set, such as the library 108a of FIGURE 1 , may make the second function call available to the application. That is, the second function call may be consumed by the application or a component supporting the application.
  • a library accessible to the application ma ⁇ ' be generated, in which the library exposes target functions as entry points with parameter lists compatible with the application.
  • the translation process may be masked from the application by the library.
  • the library may also be used to conceal data structures, constants, and other additional information.
  • the library may map the first function call into a pair of calls to the LPC infrastructure.
  • One call may gather parameters and begin execution of the second function call on an independent thread.
  • a second call may retrieve results of the execution of the second function call and convert the output parameters from the second function call into a data structure accessible by the application.
  • the library may wait for an event variable to signal that execution of the second function call has completed.
  • the second function call is executed in a second thread.
  • the second thread may be different from the first thread.
  • a return value may be returned to the application in the virtualized environment.
  • the second function is isolated from the application.
  • the application may be placed into a wait state.
  • the application may be swapped out of memory by the processor while the application is in a wait state to allow other applications to execute, such as when the processor is hosting multiple virtualized environments.
  • reflection may be used to analyze the contents of the code outside the virtualized environment, identifying types and functions defined within the code, and communicate that information to other tools via a suitable description mechanism. That description can then be used to generate a program defining a library which exposes the functions for use by programmers of the application.
  • the program defining the library may be, for example, a new executive programming language (NEWP) program, an ALGOL program, a COBOL program, and/or a program developed in another programing language.
  • NWP new executive programming language
  • FIGURE 3 is a process flow diagram illustrating translating function calls with a wait period according to one embodiment of the disclosure.
  • a process flow 300 may include actions performed by an application 302, a library 304, EPC intrinsics 306, an LPC worker 308, a CLR host 310, and .NET code 312.
  • the EPC intrinsics 306 may be, for example, FCW intrinsics.
  • the application 302, the library 304, and the intrinsics 306 may execute in a virtualized environment on a first thread.
  • the LPC worker 306, the CLR host 308, and the .NET code 310 may execute in a second thread on a processor shared with the virtualized environment or on a separate processor.
  • the .NET code 310 may include a target assembly for execution by the application 302.
  • a call 320 may be generated by the application 302 requesting execution of a first function contained in the library 304.
  • the library 304 may translate the call 320 to the first function to a call 322 to a second function corresponding to a function call available in the .NET code 312.
  • the call 320 may include placing a function control word (FCW) along with parameters on a stack followed by the ENTR operator.
  • FCW may be placed on the stack to identify a function implemented within an emulated environment, such as when the first function call is mapped to a second function call in the .NET code 312.
  • the processor may proceed with calls 326 and 328 to execute the second function call and adjust the stack on the processor as if the first function call returned.
  • the processor may then continue execution of the next item on the stack following the ENTR operator.
  • the emulated environment may continue executing as if the first procedure call completed and returned, such that the processor may continue completing other tasks while waiting for the second function call to complete.
  • a call 326 from the LPC worker 308 to the CLR host 310 instructs the common language mntime host 310 to execute the .NET code 312 corresponding to the second function call, and at call 328 the CLR host 310 executes the appropriate .NET code 312.
  • the CLR host 310 m ⁇ ' compile the .NET code 312 into native code for execution by the processor. For example, when the processor is an x86 processor, the CLR host 310 may generate complex instruction set computing (CISC) code from the .NET code 312. In another example, when the processor is an ARM processor, the CLR host 310 may generate reduced instruction set computing (RISC) code from the .NET code 312.
  • CISC complex instruction set computing
  • RISC reduced instruction set computing
  • the .NET code 312 may return a value to the CLR host 310 at call 330, which is passed to the LPC worker 308 at call 332.
  • the LPC worker 308 may update a variable within the virtualized environment, notifying the library 304 that the second function call has completed.
  • the library 304 may then execute a call 336 to the intrinsics 306 to retrieve the returned value and/or returned parameters, which are returned to the library 304 at, call 338.
  • the values and/or parameters may then be returned to the application 302 at call 340.
  • the application 302 was not aware that the first function call resulted in translation and execution of the second function outside the virtualized environment.
  • the .NET code 312 may execute within a copy of a Microsoft .NET mntime controlled via the CLR host 310.
  • the .NET mntime may isolate the .NET code 312 from the processes executing within the virtualized environment hosting the application 302.
  • the CLR host 310 may he used to further limit and control the code running within the runtime. For example, the CLR host 310 may enforce a restriction that only safe and/or verifiable code may be executed.
  • safe code may be code that cannot access unmanaged memory.
  • FIGURE 4 is a process flow diagram illustrating translating function calls according to one embodiment of the disclosure.
  • a process flow 400 includes an application 402, a library 404, FCW intrinsics 406, a CLR host 408, and .NET code 410.
  • the application 402 calls a first function in the library 404.
  • the library 404 translates the first function call to a second function call and instructs the FCW intrinsics 406 to execute the second function call.
  • the FC W intrinsics 406 instructs the CLR host 408 to execute .NET code 410 corresponding to the second function call.
  • the second function is executed by the CLR host 408.
  • a return value may be transmitted from the executed .NET code 410 to the application 402.
  • FIGURE 5 illustrates one embodiment of a system 500 for an information system, including a system for hosting applications in virtualized environments.
  • the system 500 may include a server 502, a data storage device 506, a network 508, and a user interface device 510.
  • the server 502 may be a dedicated server or one server in a cloud computing system.
  • the server 502 may also be a hypervisor-based system executing one or more guest partitions.
  • the system 500 may include a storage controller 504, or storage server configured to manage data communications between the data storage device 506 and the server 502 or other components in communication with the network 508.
  • the storage controller 504 may be coupled to the network 508.
  • the user interface device 510 is referred to broadly and is intended to encompass a suitable processor-based device such as a desktop computer, a laptop computer, a personal digital assistant (PDA) or tablet computer, a smartphone or other a mobile communication device having access to the network 508.
  • sensors such as a camera or accelerometer
  • the user interface device 510 may access the Internet or other wide area or local area network to access a web application or web service hosted by the server 502 and provide a user interface for enabling a user to enter or receive information.
  • the network 508 may facilitate communications of data, such as deployment packages, between the sewer 502 and the user interface device 510,
  • the network 508 may include any type of communications network including, but not limited to, a direct PC-to-PC connection, a local area network (LAN), a wide area network (WAN), a modem-to-modem connection, the Internet, a combination of the above, or any other communications network now known or later developed within the networking arts which permits two or more computers to communicate.
  • the user interface device 510 accesses the server 502 through an intermediate server (not shown).
  • the user interface device 510 may access an application server.
  • the application server may fulfill requests from the user interface device 510 by accessing a database management system (DBMS).
  • DBMS database management system
  • the user interface device 510 may be a computer or phone executing a Java application making requests to a JBOSS server executing on a Linux server, which fulfills the requests by accessing a relational database management system (RDMS) on a mainframe server.
  • RDMS relational database management system
  • FIGURE 6 illustrates a computer system 600 adapted according to certain embodiments of the server 502 and/or the user interface device 510.
  • the central processing unit (“CPU") 602 is coupled to the system bus 604.
  • the CPU 602 may be a general purpose CPU or microprocessor, graphics processing unit (“GPU”), and/or microcontroller.
  • the present embodiments are not restricted by the architecture of the CPU 602 so long as the CPU 602, whether directly or indirectly, supports the operations as described herein.
  • the CPU 602 may execute the various logical instructions according to the present embodiments.
  • the computer system 600 also may include random access memory (RAM) 608, which may be synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), or the like.
  • RAM random access memory
  • the computer system 600 may utilize RAM 608 to store the various data structures used by a software application.
  • the computer system 600 may also include read only memory (ROM) 606 which may be PROM, EPROM, EEPROM, optical storage, or the like.
  • ROM read only memory
  • the ROM may store configuration information for booting the computer system 600.
  • the RAM 608 and the ROM 606 hold user and system data, and both the RAM 608 and the ROM 606 may be randomly accessed.
  • the computer system 600 may also include an input/output (I/O) adapter 610, a communications adapter 614, a user interface adapter 616, and a display adapter 622.
  • the I/O adapter 610 and/or the user interface adapter 616 may, in certain embodiments, enable a user to interact with the computer system 600.
  • the display adapter 622 may display a graphical user interface (GUI) associated with a software or web-based application on a display device 624, such as a monitor or touch screen.
  • GUI graphical user interface
  • the I/O adapter 610 may couple one or more storage devices 612, such as one or more of a hard drive, a solid state storage device, a flash drive, a compact, disc (CD) drive, a floppy disk drive, and a tape drive, to the computer system 600.
  • the data storage 612 may be a separate server coupled to the computer system 600 through a network connection to the I/O adapter 610.
  • the communications adapter 614 may be adapted to couple the computer system 600 to the network 508, which may be one or more of a LAN, WAN, and/or the Internet.
  • the communications adapter 614 may also be adapted to couple the computer system 600 to other networks such as a global positioning system (GPS) or a Bluetooth network.
  • GPS global positioning system
  • the user interface adapter 616 couples user input devices, such as a keyboard 620, a pointing device 618, and/or a touch screen (not shown) to the computer system 600.
  • the keyboard 620 may be an on-screen keyboard displayed on a touch panel.
  • Additional devices such as a camera, microphone, video camera, accelerometer, compass, and or gyroscope may be coupled to the user interface adapter 616.
  • the display adapter 622 may be driven by the CPU 602 to control the display on the display device 624. Any of the devices 602-622 may be physical and/or logical.
  • the applications of the present disclosure are not limited to the architecture of computer system 600. Rather the computer system 600 is provided as an example of one type of computing device that may be adapted to perform the functions of the server 502 and/or the user interface device 510.
  • any suitable processor-based device may be utilized including, without limitation, personal data assistants (PDAs), tablet, computers, smartphones, computer game consoles, and multi-processor servers.
  • PDAs personal data assistants
  • the systems and methods of the present disclosure may be implemented on application specific integrated circuits (ASIC), very large scale integrated (VLSI) circuits, or other circuitry.
  • ASIC application specific integrated circuits
  • VLSI very large scale integrated circuits
  • persons of ordinary skill in the art may utilize any number of suitable structures capable of executing logical operations according to the described embodiments.
  • the computer system 600 may be virtualized for access by multiple users and/or applications.
  • FIGURE 7 A is a block diagram illustrating a server hosting an emulated software environment for visualization according to one embodiment of the disclosure.
  • An operating system 702 executing on a server includes drivers for accessing hardware components, such as a networking layer 704 for accessing the communications adapter 614.
  • the operating system 702 may be, for example, Linux.
  • An emulated environment 708 in the operating system 702 executes a program 710, such as CPCommOS.
  • the program 730 accesses the networking layer 704 of the operating system 702 through a non-emulated interface 706, such as XNIOP.
  • the non-emulated interface 706 translates requests from the program 730 executing in the emulated environment 708 for the networking layer 704 of the operating system 702.
  • FIGURE 7B is a block diagram illustrating a server hosting an emulated hardware environment according to one embodiment of the disclosure.
  • Users 752, 754, 756 may access the hardware 760 through a hypervisor 758.
  • the hypervisor 758 may be integrated with the hardware 760 to provide virtualization of the hardware 760 without an operating system, such as in the configuration illustrated in FIGURE 7A.
  • the hypervisor 758 may provide access to the hardware 760, including the CPU 602 and the communications adaptor 614.
  • Computer-readable media includes physical computer storage media.
  • a storage medium may be any available medium that can be accessed by a computer.
  • such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer.
  • Disk and disc includes compact discs (CD), laser discs, optical discs, digital versatile discs (DVD), floppy disks and blu-ray discs. Generally, disks reproduce data magnetically, and discs reproduce data optically. Combinations of the above should also be included within the scope of computer-readable media.
  • instructions and/or data may be provided as signals on transmission media included in a communication apparatus.
  • a communication apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims.

Abstract

Des applications peuvent être exécutées dans un environnement virtualisé, et avoir accès à des fonctions se situant à l'extérieur de l'environnement virtualisé. Des fonctions écrites en code à l'extérieur de l'environnement virtualisé peuvent être exécutées par un moteur d'exécution en langage commun (CLR), qui est mis à la disposition d'applications de l'environnement virtualisé. Une bibliothèque se situant dans l'environnement virtualisé peut comprendre des appels de procédure qui correspondent au code pouvant être exécuté par le CLR. Quand une application de l'environnement virtualisé appelle une première fonction, l'appel de première fonction peut être converti en un appel de deuxième fonction devant être exécutée par le CLR.
PCT/US2013/070641 2012-11-19 2013-11-19 Conversion d'appels de fonction dans des environnements virtualisés WO2014078820A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201213680128A 2012-11-19 2012-11-19
US13/680,128 2012-11-19

Publications (1)

Publication Number Publication Date
WO2014078820A1 true WO2014078820A1 (fr) 2014-05-22

Family

ID=50731765

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/070641 WO2014078820A1 (fr) 2012-11-19 2013-11-19 Conversion d'appels de fonction dans des environnements virtualisés

Country Status (1)

Country Link
WO (1) WO2014078820A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017079068A1 (fr) * 2015-01-30 2017-05-11 Nicira, Inc. Chemin de données dynamique au niveau d'une passerelle périphérique
CN109213725A (zh) * 2017-06-30 2019-01-15 英特尔Ip公司 软件可重新配置的移动设备和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001052031A1 (fr) * 2000-01-12 2001-07-19 Sony Corporation Appareil et procede d'affichage d'images
US20030056203A1 (en) * 2001-07-24 2003-03-20 Micco John T. Function call translation
US20090271172A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Emulating A Computer Run Time Environment
US20110289513A1 (en) * 2010-04-17 2011-11-24 Code Systems Corporation Method of hosting a first application in a second application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001052031A1 (fr) * 2000-01-12 2001-07-19 Sony Corporation Appareil et procede d'affichage d'images
US20030056203A1 (en) * 2001-07-24 2003-03-20 Micco John T. Function call translation
US20090271172A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Emulating A Computer Run Time Environment
US20110289513A1 (en) * 2010-04-17 2011-11-24 Code Systems Corporation Method of hosting a first application in a second application

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017079068A1 (fr) * 2015-01-30 2017-05-11 Nicira, Inc. Chemin de données dynamique au niveau d'une passerelle périphérique
US9973445B2 (en) 2015-01-30 2018-05-15 Nicira, Inc. Datapath with service stages
US10057191B2 (en) 2015-01-30 2018-08-21 Nicira, Inc. Datapath with centralized and distributed routers
US10084726B2 (en) 2015-01-30 2018-09-25 Nicira, Inc. Dynamic datapath at edge gateway
US10110514B2 (en) 2015-01-30 2018-10-23 Nicira, Inc. Datapath cache
US10341257B2 (en) 2015-01-30 2019-07-02 Nicira, Inc. Datapath for multiple tenants
US10700997B2 (en) 2015-01-30 2020-06-30 Nicira, Inc. Datapath for multiple tenants
US11343204B2 (en) 2015-01-30 2022-05-24 Nicira, Inc. Datapath for multiple tenants
US11706159B2 (en) 2015-01-30 2023-07-18 Nicira, Inc. Datapath for multiple tenants
CN109213725A (zh) * 2017-06-30 2019-01-15 英特尔Ip公司 软件可重新配置的移动设备和方法

Similar Documents

Publication Publication Date Title
EP2950206B1 (fr) Extraction d'un code source
US20160378554A1 (en) Parallel and Distributed Computing Using Multiple Virtual Machines
US10331466B2 (en) Extension point declarative registration for virtualization
US20210294537A1 (en) Data expanse using memory-mapped files on a system architecture interface layer-based mainframe operating system
KR20160133546A (ko) 컴퓨팅 시스템에서 아키텍처 모드 구성
US11520606B2 (en) Dynamic generation of user interface components based on hierarchical component factories
JP7386882B2 (ja) セキュア仮想マシン環境におけるゲスト命令の透過的解釈
US20190312909A1 (en) Method and system for applying compliance policies on private and public cloud
US9027031B2 (en) Allowing inter-process communication via file system filter
US10628177B1 (en) Unikernel provisioning
US11954198B2 (en) Unifying hardware trusted execution environment technologies using virtual secure enclave device
WO2015088374A1 (fr) Systèmes et procédés pour une virtualisation de contenant entre architectures
US9697027B1 (en) Hypercall-based security for hypervisors
IL284903B2 (en) Inserting interrupts and exceptions into a secure virtual machine
US20150199210A1 (en) Methods, Devices and Computer Readable Storage Devices for Confluence of Multiple Operating Systems
US20120272239A1 (en) Sharing class data
AU2020234887B2 (en) Dispatch of a secure virtual machine
WO2014078820A1 (fr) Conversion d'appels de fonction dans des environnements virtualisés
US9684529B2 (en) Firmware and metadata migration across hypervisors based on supported capabilities
US9292318B2 (en) Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
US11907176B2 (en) Container-based virtualization for testing database system
US11385876B1 (en) Infrastructure control interface for database systems
US20180239628A1 (en) Hypervisor agnostic customization of virtual machines
US20140282516A1 (en) Providing execution access to files not installed in a virtualized space
US20220292084A1 (en) View operand for creating a view of an expanse file

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13855965

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13855965

Country of ref document: EP

Kind code of ref document: A1