IP Library › Granted Patent US 10,831,474
Granted Patent B2
US 10,831,474 · App. 15/898,891 · Granted Nov 10, 2020

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/76G06F8/52G06F9/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 10,831,474
App. No.
15/898,891
Filed
Feb 19, 2018
Granted
Nov 10, 2020
Kind
B2
Art Unit
2191
USPC
717/137
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 (61)

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 target computer, the target computer implementing the target ISA, the method comprising:

selecting a source image that is compatible with a source ISA that is different than the target ISA, the source image included in the software container image, and the target ISA is an interface between hardware and software on the target computer that specifies behavior of machine code running on the target computer;

executing, on the target computer, a container using the source image;

forming a ported image capable of executing on the target computer, the forming of the ported image including

selecting a source component from the source image,

determining that the source component is not compatible with the target ISA,

determining that a target component does not exist that is equivalent to and compatible with the target ISA,

creating a target component that is equivalent to and compatible with the source component, and

replacing the source component with the created target component in the ported image; and

executing the ported image on the target computer,

wherein the ported image includes at least one of the created or replaced target components that performs a function equivalent to at least one function of the source component.

2. The method of claim 1 further comprising:

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

attempting to locate a target source binary file that is equivalent to and compatible with the source binary file,

upon locating a target binary file that is equivalent to and compatible with the target ISA, replacing the source binary file with the equivalent and compatible target binary file in the ported image, and

upon determining that a target binary file does not exist that is equivalent to and compatible with the target ISA, creating a target binary file that is equivalent to and compatible with the source binary file, and then replacing the source binary file with the created target binary file in the ported image.

3. The method of claim 1 , wherein the source image comprises one or more source layers and wherein the selecting the source component comprises selecting a source layer of the one or more source layers.

4. The method of claim 3 , wherein the target ISA equivalent component comprises a target ISA equivalent layer performing the function equivalent to at least one function of the source layer.

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

6. 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 target computer, the target 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 the target computer to perform a method comprising:

selecting a source image that is compatible with a source ISA that is different than the target ISA, the source image included in the software container image, and the target ISA is an interface between hardware and software on the target computer that specifies behavior of machine code running on the target computer;

executing, on the target computer, a container using the source image;

forming a ported image capable of executing on the target computer, the forming of the ported image including

selecting a source component from the source image,

upon determining that the source component is not compatible with the target ISA, then

attempting to locate a target component that is equivalent to and compatible with the source component,

upon locating a target component that is equivalent to and compatible with the target ISA, replacing the source component with the equivalent and compatible target component in the ported image, and

upon determining that a target component does not exist that is equivalent to and compatible with the target ISA, creating a target component that is equivalent to and compatible with the source component, and then replacing the source component with the created target component in the ported image, and

upon determining that the source component is compatible with the target ISA, copying the source component to the ported image; and

executing the ported image on the target computer,

wherein the ported image includes at least one of the created or replaced target components that performs a function equivalent to at least one function of the source component.

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

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

attempting to locate a target source binary file that is equivalent to and compatible with the source binary file,

upon locating a target binary file that is equivalent to and compatible with the target ISA, replacing the source binary file with the equivalent and compatible target binary file in the ported image, and

upon determining that a target binary file does not exist that is equivalent to and compatible with the target ISA, creating a target binary that is equivalent to and compatible with the source binary file, and then replacing the source binary file with the created target binary file in the ported image.

8. The computer program product of claim 6 , wherein the source image comprises one or more source layers and wherein the selecting the source component comprises selecting a source layer of the one or more source layers.

9. The computer program product of claim 8 , wherein the target ISA equivalent component comprises a target ISA equivalent layer performing the function equivalent to at least one function of the source layer.

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

11. A system for porting a software container image to a target instruction set architecture (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:

selecting a source image that is compatible with a source ISA that is different than the target ISA, the source image included in the software container image, and the target ISA is an interface between hardware and software on a target computer that specifies behavior of machine code running on the target computer;

executing, on the target computer, a container using the source image;

forming a ported image capable of executing on the target computer, the forming of the ported image including

selecting a source component from the source image,

upon determining that the source component is not compatible with the target ISA, then

attempting to locate a target component that is equivalent to and compatible with the source component,

upon locating a target component that is equivalent to and compatible with the target ISA, replacing the source component with the equivalent and compatible target component in the ported image, and

upon determining that a target component does not exist that is equivalent to and compatible with the target ISA, creating a target component that is equivalent to and compatible with the source component, and then replacing the source component with the created target component in the ported image, and

upon determining that the source component is compatible with the target ISA, copying the source component to the ported image; and

executing the ported image on the target computer,

wherein the ported image includes at least one of the created or replaced target components that performs a function equivalent to at least one function of the source component,

wherein the modification of the ported image occurs dynamically while executing the source container.

12. The system of claim 11 , the method further comprising:

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

attempting to locate a target source binary file that is equivalent to and compatible with the source binary file,

upon locating a target binary file that is equivalent to and compatible with the target ISA, replacing the source binary file with the equivalent and compatible target binary file in the ported image, and

upon determining that a target binary file does not exist that is equivalent to and compatible with the target ISA, creating a target binary that is equivalent to and compatible with the source binary file, and then replacing the source binary file with the created target binary file in the ported image.

13. The system of claim 11 , wherein the source image comprises one or more source layers and wherein the source component comprises a source layer of the one or more source layers.

14. The system of claim 11 , wherein the target ISA equivalent component includes at least one component included in a repository, and wherein the target ISA equivalent component includes the at least one component included in the repository replacing the at least one component in the target ISA equivalent component.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2018
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 045359/0675 →
Continuity (2)
Continuation 15060750 · Mar 4, 2016
Related Publication 20180173524A1 · Jun 21, 2018
Cited By (1)
US 12,711,242