IP Library Granted Patent US 12,737,196
Granted Patent B2
US 12,737,196 · App. 17/956,728 · Granted Sep 15, 2026

Shared library loading using predefined loading policy

Inventors: Heng Wang (Changping District, CN); Xiao Ling Chen (Changping District, CN); Xin Peng Liu (Austin, TX); Tao Guan (Toronto, CA); Wei Wu (Beijing, CN)
Assignee: International Business Machines Corporation
G06F9/44521
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,737,196
App. No.
17/956,728
Granted
Sep 15, 2026
Kind
B2
Abstract

A computer-implemented process is disclosed. An application is loaded into a local address space. A request by the application to load a target shared library is intercepted by an interceptor. Using the interceptor and based upon the request being intercepted, a shared library correlation table is searched for a loading count and a loading policy associated with the target shared library. Based upon the loading count and the loading policy, a selection is made between loading the target shared library as a shared library container, and loading the target shared library into the local address space. The target shared library is loaded based upon the selecting. The loading count represents a number of times the target shared library was loaded, and the loading policy indicates how the target shared library is to be loaded.

Claims (86)

1 . A computer-implemented method, comprising:

loading an application into a local address space;

intercepting, by an interceptor, a request by the application to load a target shared library, wherein the request is generated using a dlopen call;

searching, using the interceptor and based upon the request being intercepted, a shared library correlation table for a loading count and a loading policy associated with the target shared library;

selecting, based upon the loading count and the loading policy, between:

loading the target shared library as a shared library container, and

loading the target shared library into the local address space; and

loading the target shared library based upon the selecting, wherein

the loading count represents a number of times the target shared library was loaded,

the loading policy indicates how the target shared library is to be loaded,

the loading of the target shared library is performed using a mocked dlopen function, and

the mocked dlopen function includes the searching the shared library correlation table.

2 . The computer-implemented method of claim 1 , wherein

the shared library correlation table includes, for each target shared library of a plurality of target shared libraries:

the loading count,

the loading policy, and

one of a local handle or a container ID,

the local handle is associated with a pointer to the target shared library loaded in the local address space, and

the container ID is an identification of the shared library container of the target shared library.

3 . The computer-implemented method of claim 2 , wherein upon the interceptor intercepting a request to unload the target shared library, one of the local handle or the container ID for the target shared library is retrieved by the interceptor from the shared library correlation table.

4 . The computer-implemented method of claim 3 , wherein the interceptor is configured, based on the local handle being retrieved, to forward the local handle to a dynamic linker to unload the target shared library from the local address space.

5 . The computer-implemented method of claim 3 , wherein the interceptor is configured, based upon the container ID being retrieved, to forward the container ID to a container handler to unload the target shared library.

6 . The computer-implemented method of claim 1 , wherein

based upon the loading count being an initial value:

a dynamic linker is invoked to load the target shared library,

the loading count is incremented to generate an incremented loading count, and

the incremented loading count is stored within the shared library correlation table.

7 . The computer-implemented method of claim 1 , further comprising

invoking, based upon the loading count being greater than an initial value and the loading policy indicates to load the target shared library as a container, a container platform to load the shared library container.

8 . A computer hardware system, comprising:

a hardware processor configured to perform the following executable operations:

loading an application into a local address space;

intercepting, by an interceptor, a request by the application to load a target shared library, wherein the request is generated using a dlopen call;

searching, using the interceptor and based upon the request being intercepted, shared library correlation table for a loading count and a loading policy associated with the target shared library;

selecting, based upon the loading count and the loading policy, between:

loading the target shared library as a shared library container, and

loading the target shared library into the local address space; and

loading the target shared library based upon the selecting, wherein

the loading count represents a number of times the target shared library was loaded,

the loading policy indicates how the target shared library is to be loaded,

the loading of the target shared library is performed using a mocked dlopen function, and

the mocked dlopen function includes the searching the shared library correlation table.

9 . The computer hardware system of claim 8 , wherein

the shared library correlation table includes, for each target shared library of a plurality of target shared libraries:

the loading count,

the loading policy, and

one of a local handle or a container ID,

the local handle is associated with a pointer to the target shared library loaded in the local address space, and

the container ID is an identification of the shared library container of the target shared library.

10 . The computer hardware system of claim 9 , wherein upon the interceptor intercepting a request to unload the target shared library, one of the local handle or the container ID for the target shared library is retrieved by the interceptor from the shared library correlation table.

11 . The computer hardware system of claim 10 , wherein the interceptor is configured, based on the local handle being retrieved, to forward the local handle to a dynamic linker to unload the target shared library from the local address space.

12 . The computer hardware system of claim 10 , wherein

the interceptor is configured, based upon the container ID being retrieved, to forward the container ID to a container handler to unload the target shared library.

13 . The computer hardware system of claim 8 , wherein

based upon the loading count being an initial value:

a dynamic linker is invoked to load the target shared library,

the loading count is incremented to generate an incremented loading count, and

the incremented loading count is stored within the shared library correlation table.

14 . The computer hardware system of claim 8 , wherein the hardware processor is further configured to perform the operations comprising:

invoking, based upon the loading count being greater than an initial value and the loading policy that indicates to load the target shared library as a container, a container platform to load the shared library container.

15 . A computer program product, comprising:

a computer readable storage medium having stored therein program code for training a training dataset,

the program code, which when executed by a computer hardware system, cause the computer hardware system to perform:

