Mapping Binary File for Legacy API Namespace Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The introduction of API namespace virtualization can prevent application compatibility between different versions of an operating system or different operating systems, making it challenging to maintain compatibility between subsequent releases or closely related systems.

Innovation Solution

The use of dynamically linked libraries with forwarded exports, also known as mapping binary files, which establish a translation between an immutable reference API namespace and a per-operating system virtualized namespace, allowing legacy applications to be executed on systems that support namespace virtualization by mapping function calls from legacy binaries to virtualized namespace binaries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If API namespace virtualization is introduced to support multiple operating system versions, then system adaptability and versatility are improved, but application compatibility between different versions deteriorates

Engineering Contradiction:
Improvenamespace virtualization supportVSAvoidapplication compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces mapping binary files as intermediary components that sit between legacy applications and virtualized namespace binaries. These mapping files contain translation tables that redirect function calls from the legacy API namespace to the virtualized API namespace, enabling legacy applications to run on systems with namespace virtualization without modifying the applications themselves.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the binary file system into two distinct types: legacy binaries that use the traditional API namespace and virtualized namespace binaries that use the new virtualized namespace. Mapping binary files are created that contain segmented translation tables, allowing the system to handle different binary types appropriately and maintain compatibility while enabling virtualization.

Inventive Principle:
Principle #1Segmentation

2Reliability

If legacy applications are made to run on virtualized namespace systems, then application compatibility is improved, but system complexity increases due to the need for mapping mechanisms

Engineering Contradiction:
Improveapplication compatibilityVSAvoidmapping binary file structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The mapping binary files are designed to be self-contained with embedded translation tables that automatically resolve function call mappings. The loader automatically detects and loads mapping files when needed, and the translation process occurs transparently without requiring manual configuration or complex external resolution mechanisms.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The mapping translation tables are pre-computed and embedded in the mapping binary files during the build process. This preliminary action eliminates the need for complex runtime resolution algorithms, as the mappings are already determined and stored in an easily accessible format that the loader can directly use.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If export tables from legacy and virtualized binaries are merged, then function mapping capability is improved, but processing time and computational resources increase

Engineering Contradiction:
Improvefunction mapping capabilityVSAvoidexport table merging process
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The export table merging and translation table generation is performed as a preliminary build-time operation rather than a runtime operation. The builder component merges export tables from legacy binaries and virtualized namespace binaries to generate mapping binary files containing translation tables, which are then cached for efficient runtime use without repeated processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of merging export tables dynamically at runtime, the patent creates static copies of the translation information in mapping binary files. The loader copies and uses these pre-generated mapping tables directly, avoiding the computational overhead of dynamic table merging and enabling fast function call resolution.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9563446B2Binary file generation
Publication Date: 2017.02.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9563446B2 patent drawing
  • US9563446B2 patent drawing
  • US9563446B2 patent drawing

AI summary

Various systems and methods for generating a mapping binary file are described herein. In one example, a method includes mapping a function call from a legacy binary file to a function call from a virtualized namespace binary file using a builder to detect a build file that enables the mapping, the mapping comprising merging an export table from the legacy binary file and an export table from the virtualized namespace binary file. The method can also include storing the mapping of the function call from the legacy binary file to the function call from the virtualized namespace binary file in a mapping binary file and storing, in the mapping binary file, an exception detected from the combination. Furthermore, the method can include storing the mapping binary file in a storage location accessible by a loader.