IP Library Granted Patent US 11,243,751
Granted Patent B1
US 11,243,751 · App. 17/072,579 · Granted Feb 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,243,751
App. No.
17/072,579
Granted
Feb 8, 2022
Kind
B1
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 creation time 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 (44)

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 source file 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 a new native source file from the native source file and the identification information; and

at a native compiler, compiling the new native source file into a native executable.

2. The method of claim 1 , wherein the non-native image creator is selected by the proxy compiler from among a plurality of different non-native image creators based at least in part on the non-native instructions.

3. The method of claim 1 , wherein the identification information is read by the proxy compiler from a file to which it is stored by the non-native image creator.

4. The method of claim 1 , wherein the identification information is obtained by the proxy compiler via a connection established between the native execution environment and the non-native execution environment.

5. The method of claim 1 , further comprising providing, by the proxy compiler, a build directory in the native execution environment to be accessible by the non-native image creator by way of a network mapping between the build directory and the non-native execution environment.

6. The method of claim 1 , further comprising running the native executable within the native execution environment, thereby invoking a container to which the native execution environment is communicatively connected in which the non-native image executes and interacts with the native execution environment.

7. The method of claim 1 , wherein the native executable is bound to the non-native image by the identification information included in the new native source file.

8. The method of claim 1 , further comprising invoking, from the proxy compiler, the native compiler using the new native source file.

9. The method of claim 1 , wherein the native source file includes a source program in a native language compatible with the native compiler, the source program including instructions to invoke and communicate with a non-native container.

10. The method of claim 1 , wherein compiling the new native source file into a native executable binds the native executable to the non-native image.

11. A computing system comprising:

a native execution environment on a host system having a native compiler and a proxy compiler stored thereon, the host system comprising a processor and a memory, the memory storing instructions which, when executed, cause the host system to:

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

at the proxy compiler:

determine a native source file to be used based on an identity of a non-native image creator to be used for creation of a non-native image;

provide 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, create a new native source file from the native source file and the identification information; and

at the native compiler, compiling the new native source file into a native executable.

12. The computing system of claim 11 , further comprising a containerized non-native execution environment hosting the 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.

13. The computing system of claim 12 , wherein the containerized non-native execution environment is hosted by the host system.

14. The computing system of claim 12 , wherein the containerized non-native execution environment is remote from the host system.

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

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

17. The computing system of claim 11 , wherein the non-native image is stored in an image repository.

18. The computing system of claim 11 , wherein the native source file includes a source program in a native language compatible with the native compiler, the source program including instructions to invoke and communicate with a non-native container.

19. The computing system of claim 18 , wherein the new native source file modifies the source program to include instructions to invoke and communicate with a specific non-native container associated with the non-native image based on the identification information.

20. 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 source file 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 a new native source file from the native source file and the identification information; and

within the native execution environment:

at a native compiler, compiling the new native source file into a native executable

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.

21. The computer-implemented method of claim 20 , wherein the non-native image creator is selected by the proxy compiler from among a plurality of different non-native image creators based at least in part on the non-native instructions, the plurality of different non-native image creators comprising one or more compilers configured to target the non-native execution environment.

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 →