Dynamic Kernel Module Compilation in Container Virtualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Container-based virtualization systems face limitations in portability due to their dependence on the system where they are deployed, as they require precompiled kernel modules that need to be compatible with specific environments, limiting deployment flexibility and increasing development complexity.

Innovation Solution

A method is introduced that involves a compiling container and an application container within the container-based virtualization system to compile and load kernel modules dynamically, allowing for the extension of kernel functionality without pre-compilation, thereby enabling portability and efficient deployment across different systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If precompiled kernel modules are used, then deployment speed is improved, but portability deteriorates due to system-specific compatibility requirements

Engineering Contradiction:
Improvedeployment speedVSAvoidportability
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic compilation of kernel modules at runtime within the container environment, transforming the static pre-compiled module approach into a dynamic on-demand compilation process. This allows the system to adapt to different host systems automatically, resolving the contradiction between deployment speed and portability by compiling modules in-place rather than requiring pre-compilation for each target system.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces a kernel module compiler as an intermediary component that operates within the container runtime environment. This intermediary translates high-level kernel module specifications into system-specific compiled modules on-demand, eliminating the need for pre-compilation while maintaining deployment efficiency. The compiler acts as a mediator between the portable container image and the specific host system kernel.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If precompiled kernel modules are used, then device complexity is reduced, but development complexity increases due to separate pre-compilation processes

Engineering Contradiction:
Improvesystem complexityVSAvoiddevelopment complexity
Core Design Contradiction:
Device complexityVSEase of manufacture

Solution Approach 1:

The patent merges the kernel module compilation process with the container runtime deployment process, consolidating what were previously separate operations into a unified workflow. The module compilation, previously a separate pre-processing step, is now integrated into the container startup sequence, simplifying the development process by eliminating the need for separate build environments and workflows.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements self-service compilation where the container system automatically compiles its own kernel modules at runtime without external intervention. The compilation process is embedded within the container image itself, allowing the system to serve its own compilation needs without requiring external build infrastructure, thereby reducing development complexity.

Inventive Principle:
Principle #25Self-service

3Productivity

If precompiled modules are used across different systems, then productivity is improved through reuse, but manufacturing precision deteriorates due to compatibility issues

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidkernel module compatibility
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent utilizes parameter changes in the compilation process, specifically changing the target kernel parameters and compilation flags based on the host system's kernel version and configuration. This allows the same source module to be compiled with appropriate parameters for each specific system, ensuring precise compatibility while maintaining the ability to reuse the same module source across different systems.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11385923B2Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
Publication Date: 2022.07.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11385923B2 patent drawing
  • US11385923B2 patent drawing
  • US11385923B2 patent drawing

AI summary

The present disclosure relates to a method for extending kernel functionality of a kernel of a container-based virtualization system. The method comprises: providing in the container-based virtualization system a compiling container for compiling kernel modules against the kernel of the container-based virtualization system, and an application container for extending kernel functionality of the kernel using a kernel module. The application container may input the kernel module to the compiling container. The compiling container may compile the kernel module in the compiling container. The application container may receive from the compiling container the compiled kernel module. The application container may load the compiled kernel module to the kernel of the system for enabling the extension of the kernel functionality.