Self-Describing Kernel Modules via Embedded Metadata

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current UNIX systems face limitations in reliability and flexibility due to the separate storage of module metadata, which can become outdated or lost, and require compiling kernel code on user systems, necessitating access to configuration data within the kernel.

Innovation Solution

The method involves expressing module metadata in a modmeta file format, translating it into C language data structures, and embedding these data structures within the kernel module, allowing the module to contain its own descriptive data, using a modmeta compiler and ELF file format for easy extraction by kernel tools.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If module metadata are stored in separate master files, then configuration flexibility is improved, but reliability deteriorates because metadata can become outdated or lost

Engineering Contradiction:
Improveconfiguration flexibilityVSAvoidmetadata reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent merges module metadata directly into the kernel module binary file itself, eliminating separate master files. The metadata is embedded in a standardized format within the module's own structure, ensuring that the metadata and the module code are always synchronized and cannot become outdated or lost independently.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a copy of the module metadata and embeds it within the module binary. This self-contained copy ensures that the metadata travels with the module wherever it is loaded, eliminating the risk of metadata being lost or becoming outdated in separate configuration files.

Inventive Principle:
Principle #26Copying

2Ease of manufacture

If kernel code is compiled on user systems with access to configuration data, then ease of manufacture is improved, but device complexity worsens due to separate configuration file management

Engineering Contradiction:
Improvekernel compilation easeVSAvoidconfiguration file management
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent extracts the module metadata from separate configuration files and embeds it directly into the module binary. This eliminates the need for users to manage separate configuration files or have access to external metadata during module loading, simplifying the overall system while maintaining compilation ease.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If module metadata are embedded within kernel modules, then reliability is improved by ensuring metadata is always up-to-date, but device complexity increases due to integrated structure

Engineering Contradiction:
Improvemetadata reliabilityVSAvoidmodule structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the module binary into distinct components: the executable kernel code and the embedded metadata structure. This segmentation allows the metadata to be organized in a standardized, extractable format within the binary, making it reliable and accessible without creating unmanageable complexity in the overall module structure.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7954086B2Self-describing kernel modules
Publication Date: 2011.05.31 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7954086B2 patent drawing
  • US7954086B2 patent drawing
  • US7954086B2 patent drawing

AI summary

A method, and a corresponding mechanism, are used for creating a self-describing kernel module. The method includes the steps of expressing data describing a module in a modmeta file format and creating a C language source file. The C language source file is created by translating the expressed data into a series of C language data structures, wherein the series of C language data structures comprises the C language source file. The C language source file is then compiled and linked into the module itself, thus making the module contain its own descriptive data.