loading an application into a local address space;

intercepting, by an interceptor, a request by the application to load a target shared library, wherein the request is generated using a dlopen call;

searching, using the interceptor and based upon the request being intercepted, a shared library correlation table for a loading count and a loading policy associated with the target shared library;

selecting, based upon the loading count and the loading policy, between:

loading the target shared library as a shared library container, and

loading the target shared library into the local address space; and

loading the target shared library based upon the selecting, wherein

the loading count represents a number of times the target shared library was loaded,

the loading policy indicates how the target shared library is to be loaded,

the loading of the target shared library is performed using a mocked dlopen function, and

the mocked dlopen function includes the searching of the shared library correlation table.

16 . The computer program product of claim 15 , wherein

the shared library correlation table includes, for each target shared library of a plurality of target shared libraries:

the loading count,

the loading policy, and

one of a local handle or a container ID,

the local handle is associated with a pointer to the target shared library loaded in the local address space, and

the container ID is an identification of the shared library container of the target shared library.

17 . The computer program product of claim 16 , wherein upon the interceptor intercepting a request to unload the target shared library, one of the local handle or the container ID for the target shared library is retrieved by the interceptor from the shared library correlation table.

18 . The computer program product of claim 15 , wherein based upon the loading count being an initial value,

a dynamic linker is invoked to load the target shared library,

the loading count is incremented to generate an incremented loading count, and

the incremented loading count is stored within the shared library correlation table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2022
From: WANG, HENG; CHEN, XIAO LING; LIU, XIN PENG; GUAN, TAO; WU, WEI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 061261/0803 →
Continuity (1)
Related Publication 20240111550A1 · Apr 4, 2024
References Cited (39)
US 10409507B1 · Huang et al. · 2019 [cited by applicant]
US 10445112B2 · Sirajuddin · 2019 [cited by applicant]
US 20070288944A1 · Kato · 2007 [cited by examiner]
US 20080098368A1 · Biswas · 2008 [cited by examiner]
US 20080270461A1 · Gordon et al. · 2008 [cited by applicant]
US 20140007125A1 · Chung · 2014 [cited by examiner]
US 20140304719A1 · Pope et al. · 2014 [cited by applicant]
US 20150332043A1 · Russello · 2015 [cited by examiner]
US 20160364222A1 · Schultz et al. · 2016 [cited by applicant]
US 20170132345A1 · Dumont et al. · 2017 [cited by applicant]
US 20180203995A1 · Yuen et al. · 2018 [cited by applicant]
US 20190243636A1 · Sahu et al. · 2019 [cited by applicant]
US 20190294798A1 · Jin et al. · 2019 [cited by applicant]
US 20210373979A1 · Lewin et al. · 2021 [cited by applicant]
US 20230035594A1 · Iyer et al. · 2023 [cited by applicant]
US 20230092747A1 · Wang et al. · 2023 [cited by applicant]
US 20230393980A1 · Abdoulaye · 2023 [cited by examiner]
US 20240202036A1 · Wang et al. · 2024 [cited by applicant]
US 20240256312A1 · Lin · 2024 [cited by examiner]
CN 102073520A · 2011 [cited by applicant]
CN 108762825A · 2018 [cited by applicant]
CN 109753319B · 2019 [cited by applicant]
CN 109791483A · 2019 [cited by applicant]
CN 107102888B · 2019 [cited by applicant]
CN 115904528A · 2023 [cited by applicant]
JP 2008017034A · 2008 [cited by applicant]
JP 2010244516A · 2010 [cited by applicant]
JP 2013105349A · 2013 [cited by applicant]
JP 2020113050A · 2020 [cited by applicant]
JP 2023046312A · 2023 [cited by applicant]
KR 20120014673A · 2012 [cited by applicant]
Mell, P. et al., The NIST Definition of Cloud Computing, National Institute of Standards and Technology, U.S. Dept. of Commerce, Special Publication 800-145, Sep. 2011, 7 pg. [cited by applicant]
Wu, Y. et al., “Codejail: Application-transparent isolation of libraries with tight program interactions,” In European Symposium on Research in Computer Security, Sep. 10, 2012, pp. 859-876, Springer, Berlin, Heidelberg. [cited by applicant]
MattN, “runtime: support dlclose with—buildmode=c-shared #11100,” [online] GitHub, Jun. 6, 2015, retrieved from the Internet: <https://github.com/golang/go/issues/11100>, 22 pg. [cited by applicant]
Sreecha, “Clearly document the cases where fork() is supported in grpc() #14055,” [online] “Clearly document the cases where fork() is supported in grpc() #14055,” GitHub, Jan. 17, 2018, retrieved from the Internet: <ht… [cited by applicant]
Japan Patent Office, “Notice of Reasons for Refusal” Nov. 11, 2025, 05 Pages, JP Application No. 2022-150019. [cited by applicant]
IBM: List of IBM Patents or Patent Applications Treated as Related, Jun. 8, 2023, 2 pg. [cited by applicant]
Wang H. et al., “Using Containers to Clean Runtime Resouces When Unloading a Shared Library”, U.S. Appl. No. 17/481,580, filed Sep. 22, 2021, 39 pages. (A copy is not provided as this application is available to the Exa… [cited by applicant]
The State Intellectual Property Office of People's Republic of China, “First Office Action”, Jan. 30, 2026, 16 Pages, CN Application No. 202211156019.6. [cited by applicant]