IP Library › Granted Patent US 11,809,376
Granted Patent B2
US 11,809,376 · App. 17/319,133 · Granted Nov 7, 2023

Building a file system for multiple architectures

Inventors: Jin Chi JC He (Xi'an, CN); Guang Han Sui (Beijing, CN); Ke Zhang (Xi'an, CN); Yang Gao (Xi'an, CN); Yu Xing YX Ren (Xi'an, CN); Liang Wang (Xi'an, CN)
Assignee: International Business Machines Corporation
G06F16/173G06F16/122G06F16/128G06F16/137
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,809,376
App. No.
17/319,133
Granted
Nov 7, 2023
Kind
B2
Abstract

In an approach to building a file system for multiple architectures, responsive to receiving a manifest for a file system build, a base layer is retrieved for each platform to be built, where the base layer is an operating system base. Responsive to determining that any layer to be built has not been built, the next layer to be built is retrieved. Responsive to the next layer to be built is platform-independent, the next layer is retrieved from a cache, where the next layer supports each platform. Responsive to the next layer to be built is platform-dependent, the next layer is built, where a copy of the next layer is built for each platform. The above steps are iteratively repeated until each layer is built. A single image of a completed file system build is stored, where the single image supports each platform.

Claims (77)

1. A computer-implemented method comprising:

responsive to receiving a manifest for a file system build, retrieving, by one or more computer processors, a base layer for each platform of multiple central processor unit (CPU) architecture platforms to be built, wherein each base layer is an operating system base image for at least one of the multiple CPU architecture platforms;

responsive to determining that any layer of a plurality of layers to be built for the multiple CPU architecture platforms has not been built:

a) retrieving, by the one or more computer processors, a next layer of the plurality of layers to be built;

b) responsive to the next layer of the plurality of layers to be built is CPU architecture platform-independent, retrieving, by the one or more computer processors, the next layer from a cache, wherein the next layer supports each CPU architecture platform of the multiple CPU architecture platforms;

c) responsive to the next layer to be built is platform-dependent, building, by the one or more computer processors, the next layer, wherein a platform dependent copy of the next layer is built for the each CPU architecture platform of the multiple CPU architecture platforms;

iteratively repeating, by the one or more computer processors, above steps of a-c until each layer of the plurality of layers to be built are built; and

storing, by the one or more computer processors, a single image of a completed file system build, wherein the single image supports the each CPU architecture platform of the multiple CPU architecture platforms.

2. The computer-implemented method of claim 1 , wherein the manifest to for the file system build includes a CPU architecture platform field for the each layer of the plurality of layers to be built, wherein the CPU architecture platform field indicates which CPU architecture platforms of the multiple CPU architecture platforms to be built are supported by the each layer of the plurality of layers to be built.

3. The computer-implemented method of claim 1 , wherein a CPU architecture platform chain identification indicates whether the next layer is platform-independent.

4. The computer-implemented method of claim 3 , wherein responsive to the next layer to be built is CPU architecture platform-dependent, building the next layer, wherein the copy of the next layer is built for the each CPU architecture platform of the multiple CPU architecture platforms comprises:

building, by the one or more computer processors, the copy of the next layer, wherein the copy of the next layer is cross built on a current CPU architecture platform for each CPU architecture platform of the multiple CPU architecture platforms;

generating, by the one or more computer processors, a hash of the copy of the next layer, wherein the hash of the copy of the next layer locates the copy of the next layer;

updating, by the one or more computer processors, the manifest to for the file system build with the hash of the copy of the next layer and the CPU architecture platform chain identification, wherein the CPU architecture platform chain identification associates the copy of the next layer with one or more parent layers; and

updating, by the one or more computer processors, a layer database with the copy of the next layer and the hash of the copy of the next layer.

5. The computer-implemented method of claim 3 , wherein responsive to the next layer of the plurality of layers to be built is CPU architecture platform-independent, retrieving the next layer from the cache, wherein the next layer supports each CPU architecture platform of the multiple CPU architecture platforms further comprises:

searching, by the one or more computer processors, the cache for the next layer; and

responsive to the next layer to be built is found in the cache, updating, by the one or more computer processors, an entry for the next layer in a layer database to point to a layer in the manifest that was defined for the file system build.

