Dynamic POSIX Subsystem Extension via Loadable Libraries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing operating systems face challenges in migrating applications between different implementations, such as UNIX flavors, as modifications to the operating system can lead to incompatible versions and loss of standard system benefits, necessitating a method to extend subsystems without modifying the operating system.

Innovation Solution

The solution involves using a dynamic link library (DLL) that provides pre- and post-functions for operating system commands, allowing for the extension of operating system subsystems by inserting additional steps at specific points in the processing flow, and dynamically adding system call numbers and ports to enable extended functionality without altering the core system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the operating system is modified to emulate another flavor of UNIX, then compatibility with different UNIX flavors is improved, but the operating system becomes incompatible with standard tools and loses benefits of standard operating systems

Engineering Contradiction:
Improvecompatibility with different UNIX flavorsVSAvoidcompatibility with standard tools
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a POSIX subsystem as an intermediary layer between the Windows NT kernel and UNIX applications. This subsystem provides standard UNIX APIs and system call interfaces that allow applications to run on Windows NT without modifying the core operating system. The subsystem acts as a mediator that translates UNIX system calls into Windows NT kernel operations, thereby maintaining compatibility with standard UNIX tools while enabling multi-flavor support.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the operating system into distinct functional layers: the Windows NT kernel provides core operating system functions, while the POSIX subsystem provides UNIX-specific interfaces. This segmentation allows the POSIX subsystem to be extended with flavor-specific functionality through dynamic link libraries without affecting the stability or standard compliance of the core kernel. Each UNIX flavor can be implemented as a separate module that interfaces with the standardized POSIX layer.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the operating system subsystem is modified to support multiple UNIX flavors, then adaptability to different flavors is improved, but the complexity of the operating system increases

Engineering Contradiction:
Improvesupport for multiple UNIX flavorsVSAvoidcomplexity of operating system subsystem
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic link libraries that can be loaded and unloaded at runtime to provide different UNIX flavor implementations. Instead of hard-coding multiple flavor support into the POSIX subsystem, the system dynamically loads the appropriate flavor-specific library when needed. This dynamic approach allows the subsystem to adapt to different UNIX flavors without permanently increasing its structural complexity, as each flavor is implemented as an optional, loadable module.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal POSIX subsystem interface that can work with multiple UNIX flavors through a common architecture. The subsystem defines standardized function pointers and data structures that can be implemented by different flavor-specific libraries. This universal interface layer allows the same POSIX subsystem code to support multiple UNIX flavors (such as BSD, System V, and others) without requiring separate implementation paths, thereby reducing overall system complexity while maintaining multi-flavor support.

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

Data Source

PatentUS7409691B2Extending operating system subsystems
Publication Date: 2008.08.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7409691B2 patent drawing
  • US7409691B2 patent drawing
  • US7409691B2 patent drawing

AI summary

Techniques for extending operating system subsystems are provided. The techniques involve receiving a library that provides functions that extend an application program interface of the subsystem of the operating system. The techniques dynamically add a set of local procedure call ports or system call numbers corresponding to functions provided by the library and provide a known local procedure call port for receiving requests to identify a dynamically added local procedure call port or system call number. When a function of the library is requested, the subsystem determines the dynamically added port or system call number corresponding to the function, and provides an indication of the determined port or system call number to a requester of the function. The requester of the function may then invoke the function using the indicated dynamically added port or system call number.