IP Library Granted Patent US 12,086,573
Granted Patent B2
US 12,086,573 · App. 17/379,810 · Granted Sep 10, 2024

Automatic containerization of operating system distributions

Inventor: Jindrich Novy (Brno, CZ)
Assignee: Red Hat, Inc.
G06F8/36
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 12,086,573
App. No.
17/379,810
Granted
Sep 10, 2024
Kind
B2
Abstract

Embodiments of the present disclosure relate to containerizing the packages of an operating system. More specifically, a dependency level of each of a plurality of packages included in an operating system may be determined and a container is generated in view of the dependency level.

Claims (49)

1. A method comprising:

determining a dependency level of each of a plurality of packages included in an operating system, wherein the dependency level of a particular package in the plurality of packages indicates a count of how many other packages in the plurality of packages depend on the particular package, and wherein a first package with a highest non-zero count is determined to have a highest dependency level and a second package having a second highest non-zero count is determined to have a second highest dependency level;

generating an image file for each of the plurality of packages to generate a plurality of image files sequentially in order of the dependency levels, wherein a first image file generated for the first package is used as a base image for a second image file to be generated for the second package; and

generating, by a processing device, a container comprising layers by:

using the first image file corresponding to the first package having the highest dependency level as a lowest layer of the container; and

arranging, on top of the lowest layer of the container, one or more of the plurality of image files corresponding to one or more remaining packages of the plurality of packages in descending order of their dependency levels.

2. The method of claim 1 , further comprising:

uploading the plurality of image files for each of the plurality of packages to a registry server.

3. The method of claim 1 , wherein creating the image file for each of the plurality of packages sequentially comprises creating the image file for each of the plurality of packages sequentially in descending order of the dependency levels of each of the plurality of packages.

4. The method of claim 1 , wherein generating the container further comprises:

determining one or more of the plurality of packages that an application is dependent on;

retrieving from a registry server, a corresponding image file for each of the one or more packages that the application is dependent on; and

layering the one or more of the plurality of image files corresponding to the one or more packages that the application is dependent on to generate an application image file.

5. The method of claim 4 , wherein layering the one or more of the plurality of image files comprises layering the one or more image files successively based on the dependency levels of the one or more packages that the application is dependent on.

6. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

determine a dependency level of each of a plurality of packages included in an operating system, wherein the dependency level of a particular package in the plurality of packages indicates a count of how many other packages in the plurality of packages depend on the particular package, and wherein a first package with a highest non-zero count is determined to have a highest dependency level and a second package having a second highest non-zero count is determined to have a second highest dependency level;

generating an image file for each of the plurality of packages to generate a plurality of image files sequentially in order of the dependency levels, wherein a first image file generated for the first package is used as a base image for a second image file to be generated for the second package; and

generate a container comprising layers, wherein to generate the container, the processing device to:

use the first image file corresponding to the first package having the highest dependency level as a lowest layer of the container; and

arrange, on top of the lowest layer of the container, one or more of the plurality of image files corresponding to one or more remaining packages of the plurality of packages in descending order of their dependency levels.

7. The system of claim 6 , wherein the processing device, in response to a request to generate the container on which to run an application, to:

receive a parameter which an application image file is to be optimized for, wherein the container is to run on the application image file;

determine one or more of the plurality of packages that the application is dependent on based on the parameter; and

generate the application image file using the application and one or more of the plurality of image files, wherein the one or more of the plurality of image files correspond to the one or more packages that the application is dependent on.

8. The system of claim 7 , wherein the parameter comprises one of: a language, a desktop, or a container orchestration system used by the operating system.

9. The system of claim 7 , wherein to generate the application image file, the processing device is to layer the one or more image files successively.

10. The system of claim 9 , wherein to generate the application image file, the processing device is further to layer the one or more image files successively based on the dependency levels of the one or more packages that the application is dependent on.

11. The system of claim 9 , wherein the processing device is further to squash the one or more of the plurality of image files into a single image file.

12. The system of claim 7 , wherein to create an image file for a current package the processing device is to:

determine whether any packages for which an image file was previously created satisfies a dependency requirement for the current package; and

in response to determining a set of packages for which image files were previously created and that satisfy the dependency requirement for the current package:

layer the image files corresponding to the set of packages for which image files were previously created; and

add the current package to a subsequent layer of the image file.

13. The system of claim 7 , wherein to create the image file for each of the plurality of packages sequentially, the processing device is to create the image file for each of the plurality of packages sequentially in descending order of the dependency level of each of the plurality of packages.

14. A non-transitory computer-readable medium, having instructions stored thereon that, when executed by a processing device, cause the processing device to:

determine a dependency level of each of a plurality of packages included in an operating system, wherein the dependency level of a particular package in the plurality of packages indicates count of how many other packages in the plurality of packages depend on the particular package, and wherein a first package with a highest non-zero count is determined to have a highest dependency level and a second package having a second highest non-zero count is determined to have a second highest dependency level;

generate, by the processing device, a container comprising layers, wherein to generate the container, the processing device to:

use the first image file corresponding to the first package having the highest dependency level as a lowest layer of the container; and

arrange, on top of the lowest layer of the container, one or more of the plurality of image files corresponding to one or more remaining packages of the plurality of packages in descending order of their dependency levels.

15. The non-transitory computer-readable medium of claim 14 , wherein the processing device further to:

upload the image file for each of the plurality of packages to a registry server.

16. The non-transitory computer-readable medium of claim 15 , wherein to generate the container, the processing device is to:

determine the one or more of the plurality of packages that an application is dependent on;

retrieve from the registry server, a corresponding image file for each of the one or more packages that the application is dependent on; and

layer the one or more of the plurality of image files corresponding to the one or more packages that the application is dependent on to generate an application image file.

17. The non-transitory computer-readable medium of claim 16 , wherein to layer the one or more of the plurality of image files, the processing device is to layer the one or more image files successively based on the dependency levels of the one or more packages that the application is dependent on.

18. The non-transitory computer-readable medium of claim 14 , wherein the processing device is further to squash the one or more of the plurality of image files into a single image file.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2021
From: NOVY, JINDRICH
To: RED HAT, INC.
Reel/Frame 056914/0001 →
Continuity (2)
Continuation 16791569 · Feb 14, 2020
Related Publication 20210349699A1 · Nov 11, 2021