Layered Device Driver Architecture for Kernel Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current device drivers are challenging to develop, maintain, and debug, especially in virtual environments, as they are typically implemented solely in kernel space, leading to system crashes and requiring specialized debuggers, and unique drivers are needed for similar hardware functionalities, increasing development costs.

Innovation Solution

A layered device driver architecture that splits the driver into an application component in user space, an interface component, and a physical component in kernel space, allowing high-level functions to be implemented in user space, enabling common debugging tools and reducing the need for unique drivers for similar hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If device drivers are implemented solely in kernel space, then hardware control capability is achieved, but debugging difficulty increases and system stability decreases

Engineering Contradiction:
Improvesystem stabilityVSAvoiddebugging difficulty
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The device driver is segmented into multiple layers: a user-space application layer for high-level operations and a kernel-space interface layer for hardware interaction. This segmentation allows the application component to be debugged using common user-space tools while the kernel interface maintains hardware control capability, resolving the contradiction between debugging ease and hardware control.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary interface component is introduced between the user-space application and the kernel-space hardware driver. This intermediary layer acts as a mediator that translates user-space calls into kernel-space operations, enabling easier debugging through standard tools while preserving the ability to control hardware devices.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If unique drivers are written for each hardware device, then hardware-specific control is achieved, but development cost and time increase

Engineering Contradiction:
Improvehardware compatibilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The device driver architecture implements universality through a standardized interface component that can communicate with multiple types of hardware devices. The user-space application layer provides generic functionality that can be adapted to different hardware devices through the standardized interface, reducing the need to write unique drivers for each device type and thereby reducing development time while maintaining hardware compatibility.

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

3Ease of operation

If device drivers operate in kernel space, then system control authority is maintained, but ease of operation and maintenance decreases

Engineering Contradiction:
Improveease of maintenanceVSAvoiddriver architecture complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The driver architecture is segmented into a user-space application component and a kernel-space interface component. This segmentation moves the maintenance-friendly application logic to user space where standard development tools and processes can be used, while the kernel interface maintains system control authority. The modular structure simplifies maintenance by isolating changes to specific layers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The interface component serves as an intermediary that simplifies the interaction between user-space applications and kernel-space hardware drivers. It provides a standardized, easy-to-use interface that abstracts away the complexity of kernel-space operations, making the system easier to operate and maintain while preserving system control authority.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9459910B1Controlling a layered driver
Publication Date: 2016.10.04 EMC IP HLDG CO LLC
  • US9459910B1 patent drawing
  • US9459910B1 patent drawing
  • US9459910B1 patent drawing

AI summary

A method, for controlling a layered device driver is discussed. The device driver includes three components divided between user space and kernel space. A control process operating in user space may be used to initiate device driver processes and control a shared memory space.