6. The computer-implemented method of claim 5 , wherein responsive to the next layer to be built is found in the cache, updating, by the one or more computer processors, the entry for the next layer in the layer database to point to the layer in the manifest that was defined for the file system build further comprises:

responsive to the next layer to be built is not found in the cache, building, by the one or more computer processors, the next layer;

updating, by the one or more computer processors, the CPU architecture platform chain identification, wherein the CPU architecture platform chain identification associates the next layer with one or more parent layers; and

updating, by the one or more computer processors, the layer database with the next layer.

7. The computer-implemented method of claim 1 , wherein responsive to receiving the manifest to for the file system build, retrieving the base layer for each CPU architecture platform of the multiple CPU architecture platforms to be built, wherein the base layer is the operating system base image further comprises:

determining, by the one or more computer processors, whether the base layer is defined in the manifest for each CPU architecture platform of the multiple CPU architecture platforms to be built; and

responsive to determining that the base layer is not defined in the manifest for any CPU architecture platform of the multiple CPU architecture platforms to be built, searching, by the one or more computer processors, for the base layer for any CPU architecture platform of the multiple CPU architecture platforms to be built in one or more remote registries.

8. A computer program product comprising one or more computer readable storage medium and program instructions stored on the one or more computer readable storage media, the program instructions including instructions to:

responsive to receiving a manifest for a file system build, retrieve a base layer for each platform of multiple central processor unit (CPU) architecture platforms to be built, wherein the base layer is an operating system base image for at least one of the multiple CPU architecture platforms;

responsive to determining that any layer of a plurality of layers to be built for the multiple CPU architecture platforms has not been built:

a) retrieve a next layer of the plurality of layers to be built;

b) responsive to the next layer of the plurality of layers to be built is CPU architecture platform-independent, retrieve the next layer from a cache, wherein the next layer supports each CPU architecture platform of the multiple CPU architecture platforms;

c) responsive to the next layer to be built is CPU architecture platform-dependent, build the next layer, wherein a copy of the next layer is built for the each CPU architecture platform of the multiple CPU architecture platforms;

iteratively repeating above steps of a-c until each layer of the plurality of layers to be built are built; and

store a single image of a completed file system build, wherein the single image supports the each CPU architecture platform of the multiple CPU architecture platforms.

9. The computer program product of claim 8 , wherein the manifest to for the file system build includes a CPU architecture platform field for the each layer of the plurality of layers to be built, wherein the CPU architecture platform field indicates which CPU architecture platforms of the multiple CPU architecture platforms to be built are supported by the each layer of the plurality of layers to be built.

10. The computer program product of claim 8 , wherein a CPU architecture platform chain identification indicates whether the next layer is CPU architecture platform-independent.

11. The computer program product of claim 10 , wherein responsive to the next layer to be built is CPU architecture platform-dependent, build the next layer, wherein the copy of the next layer is built for the each CPU architecture platform of the multiple CPU architecture platforms comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

build the copy of the next layer, wherein the copy of the next layer is cross built on a current CPU architecture platform for each platform of the multiple CPU architecture platforms;

generate a hash of the copy of the next layer, wherein the hash of the copy of the next layer locates the copy of the next layer;

update the manifest for the file system build with the hash of the copy of the next layer and the CPU architecture platform chain identification, wherein the CPU architecture platform chain identification associates the copy of the next layer with one or more parent layers; and

update a layer database with the copy of the next layer and the hash of the copy of the next layer.

12. The computer program product of claim 10 , wherein responsive to the next layer of the plurality of layers to be built is CPU architecture platform-independent, retrieve the next layer from the cache, wherein the next layer supports each CPU architecture platform of the multiple CPU architecture platforms further comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

search the cache for the next layer; and

responsive to the next layer to be built is found in the cache, update an entry for the next layer in a layer database to point to a layer in the manifest that was defined for the file system build.

13. The computer program product of claim 12 , wherein responsive to the next layer to be built is found in the cache, update an entry for the next layer in the layer database to point to the layer in the manifest that was defined for the file system build further comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

responsive to the next layer to be built is not found in the cache, build the next layer;

