Unified Device Driver Framework for Cross-Platform Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems face challenges in developing software components due to distinct operational constraints, leading to static and non-expandable programming environments, which hinder the integration of software components and require custom solutions for each platform, resulting in inefficiencies and increased development costs.
Innovation Solution
A common software environment with a scalable, unified architecture that uses APIs to facilitate communication between device drivers, allowing them to execute in both user and kernel modes, and supports various data storage system environments, enabling platform independence and flexibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If device drivers are developed separately for each platform with custom solutions, then platform-specific reliability is improved, but device complexity and development costs increase
Solution Approach 1:
The patent implements a universal device driver framework that can operate across multiple storage platforms (Linux, AIX, Solaris, Windows) using a common architecture. The driver supports both user mode and kernel mode execution, allowing a single driver implementation to serve multiple platforms without requiring custom solutions for each, thereby reducing overall system complexity while maintaining platform-specific reliability through mode-appropriate optimizations
2Adaptability or versatility
If a unified device driver framework is implemented across multiple platforms, then adaptability and code reuse are improved, but execution efficiency and platform optimization may worsen
Solution Approach 1:
The patent employs dynamic execution mode selection where the device driver can operate in user mode or kernel mode depending on the platform and operational requirements. This dynamic approach allows the same driver framework to be adapted to different execution environments, optimizing performance for each platform while maintaining code reuse through the unified framework architecture
Solution Approach 2:
The patent changes the execution mode parameter (user mode vs. kernel mode) to optimize driver behavior for different platforms. By adjusting this fundamental parameter, the unified driver framework achieves platform-specific optimization without requiring separate driver implementations, thereby maintaining both adaptability and execution efficiency
3Reliability
If separate code modules are developed for different operating systems and hardware platforms, then compatibility with specific environments is improved, but loss of time and development effort increase
Solution Approach 1:
The patent creates a universal device driver framework that maintains environment compatibility through support for multiple operating systems (Linux, AIX, Solaris, Windows) and hardware platforms within a single codebase. This eliminates the need to develop separate code modules for each environment, significantly reducing development time while preserving compatibility through platform-aware execution modes
Data Source
AI summary
Described are techniques for facilitating communication between device drivers. A device driver is provided that makes at least one call using an application programming interface. The application programming interface facilitates communication between the device driver module and a target code module. The application programming interface provides support for performing the at least one call from a first execution mode associated with the device driver module and a second execution mode associated with the target code module. The application programming interface provides support for user space to user space communication, user space to kernel space communication, kernel space to kernel space communication, and kernel to user space communication. The first execution mode of the device driver module and said second execution mode of the target code module are determined. A communication path between the modules is established in accordance with said first execution mode and said second execution mode.


