IP Library › Granted Patent US 9,928,062
Granted Patent B2
US 9,928,062 · App. 15/060,750 · Granted Mar 27, 2018

ISA-ported container images

Inventors: Alain C. Azagury (Haifa, IL); Ilsiyar I. Gaynutdinov (Lobnya, RU); Erez Hadad (Nahariya, IL); Sadek Jbara (Taybeh, IL); Igor Khapov (Moscow, RU); Alexey Miroshkin (Moscow, RU); Nitzan Peleg (Haifa, IL); Indrajit Poddar (Sewickley, PA); Michael Rodeh (Haifa, IL)
Assignee: International Business Machines Corporation
G06F8/76G06F9/30145G06F9/30181
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 9,928,062
App. No.
15/060,750
Granted
Mar 27, 2018
Kind
B2
Abstract

A software container image that includes components dependent on a first computer instruction set architecture (ISA) is ported to enable a container to execute using the container image on a computer having a second ISA different from the first. Porting the container image entails replacing components of the container image not compatible with the second ISA with equivalent components compatible with the second ISA. The porting is performed, in some instances, dynamically as part of running a container with the container image on a computer implementing the second ISA.

Claims (74)

1. A computer-implemented method for porting a software container image to a target instruction set architecture (ISA), the software container image selected for execution on a first computer, the first

computer implementing the target ISA, the method comprising:

forming a ported image, the ported image capable of executing on the first computer, the forming performed in association with at least one of preparing the software container image for execution on the first computer and executing the software container image on the first computer;

selecting a source image, the source image included in the software container image;

selecting a source component, the source component included in the source image;

determining that the source component is not compatible with the target ISA, the determining based, at least in part, on the source component dependent on a first ISA, the first ISA different from the target ISA; and

including in the ported image an at least one first target-ISA equivalent component, the at least one first target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one first target-ISA equivalent component compatible with the target ISA, the at least one first target-ISA equivalent component replacing, in the ported image, the source component,

determining that the source component includes a source binary file, the source binary file not compatible with the target ISA;

determining that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

determining that the source binary file does not have at least one target-ISA equivalent binary file;

and including, in the at least one first target-ISA equivalent component, the source binary file and at least one target-ISA stub program, the at least one target-ISA stub program invoking execution of the source binary file, the at least one target-ISA stub program invoking execution of at least one ISA translator, the execution of the at least one ISA translator translating the source binary file from the first ISA to the target ISA.

2. The method of claim 1 further comprising:

determining that the source component has an at least one second target-ISA equivalent component, the at least one second target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one second target-ISA equivalent component compatible with the target ISA; and

including, in the at least one first target-ISA equivalent component, the at least one second target-ISA equivalent component.

3. The method of claim 1 further comprising:

determining that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

forming an at least one second target-ISA equivalent component, the at least one second target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one second target-ISA equivalent component compatible with the target ISA; and

including, in the at least one first target-ISA equivalent component, the at least one second target-ISA equivalent component.

4. The method of claim 1 further comprising:

determining that the source component includes a source binary file, the source binary file not compatible with the target ISA;

determining that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

determining that source binary file has at least one target-ISA equivalent binary file, the at least one target-ISA equivalent binary file performing a function equivalent to at least one function of the source binary file, the at least one target-ISA equivalent binary file compatible with the target ISA; and

including, in the at least one first target-ISA equivalent component, the at least one target-ISA equivalent binary file.

5. The method of claim 1 further comprising including, in the first target-ISA equivalent component, the at least one ISA translator.

6. The method of claim 1 wherein the at least one first target-ISA equivalent component includes at least one component included in a repository, and wherein the at least one first target-ISA equivalent component includes the component included in the repository replacing the at least one component in the first target-ISA equivalent component.

7. A computer program product for porting a software container image to a target instruction set architecture (ISA), the software container image selected for execution on a first computer, the first computer implementing the target ISA, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a first computer to perform a method comprising:

forming, by a second computer, a ported image, the ported image capable of executing on the first computer, the forming performed in association with at least one of preparing the software container image for execution on the first computer and executing the software container image on the first computer;

selecting, by the second computer, a source image, the source image included in the software container image;

selecting, by the second computer, a source component, the source component included in the source image;

determining, by the second computer, that the source component is not compatible with the target ISA, the determining based, at least in part, on the source component dependent on a first ISA, the first ISA different from the target ISA; and

including, by the second computer, in the ported image an at least one first target-ISA equivalent component, the at least one first target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one first target-ISA equivalent component compatible with the target ISA, the at least one first target-ISA equivalent component replacing, in the ported image, the source component

determining, by the second computer, that the source component includes a source binary file, the source binary file not compatible with the target ISA;

determining, by the second computer, that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

determining, by the second computer, that the source binary file does not have at least one target-ISA equivalent binary file; and

