IP Library Granted Patent US 7,954,086
Granted Patent B2
US 7,954,086 · App. 10/440,144 · Granted May 31, 2011

Self-describing kernel modules

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 7,954,086
App. No.
10/440,144
Granted
May 31, 2011
Kind
B2
Abstract

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.

Claims (83)

1. A method for creating a self-describing kernel module, comprising:

expressing data describing a module in a modmeta file format, the data including

a module name,

a module version,

a module type, and

a module description which includes one or more of

a text description,

an indication of supported states,

an indication of supported load times,

an indication of dependencies with respect to other modules,

a description of export and import interfaces,

a description of tunable parameters, and

a description of initialization functions;

creating a C language source file, comprising translating the expressed data into a series of C language data structures, wherein the data structures comprise contiguous, variant length C data structures without embedded pointers, and wherein the series of C language data structures comprises the C language source file;

compiling the C language source file into machine-readable form; and

linking the machine-readable form of the C language source file with object files containing the module's code.

2. The method of claim 1 , further comprising embedding the machine-readable form data into kernel code of the module being described.

3. The method of claim 2 wherein embedding comprises storing the machine-readable form of the C language source file in an ELF-format section, wherein the data can be easily extracted.

4. The method of claim 3 , wherein storing the machine-readable form data in the ELF-format section comprises using a C compiler pragma.

5. The method of claim 3 , wherein data in separate ELF-format sections of kernel modules are combined by linking the data into a separate ELF-format section of a compiled kernel, so that the data can still be easily extracted even after the kernel is linked.

6. The method of claim 2 , further comprising applying a set of kernel configuration tools to the embedded data and the kernel code.

7. The method of claim 1 , further comprising using C data structures to express discriminated unions.

8. A computer readable medium comprising routines to create self-describing kernel modules, wherein the routines when executed comprise the steps of:

expressing data describing a module in a modmeta file format, the data including

a module name,

a module version,

a module type, and

a module description which includes one or more of

a text description,

an indication of supported states,

an indication of supported load times,

an indication of dependencies with respect to other modules,

a description of export and import interfaces,

a description of tunable parameters, and

a description of initialization functions;

creating a C language source file, comprising translating the expressed data into a series of C language data structures, wherein the data structures comprise contiguous, variant length C data structures without embedded pointers, and wherein the series of C language data structures comprises the C language source file;

compiling the C language source file into machine-readable form; and

linking the machine-readable form of the C language source file with object files containing the module's kernel code.

9. The computer-readable medium of claim 8 , wherein the steps further comprise embedding the machine-readable form data into kernel code of the module being described.

10. The computer-readable medium of claim 9 , wherein embedding comprises storing the machine-readable form of the C language source file in an ELF-format section, wherein the data can be easily extracted.

11. The computer-readable medium of claim 10 , further comprising a C compiler pragma, wherein the C compiler pragma is usable for storing the machine-readable form data in the ELF-format section.

12. The computer-readable medium of claim 10 , Wherein data in separate ELF-format sections of kernel modules are combined by linking the data into a separate ELF-format section of a compiled kernel, so that the data can still be easily extracted even after the kernel is linked.

13. The computer-readable medium of claim 9 , wherein the steps further comprise applying a set of kernel configuration tools to the embedded data and the kernel code.

14. The computer-readable medium of claim 10 , wherein the steps further comprise using C data structures to express discriminated unions.

15. A mechanism for creating self-describing kernel modules, comprising: a modmeta compiler that executes on one or more computer processors to translate a modmeta data file into a source code file, wherein the source code file comprises a series of contiguous, variant length data structures without embedded pointers; and a linking mechanism to link the modmeta with object code corresponding to kernel code of the module to generate executable code stored in an electronic memory with a computer system, the modmeta data file including

a module name,

a module version,

a module type, and

a module description which includes one or more of

a text description,

an indication of supported states,

an indication of supported load times,

an indication of dependencies with respect to other modules,

a description of export and import interfaces,

a description of tunable parameters, and

a description of initialization functions.

16. The mechanism of claim 15 , wherein the data structures are C language data structures.

17. The mechanism of claim 15 , further comprising means for embedding machine-readable form data into kernel code of the module being described.

18. The mechanism of claim 17 , wherein the embedding means comprises a C compiler pragma.

19. The mechanism of claim 17 , wherein the machine-readable form data are embedded in an ELF-format section, wherein the data can be easily extracted.

20. The mechanism of claim 15 , further comprising a set of kernel configuration tools usable to modify the embedded data.

21. A data structure for a kernel comprising self-describing kernel modules, the data structure comprising:

a kernel executable stored in a computer;

a kernel registry stored in the computer; and

a self-describing kernel module stored in the computer or a computer-readable media, comprising:

kernel code, and

a modmeta table linked to the kernel code and contained within the self-describing kernel module,

wherein the modmeta table is compiled from C language data structures comprising contiguous, variant length C data structures without embedded pointers and wherein the modmeta table includes

a module name,

a module version,

a module type, and

a module description which includes one or more of

a text description,

an indication of supported states,

an indication of supported load times,

an indication of dependencies with respect to other modules,

a description of export and import interfaces,

a description of tunable parameters, and

a description of initialization functions.

22. The data structure of claim 21 , wherein machine-readable form data is embedded into kernel code of a module being described.

23. The data structure of claim 22 , wherein the embedded data are stored an ELF-format section, wherein the data can be easily extracted.

24. The data structure of claim 22 , wherein the machine-readable form data is stored in the ELF-format section comprises using a C compiler pragma.

25. The data structure of claim 24 , wherein data in separate ELF-format sections of the self-describing kernel modules are combined by linking the data into a separate ELF-format section of a compiled kernel, wherein the data can still be easily extracted even after the linking.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 058897/0262 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →