User Space Driver Framework for Kernel Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In monolithic kernel operating systems, device drivers executing in kernel space can cause system crashes if they fail, and they typically represent a single point of failure for all devices of the same type, leading to instability and loss of access to all controlled ports upon failure.

Innovation Solution

Enabling device drivers to execute in user space with a user space driver framework that receives and processes kernel API calls, and initiating separate device driver processes for each port of the same type, allowing for a one-to-one correspondence and increasing system stability by isolating failures to individual ports.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If device drivers execute in kernel space, then they can directly access hardware and perform operations efficiently, but system stability deteriorates because driver failures can crash the entire system

Engineering Contradiction:
Improvehardware access efficiencyVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the device driver functionality into separate user-space processes, one for each port or device. This segmentation isolates failures to individual processes rather than affecting the entire system, while still maintaining efficient hardware access through direct I/O mappings and bypassing the need for kernel-space execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a user-space driver framework that acts as an intermediary between user-space driver processes and the kernel. This framework provides the necessary abstractions and interfaces for hardware access while keeping the drivers themselves in user space, thus maintaining both stability and efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a single device driver process controls all ports of the same type, then resource utilization is efficient, but reliability deteriorates because a single point of failure affects all ports

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the single monolithic driver process into multiple separate driver processes, with each process responsible for controlling a specific port or device. This segmentation eliminates the single point of failure problem while maintaining efficient resource utilization through independent process management and shared framework infrastructure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by giving each driver process specialized functionality for its specific port, while sharing common functionality through the user-space framework. This allows each process to be optimized for its specific device while benefiting from shared resources.

Inventive Principle:
Principle #3Local quality

3Reliability

If device drivers execute in user space with separate processes for each port, then system stability improves through failure isolation, but device complexity increases due to multiple processes and inter-process communication

Engineering Contradiction:
Improvesystem stabilityVSAvoiddriver architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal user-space driver framework that provides common functionality shared by all driver processes. This framework handles inter-process communication, hardware abstraction, and common operations, reducing the complexity that would otherwise be duplicated in each individual driver process.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses copy-on-write memory management and shared memory segments to allow multiple driver processes to access common data structures efficiently. This copying mechanism reduces memory overhead and simplifies inter-process communication compared to traditional shared memory approaches.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10120736B2Executing a kernel device driver as a user space process
Publication Date: 2018.11.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10120736B2 patent drawing
  • US10120736B2 patent drawing
  • US10120736B2 patent drawing

AI summary

Two or more ports of a same type are identified in a computer. A separate device driver process is initiated for each of the identified ports. A one-to-one correspondence between each of the ports and each of the device driver processes is established.