Prelinking Software for Virtual Memory De-duplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtualization systems face inefficiencies in memory management due to randomization of memory addresses during prelinking operations, which hinders the detection and merging of duplicative content, leading to performance penalties in memory management techniques.
Innovation Solution
Implementing enhanced prelinking techniques that remove randomization for relocation operations of software libraries, allowing them to be stored using a known virtual address space, enabling memory de-duplication across multiple virtual machines and facilitating more efficient memory sharing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory address randomization is applied during prelinking operations, then security against attacks is improved, but memory de-duplication capability deteriorates
Solution Approach 1:
The patent applies different address assignment strategies to different code sections: readonly sections use fixed addresses to enable de-duplication, while other sections maintain randomization for security. This local differentiation resolves the contradiction by applying quality control at a granular level.
Solution Approach 2:
The patent segments the software code into readonly sections and other sections, applying different address randomization policies to each segment. Readonly sections are assigned fixed addresses to facilitate memory de-duplication, while other sections maintain randomization for security purposes.
2Productivity
If fixed virtual addresses are used for software libraries, then memory sharing efficiency is improved, but security against attacks deteriorates
Solution Approach 1:
The patent applies different address assignment strategies to different code sections: readonly sections use fixed addresses to enable de-duplication, while other sections maintain randomization for security. This local differentiation resolves the contradiction by applying quality control at a granular level.
Solution Approach 2:
The patent segments the software code into readonly sections and other sections, applying different address randomization policies to each segment. Readonly sections are assigned fixed addresses to facilitate memory de-duplication, while other sections maintain randomization for security purposes.
3Reliability
If address space layout randomization is applied, then protection against exploits is improved, but performance of memory management techniques deteriorates
Solution Approach 1:
The patent applies different address assignment strategies to different code sections: readonly sections use fixed addresses to enable de-duplication, while other sections maintain randomization for security. This local differentiation resolves the contradiction by applying quality control at a granular level.
Solution Approach 2:
The patent segments the software code into readonly sections and other sections, applying different address randomization policies to each segment. Readonly sections are assigned fixed addresses to facilitate memory de-duplication, while other sections maintain randomization for security purposes.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques to prelink software to improve memory de-duplication in a virtual system are described. An apparatus may comprise a processor circuit, a memory unit coupled to the processor circuit to store private memory pages for multiple virtual machines, and a dynamic linker application operative on the processor circuit to link a binary version of a software program with associated program modules at run-time of the binary version on a virtual machine. The dynamic linker application may comprise a master prelink component operative on the processor circuit to relocate a first set of program modules for a first binary version of the software program for a first virtual machine using a first set of virtual memory addresses from a first private memory page allocated to the first virtual machine, and store relocation information for the first set of program modules in a global prelink layout map for use by a second virtual machine. Other embodiments are described and claimed.