update the CPU architecture platform chain identification, wherein the CPU architecture platform chain identification associates the next layer with one or more parent layers; and

update the layer database with the next layer.

14. The computer program product of claim 8 , wherein responsive to receiving the manifest for the file system build, retrieve the base layer for each CPU architecture platform of the multiple CPU architecture platforms to be built, wherein the base layer is the operating system base image further comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

determine whether the base layer is defined in the manifest for each CPU architecture platform of the multiple CPU architecture platforms to be built; and

responsive to determining that the base layer is not defined in the manifest for any CPU architecture platform of the multiple CPU architecture platforms to be built, search for the base layer for any CPU architecture platform of the multiple CPU architecture platforms to be built in one or more remote registries.

15. A computer system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the stored program instructions including instructions to:

responsive to receiving a manifest for a file system build, retrieve a base layer for each platform of multiple central processor unit (CPU) architecture platforms to be built, wherein the base layer is an operating system base image for at least one of the multiple CPU architecture platforms;

responsive to determining that any layer of a plurality of layers to be built for the multiple CPU architecture platforms has not been built:

a) retrieve a next layer of the plurality of layers to be built;

b) responsive to the next layer of the plurality of layers to be built is CPU architecture platform-independent, retrieve the next layer from a cache, wherein the next layer supports each CPU architecture platform of the multiple CPU architecture platforms;

c) responsive to the next layer to be built is CPU architecture platform-dependent, build the next layer, wherein a copy of the next layer is built for the each CPU architecture platform of the multiple CPU architecture platforms;

iteratively repeating above steps of a-c until each layer of the plurality of layers to be built are built; and

store a single image of a completed file system build, wherein the single image supports the each CPU architecture platform of the multiple CPU architecture platforms.

16. The computer system of claim 15 , wherein a CPU architecture platform chain identification indicates whether the next layer is CPU architecture platform-independent.

17. The computer system of claim 16 , wherein responsive to the next layer to be built is CPU architecture platform-dependent, build the next layer, wherein the copy of the next layer is built for the each CPU architecture platform of the multiple CPU architecture platforms comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

build the copy of the next layer, wherein the copy of the next layer is cross built on a current CPU architecture platform for each platform of the multiple CPU architecture platforms;

generate a hash of the copy of the next layer, wherein the hash of the copy of the next layer locates the copy of the next layer;

update the manifest for the file system build with the hash of the copy of the next layer and the CPU architecture platform chain identification, wherein the CPU architecture platform chain identification associates the copy of the next layer with one or more parent layers; and

update a layer database with the copy of the next layer and the hash of the copy of the next layer.

18. The computer system of claim 16 , wherein responsive to the next layer of the plurality of layers to be built is CPU architecture platform-independent, retrieve the next layer from the cache, wherein the next layer supports each platform of the multiple CPU architecture platforms further comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

search the cache for the next layer; and

responsive to the next layer to be built is found in the cache, update an entry for the next layer in a layer database to point to a layer in the manifest that was defined for the file system build.

19. The computer system of claim 18 , wherein responsive to the next layer to be built is found in the cache, update an entry for the next layer in the layer database to point to the layer in the manifest that was defined for the file system build further comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

responsive to the next layer to be built is not found in the cache, build the next layer;

update the CPU architecture platform chain identification, wherein the CPU architecture platform chain identification associates the next layer with one or more parent layers; and

update the layer database with the next layer.

20. The computer system of claim 15 , wherein responsive to receiving the manifest for the file system build, retrieve the base layer for each platform of the multiple CPU architecture platforms to be built, wherein the base layer is the operating system base image further comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

determine whether the base layer is defined in the manifest for each CPU architecture platform of the multiple CPU architecture platforms to be built; and

responsive to determining that the base layer is not defined in the manifest for any CPU architecture platform of the multiple CPU architecture platforms to be built, search for the base layer for any CPU architecture platform of the multiple CPU architecture platforms to be built in one or more remote registries.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2021
From: HE, JIN CHI JC; SUI, GUANG HAN; ZHANG, KE; GAO, YANG; REN, YU XING YX; WANG, LIANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056226/0297 →
Continuity (1)
Related Publication 20220365907A1 · Nov 17, 2022
Cited By (1)
US 12,592,824