IP Library Granted Patent US 11,494,170
Granted Patent B2
US 11,494,170 · App. 17/072,600 · Granted Nov 8, 2022

Proxy compilation for execution in a foreign architecture controlled by execution within a native architecture

Inventors: Andrew Ward Beale (Irvine, CA); Anthony P. Matyok (West Chester, PA); Clark C. Kogen (West Chester, PA); David Strong (Los Angeles, CA)
Assignee: Unisys Corporation
G06F8/47G06F8/447
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,494,170
App. No.
17/072,600
Granted
Nov 8, 2022
Kind
B2
Abstract

A proxy compiler may be used within a native execution environment to enable execution of non-native instructions from a non-native execution environment as if being performed within the native execution environment. In particular, the proxy compiler coordinates creation of a native executable that is uniquely tied to a particular non-native image at the time of creation of the non-native image. This allows a trusted relationship between the native executable and the non-native image, while avoiding a requirement of compilation/translation of the non-native instructions for execution directly within the native execution environment.

Claims (41)

1. A method comprising:

invoking a proxy compiler within a native execution environment by providing non-native instructions thereto; and

at the proxy compiler:

determining a native executable to be used based on an identity of a non-native image creator to be used for creation of a non-native image;

providing the non-native instructions to a non-native image creator in a non-native execution environment for creation of the non-native image; and

based on obtaining identification information of the created non-native image, creating an instance of the native executable that is associated with the non-native image by assigning a read-only attribute to the instance of the native executable.

2. The method of claim 1 , further comprising running the native executable by:

querying the read-only attribute to determine an identity of the non-native image; and

issuing a command to instantiate a container operable to execute the non-native image within a non-native execution environment hosted by the container.

3. The method of claim 2 , further comprising executing the non-native image within the non-native environment hosted by the container, wherein executing the non-native image includes performing one or more processing operations defined by the non-native image on data stored in the native environment.

4. The method of claim 1 , wherein invoking the proxy compiler includes identifying the non-native image creator to be used.

5. The method of claim 1 , further comprising invoking a command in the non-native execution environment which runs the non-native image creator to which the non-native instructions are provided.

6. The method of claim 1 , wherein, upon invoking the command, communication connections are established between the proxy compiler and the non-native execution environment.

7. The method of claim 1 , further comprising obtaining identification information of the created non-native image by receiving an identifier of the non-native image at the proxy compiler via a connection established between the proxy compiler and the non-native execution environment.

8. The method of claim 7 , wherein obtaining the identification information includes reading a file where the identification information is stored by the non-native image creator.

9. The method of claim 1 , wherein the native execution environment comprises an MCP-based execution environment and the non-native execution environment comprises an Intel x64 execution environment.

10. The method of claim 1 , wherein the read-only attribute comprises an image identification attribute of the native executable, and wherein a value of the read-only attribute set by the proxy compiler corresponds to the identification information of the created non-native image.

11. The method of claim 1 , wherein the created non-native image and the native executable have a 1:1 correlation.

12. The method of claim 1 , further comprising running a plurality of instances of the native executable concurrently, wherein each of the plurality of instances is associated with a corresponding container within which an instance of the non-native image is executed.

13. The method of claim 12 , wherein each of the plurality of instances of the native executable has a different process identifier, wherein the process identifier is used by the non-native image in the corresponding container for exchange of data between the native execution environment and the non-native execution environment.

14. A computing system comprising:

a native execution environment on a host system hosting a native executable having a read-only attribute assigned thereto by a proxy compiler at a time of creation;

a containerized non-native execution environment hosting a non-native image, the non-native image being created in response to non-native instructions sent to a non-native image creator by the proxy compiler;

wherein the read-only attribute corresponds to identification information of the created non-native image, the identification information being generated by the non-native image creator and provided to the proxy compiler at the time of creation of the non-native image.

15. The computing system of claim 14 , wherein the containerized non-native execution environment is instantiated on the host system with the native computing environment.

16. The computing system of claim 14 , wherein the native execution environment and the non-native execution environment are communicatively connected.

17. The computing system of claim 14 , wherein the native execution environment comprises an MCP-based execution environment and the non-native execution environment comprises an Intel x64 execution environment.

18. A computer-implemented method comprising:

invoking a proxy compiler within a native execution environment by providing non-native instructions thereto;

at the proxy compiler:

determining a native executable to be used based on an identity of a non-native image creator to be used for creation of a non-native image;

providing the non-native instructions to a non-native image creator in a non-native execution environment for creation of the non-native image; and

based on obtaining identification information of the created non-native image, creating an instance of the native executable that is associated with the non-native image by assigning a read-only attribute to the instance of the native executable;

within the native execution environment:

querying the read-only attribute to determine an identity of the non-native image; and

issuing a command to instantiate a container operable to execute the non-native image within a non-native execution environment; and

within the instantiated container, executing the non-native image.

19. The computer-implemented method of claim 18 , wherein the native execution environment and the non-native execution environment are communicatively connected.

20. The computer-implemented method of claim 19 , further comprising running a plurality of instances of the native executable concurrently within the native execution environment, wherein each of the plurality of instances is associated with a corresponding container within which an instance of the non-native image is executed, and

wherein each of the plurality of instances of the native executable has a different process identifier, the process identifier being used by the non-native image in the corresponding container for exchange of data between the native execution environment and the non-native execution environment.

21. The computer-implemented method of claim 18 , wherein the read-only attribute comprises an image identification attribute of the native executable, and wherein a value of the read-only attribute set by the proxy compiler corresponds to the identification information of the created non-native image.

Assignments (2)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
SECURITY INTEREST Recorded Mar 16, 2021
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 055602/0846 →
Continuity (1)
Related Publication 20220121432A1 · Apr 21, 2022