including, by the second computer, in the at least one first target-ISA equivalent component, the source binary file and at least one target-ISA stub program, the at least one target-ISA stub program invoking execution of the source binary file, the at least one target-ISA stub program invoking execution of at least one ISA translator, the execution of the at least one ISA translator translating the source binary file from the first ISA to the target ISA.

8. The computer program product of claim 7 , the method further comprising:

determining, by the second computer, that the source component has an at least one second target-ISA equivalent component, the at least one second target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one second target-ISA equivalent component compatible with the target ISA; and

including, by the second computer, in the at least one first target-ISA equivalent component, the at least one second target-ISA equivalent component.

9. The computer program product of claim 7 , the method further comprising:

determining, by the second computer, that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

forming, by the second computer, an at least one second target-ISA equivalent component, the at least one second target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one second target-ISA equivalent component compatible with the target ISA; and

including, by the second computer, in the at least one first target-ISA equivalent component, the at least one second target-ISA equivalent component.

10. The computer program product of claim 7 , the method further comprising:

determining, by the second computer, that the source component includes a source binary file, the source binary file not compatible with the target ISA;

determining, by the second computer, that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

determining, by the second computer, that source binary file has at least one target-ISA equivalent binary file, the at least one target-ISA equivalent binary file performing a function equivalent to at least one function of the source binary file, the at least one target-ISA equivalent binary file compatible with the target ISA; and

including, by the second computer, in the at least one first target-ISA equivalent component, the at least one target-ISA equivalent binary file.

11. The computer program product of claim 7 , the method further comprising including, by the second computer, in the first target-ISA equivalent component, the at least one ISA translator.

12. The computer program product of claim 7 , wherein the at least one first target-ISA equivalent component includes at least one component included in a repository, and wherein the at least one first target-ISA equivalent component includes the component included in the repository replacing the at least one component in the first target-ISA equivalent component.

13. A system for porting a software container image to a target instruction set architecture (ISA), the software container image selected for execution on a first computer, the first computer implementing the target ISA, the system comprising:

a processor; and

a memory in communication with the processor, wherein the system is configured to perform a method, the method comprising:

forming a ported image, the ported image capable of executing on the first computer, the forming performed in association with at least one of preparing the software container image for execution on the first computer and executing the software container image on the first computer;

selecting a source image, the source image included in the software container image;

selecting a source component, the source component included in the source image;

determining that the source component is not compatible with the target ISA, the determining based, at least in part, on the source component dependent on a first ISA, the first ISA different from the target ISA; and

including in the ported image an at least one first target-ISA equivalent component, the at least one first target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one first target-ISA equivalent component compatible with the target ISA, the at least one first target-ISA equivalent component replacing, in the ported image, the source component

determining that the source component includes a source binary file, the source binary file not compatible with the target ISA;

determining that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

determining that the source binary file does not have at least one target-ISA equivalent binary file; and

including, in the at least one first target-ISA equivalent component, the source binary file and at least one target-ISA stub program, the at least one target-ISA stub program invoking execution of the source binary file, the at least one target-ISA stub program invoking execution of at least one ISA translator, the execution of the at least one ISA translator translating the source binary file from the first ISA to the target ISA.

14. The system of claim 13 , the method further comprising:

determining that the source component has an at least one second target-ISA equivalent component, the at least one second target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one second target-ISA equivalent component compatible with the target ISA; and

including, in the at least one first target-ISA equivalent component, the at least one second target-ISA equivalent component.

15. The system of claim 13 , the method further comprising:

determining that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

forming an at least one second target-ISA equivalent component, the at least one second target-ISA equivalent component performing a function equivalent to at least one function of the source component, the at least one second target-ISA equivalent component compatible with the target ISA; and

including, in the at least one first target-ISA equivalent component, the at least one second target-ISA equivalent component.

16. The system of claim 13 , the method further comprising:

determining that the source component includes a source binary file, the source binary file not compatible with the target ISA;

determining that the source component does not have a second target-ISA equivalent component, the second target-ISA equivalent component compatible with the target ISA;

determining that source binary file has at least one target-ISA equivalent binary file, the at least one target-ISA equivalent binary file performing a function equivalent to at least one function of the source binary file, the at least one target-ISA equivalent binary file compatible with the target ISA; and

including, in the at least one first target-ISA equivalent component, the at least one target-ISA equivalent binary file.

17. The system of claim 13 , wherein the at least one first target-ISA equivalent component includes at least one component included in a repository, and wherein the at least one first target-ISA equivalent component includes the component included in the repository replacing the at least one component in the first target-ISA equivalent component.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2016
From: AZAGURY, ALAIN C.; GAYNUTDINOV, ILSIYAR I.; HADAD, EREZ; JBARA, SADEK; KHAPOV, IGOR; MIROSHKIN, ALEXEY; PELEG, NITZAN; PODDAR, INDRAJIT; RODEH, MICHAEL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037997/0695 →
Continuity (1)
Related Publication 20170255462A1 · Sep 7, 2017