Operating System Subsystem Extension via Dynamic Link Library

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, due to incompatible APIs and resulting unexpected behavior, which can lead to multiple incompatible versions and loss of standard operating system benefits.

Innovation Solution

The solution involves extending operating system subsystems by using a dynamic link library (DLL) that implements additional API functions, allowing pre- and post-processing steps to be executed at specific insertion points, and dynamically adding system call numbers and ports, enabling seamless integration of extended functionality without modifying the underlying operating system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the operating system subsystem is modified to emulate another flavor of UNIX, then the application can run on the new flavor, but multiple incompatible versions of the operating system are created

Engineering Contradiction:
Improveapplication compatibilityVSAvoidoperating system version complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The operating system subsystem is segmented into a base subsystem and extendable functionality modules. The base subsystem provides standard POSIX APIs, while flavor-specific functionality is provided by separate extendable modules that can be loaded dynamically. This segmentation allows applications to be adapted to different UNIX flavors without modifying the core operating system, thus maintaining compatibility while avoiding version complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary layer is introduced between the base operating system subsystem and the application. This intermediary layer provides flavor-specific API implementations that translate between different UNIX flavors and the standard POSIX interface. The intermediary acts as a mediator that enables application compatibility across different flavors without requiring modifications to the base operating system or creating multiple incompatible versions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the operating system subsystem is modified to support multiple UNIX flavors, then application migration is enabled, but standard operating system benefits are lost

Engineering Contradiction:
Improveflavor compatibilityVSAvoidoperating system dependability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The base operating system subsystem is designed with universality to support multiple UNIX flavors through a common interface. The subsystem provides standardized POSIX APIs that work across all flavors, while flavor-specific behaviors are achieved through extendable functionality. This universal design maintains the reliability and dependability of the base operating system while enabling multi-flavor compatibility, allowing applications to migrate without sacrificing standard OS benefits.

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

Solution Approach 2:

The operating system subsystem incorporates dynamic loadable modules that can be loaded or unloaded based on the required UNIX flavor. This dynamic architecture allows the system to adapt to different flavors at runtime without modifying the core subsystem, maintaining the reliability of the base system while providing flavor-specific functionality through dynamically loaded components.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If a dynamic link library is used to extend subsystem functionality, then seamless integration is achieved, but the system requires dynamic loading mechanisms

Engineering Contradiction:
Improvesubsystem extension easeVSAvoiddynamic loading complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The extendable functionality modules are pre-compiled and prepared in advance, but their loading is deferred until needed. The system maintains a registry or index of available extendable modules, allowing the base subsystem to dynamically load the appropriate module when a specific UNIX flavor is required. This preliminary preparation simplifies the dynamic loading process, as the system only needs to load pre-prepared modules rather than compiling or configuring them at runtime, thus achieving seamless integration without excessive complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7587722B2Extending operating system subsystems
Publication Date: 2009.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7587722B2 patent drawing
  • US7587722B2 patent drawing
  • US7587722B2 patent drawing

AI summary

Techniques for extending operating system subsystems are provided. The techniques involve using a subsystem of an operating system having a set of insertion points that identify points in the program logic of the subsystem where logic extensions may be added. The subsystem may receive a library that has functions comprising program logic for extending the subsystem and a list that provides a correspondence between the insertion points and the functions. When the subsystem receives a request to perform an action that has a corresponding insertion point for which the list provides an associated function, the subsystem may perform the function. The function may be indicated to be performed at various points in the program logic of the subsystem, including before or after the requested action.