Pseudo Device Driver Session ID Encoding for Linux Device Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Linux operating systems are limited by a maximum of 256 minor device numbers per major device type, restricting the number of devices a user application can access, especially for applications requiring more than 256 devices of a specific type.

Innovation Solution

A pseudo device driver and user session daemon combination that assigns a unique session ID to each user session, allowing multiple devices to be accessed through a single device node, overcoming the limitation of 256 minor devices by encoding the session ID in the device name and using environment variables to manage device access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional Linux device allocation using major and minor device numbers is used, then device access is straightforward and simple, but the number of accessible devices is limited to 256 per major device type

Engineering Contradiction:
Improvedevice access simplicityVSAvoidnumber of accessible devices
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent segments the device identification space by introducing session IDs that are separate from the traditional major/minor device number scheme. Each user session receives a unique session ID, and devices are accessed through session-specific device nodes. This segmentation allows multiple sessions to each have access to their own set of devices without being constrained by the 256-device limit per major type, as each session effectively has its own device namespace.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a session daemon as an intermediary component that manages device allocation and session ID assignment. This mediator sits between user applications and the kernel device driver, translating application requests into session-aware device access operations. The session daemon maintains mapping between session IDs and device resources, enabling applications to access devices through environment variables without directly managing device numbers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If each device is required to allocate a predetermined quantity of minor device numbers, then device resource management is simplified, but the total number of devices of a particular type becomes severely limited

Engineering Contradiction:
Improvedevice resource management simplicityVSAvoidnumber of devices of particular type
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent adds a new dimension to device identification by introducing session IDs as a separate layer above the traditional major/minor device number system. Instead of expanding the minor device number space (which is constrained to 0-255), the invention creates a session dimension where each user session can be assigned devices. This dimensional addition allows the system to support many more devices of a particular type by distributing them across multiple sessions rather than requiring all devices to be accessible through a single major device number's limited minor number range.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7590986B1Methods and apparatus supporting access to multiple devices via a pseudo device driver
Publication Date: 2009.09.15 ORACLE AMERICAN INC
  • US7590986B1 patent drawing
  • US7590986B1 patent drawing
  • US7590986B1 patent drawing

AI summary

A method, apparatus and computer program product for providing a device includes incorporating a session ID into the device name. Communication between an application and device is done by way of a pseudo device driver which identifies the appropriate daemon based on the session id, and forwards the data to the daemon where the daemon provides the data to the device. In operations, the system detects a requirement to access a device during a user session and obtains a session identification associated with the user session. A daemon creates a single device node having an identity that indicates the session identification associated with the user session and a pseudo device driver receives a request to access a device from an application associated with the user session. The device driver parses the request to identify the daemon associated with the user session to process the request based on the session identification indicated within the identity of the device as specified in the request to access the device, and then forwards the request to the identified daemon to allow the application to access the device via the single device node.