CN114489827A - 动态库加载方法、核部署的调整方法及相关装置 - Google Patents

动态库加载方法、核部署的调整方法及相关装置 Download PDF

Info

Publication number
CN114489827A
CN114489827A CN202011268494.3A CN202011268494A CN114489827A CN 114489827 A CN114489827 A CN 114489827A CN 202011268494 A CN202011268494 A CN 202011268494A CN 114489827 A CN114489827 A CN 114489827A
Authority
CN
China
Prior art keywords
dynamic library
loaded
dynamic
linked
libraries
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011268494.3A
Other languages
English (en)
Other versions
CN114489827B (zh
Inventor
欧炜
陈计亮
江维财
徐高峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Huawei Technologies Co Ltd
Original Assignee
Shanghai Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Huawei Technologies Co Ltd filed Critical Shanghai Huawei Technologies Co Ltd
Priority to CN202011268494.3A priority Critical patent/CN114489827B/zh
Priority to PCT/CN2021/115233 priority patent/WO2022100208A1/zh
Publication of CN114489827A publication Critical patent/CN114489827A/zh
Application granted granted Critical
Publication of CN114489827B publication Critical patent/CN114489827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种动态库加载方法、核部署的调整方法及相关装置,该方法包括:当在目标内核加载第一应用时,从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件;所有待加载的动态库的可执行文件中的第一平台动态库版本关联的动态库的可执行文件为支持第一应用加载的平台的最新动态库版本;对所有待加载的动态库的可执行文件分别预链接后存储,然后获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到目标内核。如此,在后续每次需要在目标内核上切换加载第一应用时,可以直接从文件系统获得与平台的最新动态库版本兼容匹配的预链接后的可执行文件,避免了动态库加载失败的问题。

Description

动态库加载方法、核部署的调整方法及相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种动态库加载方法、核部署的调整方法及相关装置。
背景技术
多内核的处理器可以同时支持多种应用并发。作为示例,在基站中多内核的处理器支持4G的LTE制式和5G的NR制式,4G用户有100个,分布在3个小区;5G用户有50个,分布在3个小区。处理器的内核1、内核2和内核3负责4G用户的资源分配,处理器的内核4和内核5负责5G用户的资源分配。实际应用中,随着人员的流动或5G普及使用等原因,4G用户与5G用户数量可能发生变化,例如4G用户下降至50个,5G用户上升至100个。此时,由于5G用户数量的激增,内核4和内核5已经不足以支持所有5G用户,为此,需要对4G LTE制式和5G NR制式的核部署进行实时、快速的调整,例如将内核3调整部署为负责5G用户的资源分配。此时,涉及到将内核3的4G应用相关的动态库切换为5G应用相关的动态库,期间涉及动态库的加载和卸载。为了提升用户的使用体验,以动态库加载为例,现有技术中可在代码编译阶段对相关的动态库预链接以进行重定位。这样节约了动态库加载时重定位消耗的时间,提升动态库加载速度。
但是由于预链接过程是在编译阶段进行的,如果支持业务应用运行的平台发生动态库版本更新,此前预链接得到的动态库的可执行文件的版本与平台实际最新的动态库版本并不兼容,导致动态库加载失败的问题时有发生。如何在提升动态库加载速度的基础上保证动态库成功加载,已经成为本领域急需解决的技术问题。
发明内容
本申请提供了一种动态库加载方法、核部署的调整方法及相关装置,以提核部署发生调整时动态库的加载速度,并解决动态库加载失败的问题。
本申请实施例提供了一种动态库加载方法,包括:
当在目标内核加载第一应用时,从文件系统中获得所述目标内核对应的所有待加载的动态库的可执行文件;所述所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本;
对所述所有待加载的动态库的可执行文件分别预链接,获得所述所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入所述文件系统中;
从所述文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到所述目标内核。
可选地,在所述从文件系统中获得所有待加载的动态库的可执行文件之前,还包括:
接收动态库加载请求;所述动态库加载请求指示了所有待加载的动态库和所述目标内核。
可选地,在所述将每个待加载的动态库预链接后的可执行文件加载到处理器的目标内核时,所述方法还包括:
以预先编排的存储地址,将每个待加载的动态库预链接后的可执行文件存入内存中所述目标内核对应的存储空间中。
可选地,在所述对所述所有待加载的动态库的可执行文件分别预链接时,所述方法还包括:
根据所述内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排。
可选地,所述根据所述内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排,具体包括:
根据所述内存的存储粒度和最新编排好存储地址的动态库的可执行文件的段大小,确定所述最新编排好存储地址的动态库的可执行文件的剩余存储空间;
确定出加载顺序靠前的n个存储地址未编排的动态库,并确定所述n个存储地址未编排的动态库的可执行文件的段大小;所述n为正整数;
从所述n个存储地址未编排的动态库中确定出可存入所述剩余存储空间且可执行文件的段大小与所述剩余存储空间最接近的一个动态库,对该动态库预链接后的可执行文件的存储地址编排至所述剩余存储空间的地址范围内。
可选地,所述动态库的可执行文件的段大小包括:所述动态库的可执行文件中代码段的大小和数据段的大小。
可选地,所述文件系统包括:至少一个动态库版本容器;
所述至少一个动态库版本容器包括:动态库版本第一容器;所述动态库版本第一容器中包括与所述第一应用加载相关的所有动态库的可执行文件;所述与所述第一应用加载相关的所有动态库的可执行文件包括:目标内核对应的所有待加载的动态库的可执行文件;
所述从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件,具体包括:
从所述动态库版本第一容器中获得所述目标内核对应的所有待加载的动态库的可执行文件。
可选地,所述文件系统还包括:与每个动态库版本容器对应的动态库预链接版本容器,其中包括与所述动态库版本第一容器对应的动态库预链接版本第一容器;
所述将每个待加载的动态库预链接后的可执行文件存入所述文件系统中,具体包括:
将每个待加载的动态库预链接后的可执行文件存入所述动态库预链接版本第一容器;
所述从所述文件系统获取每个待加载的动态库预链接后的可执行文件,具体包括:
从所述动态库预链接版本第一容器获取每个待加载的动态库预链接后的可执行文件。
可选地,还包括:当再次在所述目标内核加载所述第一应用时,从所述文件系统直接获取所述目标内核对应的所有待加载的动态库预链接后的可执行文件,将其中每个待加载的动态库预链接后的可执行文件加载到所述目标内核。
本申请实施例还提供了一种核部署的调整方法,包括:
接收核部署调整请求;所述核部署调整请求指示了目标内核对应的所有待卸载的动态库和所述目标内核对应的所有待加载的动态库;
根据所述核部署调整请求,将所述所有待卸载的动态库从所述目标内核上卸载,并从文件系统中获得所述所有待加载的动态库预链接后的可执行文件,将所述所有待加载的动态库预链接后的可执行文件加载到所述目标内核;
所述所有待加载的动态库预链接后的可执行文件为依据所有待加载的动态库的可执行文件预链接后获得的;所述所有待加载的动态库的可执行文件,包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本。
本申请实施例还提供了一种动态库加载装置,包括:
获取模块用于,当在目标内核加载第一应用时,从文件系统中获得所述目标内核对应的所有待加载的动态库的可执行文件;所述所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本;
预链接模块用于,对所述所有待加载的动态库的可执行文件分别预链接,获得所述所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入所述文件系统中;
加载模块用于,从所述文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到所述目标内核。
本申请实施例还提供了一种核部署的调整装置,包括:
接收模块用于,接收核部署调整请求;所述核部署调整请求指示了目标内核对应的所有待卸载的动态库和所述目标内核对应的所有待加载的动态库;
部署调整模块用于,根据所述核部署调整请求,将所述所有待卸载的动态库从所述目标内核上卸载,并从文件系统中获得所述所有待加载的动态库预链接后的可执行文件,将所述所有待加载的动态库预链接后的可执行文件加载到所述目标内核;
所述所有待加载的动态库预链接后的可执行文件为依据所有待加载的动态库的可执行文件预链接后获得的;所述所有待加载的动态库的可执行文件,包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本。
从以上技术方案可以看出,本申请实施例至少具有以下优点:
本申请提供的动态库加载方法,当在目标内核加载第一应用时,从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件;所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件。其中,第一平台动态库版本为支持第一应用加载的平台的最新动态库版本。对所有待加载的动态库的可执行文件分别预链接,获得所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入文件系统中;从文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到目标内核。在一些场景中,目标内核的应用通常是频繁切换的,例如频繁从第二应用切换至第一应用,频繁从第一应用切换至第二应用。在本申请技术方案中,由于上述的每个待加载的动态库预链接后的可执行文件被存入于文件系统,因此在后续每次需要在目标内核上切换加载第一应用时,可以直接从文件系统获得这些待加载的动态库预链接后的可执行文件,而不需要每次执行预链接的操作。如此,提升了动态库的加载速度。此外,由于首次预链接是在目标内核加载第一应用时进行的,因此,可以基于平台的最新动态库版本关联的动态库的可执行文件进行预链接。如此,预链接后的可执行文件与平台的最新动态库版本兼容匹配,避免了动态库加载失败的问题。
附图说明
图1为本申请实施例提供的一种动态库加载方法流程示意图;
图2为本申请实施例提供的一种内存编排前和内存编排后动态库预链接后可执行文件的存储效果对比示意图;
图3为本申请实施例提供的一种文件系统的结构示意图;
图4为本申请实施例提供的一种核部署的调整方法流程示意图;
图5为本申请实施例提供的一种核部署的调整方法应用场景示意图;
图6为本申请实施例提供的另一种文件系统的结构示意图;
图7a为本申请实施例提供的一种动态库加载方法的信令图;
图7b为本申请实施例提供的一种核部署调整方法的信令图;
图8为本申请实施例提供的一种动态库加载装置结构示意图;
图9为本申请实施例提供的一种核部署的调整装置结构示意图。
具体实施方式
在介绍本申请实施例之前,为了更好地理解本申请实施例所提供的方案,下面先对本申请中出现的几个技术术语进行解释。
动态库:可重定位的目标文件以一种特定的方式打包成一个单独的文件,并且在链接生成可执行文件时,从这个单独的文件中“拷贝”它自己需要的内容到最终的可执行文件中,且不需要在链接时将需要的内容的二进制代码全部都“拷贝”到可执行文件中,而是仅仅“拷贝”一些重定位和符号表信息,这些信息可以在程序运行时完成真正的链接过程。这个单独的文件,称为动态库。
全局偏移表(Global Offset Table,GOT)表:用于定位全局变量和函数的一个表。
预链接(Pre-Link):是一种通过在启动之前解析库符号来优化应用程序加载时间的方法。
正如前文描述,目前的动态库加载方法预链接过程是在编译阶段进行的,如果支持业务应用运行的平台发生动态库版本更新,则此前预链接得到的动态库的可执行文件的版本与平台实际最新的动态库版本并不兼容,导致动态库加载失败的问题时有发生。目前还可以采用一种利用GOT表加载动态库的技术方案。该方案中应用都需要通过GOT表进行跳转访问,增加了运行的消耗,从而影响了系统的性能。
为解决上述的问题,本申请提供了一种动态库加载方法、核部署的调整方法及相关装置,能够在提升动态库加载速度的基础上保证动态库成功加载。并且相比于GOT表加载动态库的方案,不会额外增加运行消耗,因此对于系统的性能不会造成负面影响。为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。参见图1,该图是本申请实施例提供的一种动态库加载方法流程示意图。如图1所示,本申请实施例所提供的动态库加载方法,包括如下步骤S101至S103:
S101:当在目标内核加载第一应用时,从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件;所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,第一平台动态库版本为支持第一应用加载的平台的最新动态库版本。
本申请技术方案实现场景中,具体是对多内核处理器的至少一个内核加载动态库。目标内核就是需要加载动态库的至少一个内核之一。向目标内核加载动态库的原因包括多种,下面通过示例对加载原因进行介绍。
一种示例原因是:目标内核空闲,其他已加载第一应用的内核不足以支持第一应用当前的业务量。需要将目标内核从空闲状态转换为支持第一应用相关业务的工作状态。为此,需要向目标内核加载与第一应用相关的动态库。
另一种示例原因是:目标内核在此前加载了其他应用的相关动态库,但是由于核部署的调整,需要将目标内核从其他应用切换为第一应用。为此,需要向目标内核加载与第一应用相关的动态库。
文件系统是处理器之外的可存储所有与动态库相关的文件的系统,其独立于内存。具体地,文件系统可以存储平台相关的动态库和业务相关的动态库的文件系统。其中,与目标内核的应用切换关联最为密切的便是业务相关的动态库。平台具体是指支持该第一应用加载和运行的系统,例如,可以是指操作系统。平台相关的动态库可能发生版本更新,类似地,业务相关的动态库也可能发生版本更新,动态库的版本更新具体体现在文件系统中。
在本申请技术方案中假设需要将目标内核切换为支持第一应用相关业务的工作状态。为实现此目的,在加载第一应用时,处理器从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件。其中,既包括第一业务动态库版本关联的动态库的可执行文件,也包括第一平台动态库版本关联的动态库的可执行文件,其中,第一平台动态库版本为支持第一应用加载的平台的最新动态库版本。
第一业务动态库版本是指,为了加载第一应用,所有与业务相关的待加载的动态库的可执行文件汇集构成的动态库版本。第一平台动态库版本是指,为了加载第一应用,所有与平台相关的最新动态库的可执行文件汇集构成的动态库版本。
需要说明的是,如果要加载的应用发生了变化,例如从第一应用切换为加载第二应用,则目标内核对应的所有待加载的动态库的可执行文件可能发生变化。其中,业务相关的动态库可能发生变化;平台相关的动态库可能发生变化,也可能不变。作为示例,其所有待加载的动态库的可执行文件包括:第二业务动态库版本关联的动态库的可执行文件和第二平台动态库版本关联的动态库的可执行文件。其中,第二业务动态库版本是指,为了加载第二应用,所有与业务相关的待加载的动态库的可执行文件汇集构成的动态库版本。第二平台动态库版本是指,为了加载第二应用,所有与平台相关的最新动态库的可执行文件汇集构成的动态库版本。
在一些实施例中,第一业务动态库版本关联的动态库与第二业务动态库版本关联的动态库可能存在部分相同,也可能完全不同。
S102:对所有待加载的动态库的可执行文件分别预链接,获得所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入文件系统中。
对动态库的可执行文件进行预链接属于本领域比较成熟的技术,故此处不对预链接的实现方式做出限定,也不对预链接的实现过程加以赘述。区别与已有的预链接技术的发生时段(在编译阶段),本申请实施例中,预链接技术的发生时段在第一应用加载过程中实现。第一应用加载过程中,即便平台关联的动态库版本发生实时调整更新,也可以及时响应,避免了预链接后与平台版本不兼容的问题。
S103:从文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到目标内核。
作为示例,步骤S101中,从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件包括动态库p1、p2和p3的可执行文件以及动态库s1、s2、s3和s4的可执行文件,其中,动态库p1-p3为第一业务动态库版本关联的动态库,动态库s1-s4为第一平台动态库版本关联的动态库。步骤S101对动态库p1-p3以及s1-s4的可执行文件分别预链接,并将动态库p1-p3以及s1-s4各自预链接后的可执行文件导入文件系统。本步骤S103为了加载这些动态库,将动态库p1-p3以及s1-s4各自预链接后的可执行文件从文件系统中取出,加载到目标内核中。上述p1-p3以及s1-s4未在图中示出。
由上述可知,本申请实施例所提供的动态库加载方法,通过对待加载的动态库的可执行文件进行预链接,且将预链接后的可执行文件存入文件系统,以方便再次取用,提升了动态库的加载速度。此外,由于首次预链接是在目标内核加载第一应用时进行的,因此,可以基于当时平台的动态库版本关联的动态库的可执行文件进行预链接,从而使得预链接后的平台动态库的版本是最新的,如此,避免了预链接后的可执行文件与平台的最新动态库版本不匹配的问题,保证了兼容性能。
在本申请实施例中,在从文件系统中获得所有待加载的动态库的可执行文件之前,还可以接收动态库加载请求;动态库加载请求指示了所有待加载的动态库和目标内核。需要说明的是,在本申请实施例中,可以根据动态库加载请求本身可以直接获得所有待加载的动态库和目标内核的信息,也可以根据动态库加载请求中指示所有待加载的动态库和目标内核的ID信息获得所有待加载的动态库和目标内核,本申请实施例在此不做限定。作为一个示例:本申请实施例提供的方法可以根据动态库加载请求中的ID信息001和ID信息与动态库的映射关系获得待加载的动态库为动态库A,根据ID信息002和ID信息与动态库的映射关系可以获得待加载的动态库为动态库B。
为加载动态库预链接后的可执行文件至内存,申请的存储粒度是固定值。例如:申请的存储粒度为4k时,每次申请的存储粒度4k的整数倍。加载动态库的顺序是一定的,在依次加载动态库预链接后的可执行文件的动作完成后,内存中可能存在较大的空洞,如此导致动态库预链接后的可执行文件在加载后整体占用的内存较多,或者内存空间浪费的问题。
因为本申请实施例所提供的方法是对于所有待加载的可执行文件进行预链接,因此可以基于这些链接后的可执行文件,对这些文件在内存的存储地址进行统筹安排,以减小内存的空洞。本申请实施例所提供的方法,在对所有待加载的动态库的可执行文件分别预链接时,还可以根据内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排。此处依据每个待加载的动态库的可执行文件的段大小编排存储地址是因为预链接前后对应的段大小不发生明显变化。在本申请实施例中,动态库的可执行文件的段大小具体包括:代码段的大小和数据段的大小。代码段和数据段具有不同的属性。需要说明的是,可执行文件的本质为描述文件,可执行文件本身的大小并不代表其加载到内存中后所占内存的大小。可执行文件的格式可以是ELF(Executable and Linkable Format)格式。
在对内存进行编排时,可以基于不同的属性分别进行内存编排。例如,依据待加载的动态库1的可执行文件中数据段的大小和待加载的动态库2的可执行文件中数据段的大小统一做内存编排;依据待加载的动态库1的可执行文件中代码段的大小和待加载的动态库2的可执行文件中代码段的大小统一做内存编排。
为了展示本申请技术方案中对内存进行编排的技术效果,首先通过图2展示一种内存编排前的动态库预链接后可执行文件的存储效果(参见2a部分)以及依照本申请技术方案进行内存编排后动态库预链接后可执行文件的存储效果(参见2b部分)。在该示例中,动态库的加载顺序是规定好的,需要依次加载动态库0、动态库1、动态库2和动态库3。首先,先介绍图2中的2a部分,如图2的2a部分,2a部分所示的内存加载动态库2时,由于动态库0的剩余存储空间大于动态库2预链接后的可执行文件的段大小,于是动态库2将会存入动态库0的剩余存储空间中;加载动态库3时,由于动态库0~2的剩余空间小于动态库3预链接后的可执行文件的段大小,于是动态库3将会重新申请一个粒度内存以存入其中。由于2b部分展示的是本申请技术方案的技术效果,下面将会先介绍本申请实施提供的技术方案和技术方案应用的示例。
在本申请实施例中,可以根据内存的存储粒度和每个待加载的动态库预链接后的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排。下面提供一则示例实现方式。可以理解的是,以下示例不构成对本申请所提供方法的限定。
作为一种可能的实施方式,根据内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排,可以具体包括:
根据内存的存储粒度和最新编排好存储地址的动态库的可执行文件的段大小,确定最新编排好存储地址的动态库的可执行文件的剩余存储空间;确定出加载顺序靠前的n个存储地址未编排的动态库,并确定n个存储地址未编排的动态库的可执行文件的段大小;n为正整数(例如n取3,此处对n不做限定,n也可以为所有剩余的未编排存储地址的动态库的总数);从n个存储地址未编排的动态库中确定出可存入剩余存储空间且可执行文件的段大小与剩余存储空间最接近的一个动态库,对该动态库预链接后的可执行文件的存储地址编排至剩余存储空间的地址范围内。如果n个存储地址未编排的动态库的可执行文件的段大小中最小的都无法存入剩余的存储空间,则可以重新申请存储粒度,或者扩大n的取值。如此,可以保证每一个粒度内存中的剩余空间都被最大可能地利用,从而可以使待加载的所有动态库预链接后的可执行文件所占的内存减小,内存加载动态库和卸载动态库的速度提高。
参见图2,图2中的2b部分为一种编排后的动态库预链接后的可执行文件在内存中的存储效果示意图。2b部分所示的内存在加载前根据内存的存储粒度对每个待加载的动态库预链接后的可执行文件的存储地址进行编排后,再根据编排结果加载动态库预链接后的可执行文件。由于动态库3的可执行文件的段大小大于动态库2的可执行文件的段大小,动态库1的可执行文件的段大小则相对而言过大,且动态库0对应的剩余存储空间大于动态库3的可执行文件的段大小,因此为了更充分地利用动态库0对应的剩余空间,在编排的过程中将动态库3加载到动态库0对应的剩余空间中。动态库1和2将被加载到新申请的内存的粒度内存中。由上述可知,编排前动态库3被加载到新申请的粒度内存中,而编排后动态库3被加载到动态库0对应的剩余空间中。如图2所示,动态库3的段大小大于动态库2的段大小,因此,从整体上来说排后的动态库0、动态库1、动态库2和动态库3占用的内存更少。
在上述技术方案中,由于所有待加载的动态库的可执行文件是统一预链接的(例如同一时段同步预链接),而非一次又一次分时段预链接的,因此使上述对于内存的编排操作成为可能。
为了尽可能地利用申请的内存,节省内存的消耗,提高加载动态库和卸载动态库的速度,作为一种可能的实施方式,在本申请实施例中,在将每个待加载的动态库预链接后的可执行文件加载到处理器的目标内核时,本申请实施例所提供的方法还可以包括:以预先编排的存储地址,将每个待加载的动态库预链接后的可执行文件存入内存中目标内核对应的存储空间中。
由上述可知,本申请实施例所提供的方法,根据内存的存储粒度和可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排,缩小了可执行文件在内存中存储时的内存空洞,从而可以使预链接后的可执行文件所占的内存减小,内存性能提升,内存加载动态库和卸载动态库的速度提高。
下面对本申请实施例中的文件系统进行详细介绍:
本申请实施例所提供的文件系统包括:至少一个动态库版本容器;
具体地,至少一个动态库版本容器包括:动态库版本第一容器;动态库版本第一容器中包括与第一应用加载相关的所有动态库的可执行文件;与第一应用加载相关的所有动态库的可执行文件包括:目标内核对应的所有待加载的动态库的可执行文件。从而,本申请实施例中,从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件,具体包括:从动态库版本第一容器中获得目标内核对应的所有待加载的动态库的可执行文件。本申请实施例所提供的文件系统还包括:与每个动态库版本容器对应的动态库预链接版本容器,其中包括与动态库版本第一容器对应的动态库预链接版本第一容器。从而,本申请实施中,将每个待加载的动态库预链接后的可执行文件存入文件系统中,具体包括:将每个待加载的动态库预链接后的可执行文件存入动态库预链接版本第一容器。本申请实施例中,从文件系统获取每个待加载的动态库预链接后的可执行文件,具体包括:从动态库预链接版本第一容器获取每个待加载的动态库预链接后的可执行文件。
作为一个示例,参见图3,该图为本申请实施例提供的一种文件系统的结构示意图。
如图3所示,在数字信号处理器1000(Digital Signal Processor,DSP)中的加载模块100获得动态库加载请求后,加载模块100从动态库版本第一容器300中获得目标内核对应的所有待加载的动态库的可执行文件。然后,加载模块100将每个待加载的动态库预链接后的可执行文件存入动态库预链接版本第一容器400。DSP处理器1000中的加载模块100从动态库预链接版本第一容器400获取每个待加载的动态库预链接后的可执行文件。此外,相应地,本申请中将每个待加载的动态库预链接后的可执行文件加载到目标内核,还可以包括:DSP处理器1000中的加载模块100将每个待加载的动态库预链接后的可执行文件加载到目标内核。
在实际的应用中,当将预链接后的可执行文件加载到目标内核后,很可能会需要再次加载之前已经加载过的可执行文件,此时,如果重新将每个待加载的动态库链接成可执行文件将会开销大量的计算资源。因此,在将每个待加载的动态库预链接后的可执行文件加载到处理器的目标内核时,本申请实施例所提供的方法还可以包括:当再次在目标内核加载第一应用时,从文件系统直接获取目标内核对应的所有待加载的动态库预链接后的可执行文件,将其中每个待加载的动态库预链接后的可执行文件加载到目标内核。由上述可知,本申请实施例所提供的方法,通过将每个待加载的动态库预链接后的可执行文件存入文件系统中,当需要再次加载曾经加载过的可执行文件时,可以从文件系统中直接加载,如此,省去了再次每个待加载的动态库链接成可执行文件的操作,节省了计算资源,同时,也提高了目标内核应用切换时加载动态库的速度。
根据上述提供的动态库的加载方法,本申请实施例还提供了一种核部署的调整方法。
参见图4,该图是本申请实施例提供的一种核部署的调整方法流程示意图。如图4所示,本申请实施例提供的核部署的调整方法包括以下步骤S401至S403:
S401:接收核部署调整请求;核部署调整请求指示了目标内核对应的所有待卸载的动态库和目标内核对应的所有待加载的动态库。
S402:根据核部署调整请求,将所有待卸载的动态库从目标内核上卸载,并从文件系统中获得所有待加载的动态库预链接后的可执行文件,将所有待加载的动态库预链接后的可执行文件加载到目标内核。
在本申请实施例中,所有待加载的动态库预链接后的可执行文件为依据所有待加载的动态库的可执行文件预链接后获得的;所有待加载的动态库的可执行文件,包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,第一平台动态库版本为支持第一应用加载的平台的最新动态库版本。
接下来将以一个具体的示例来介绍本申请实施例所提供的核部署的调整方法,参见图5,该图为本申请实施例提供的一种核部署的调整方法应用场景示意图。
如图5所示,本申请提供的核部署调整方法可以将图中的处理器5核中核3进行重新部署,以核3为示例进行说明:具体地,本申请提供的方法将的APP(Application,应用程序)0从核3上卸载,并从文件系统中获得APP1相关的所有待加载的预链接后的可执行文件,将所有APP1相关的待加载的预链接后的可执行文件加载到核3,如此,可以将原本部署在APP0的核3部署至APP1。相应地,本申请提供的方法也可以将APP1相关的所有待加载的预链接后的可执行文件从核3上卸载,并从文件系统中获得APP0相关的所有待加载的预链接后的可执行文件,将APP0相关的所有待加载的预链接后的可执行文件加载到核3,如此,可以将原本部署在APP1的核3部署给APP0。可以理解的是,本申请实施例提供的方法所部署的核不仅限于上述示例的核3,而是包括任意一个或多个可部署的核。同时,本申请中的平台和应用不对核部署调整的动态库进行限制。作为一个示例,本申请所提供的核部署的方法也可以应用于,信号基站中对部署在4G业务的核与部署在5G业务之间的重新调整部署。
参见图6,该图是本申请实施例提供的另一种文件系统的结构示意图。如图6所示,DSP1000中的部署调整模块200接收核部署调整请求后,部署调整模块200根据核部署调整请求,将所有待卸载的动态库从目标内核上卸载,并从动态库预链接版本第一容器400中获得所有待加载的动态库预链接后的可执行文件,将所有待加载的动态库预链接后的可执行文件加载到目标内核。
为了更加直观地展示本申请实施例所提供的动态库加载方法和核部署调整方法,接下来将上述方法以信令图的形式展示。
参见图7a,该图为本申请实施例提供的一种动态库加载方法的信令图。
如图7a所示,在外部触发了加载模块的加载后,加载模块通过动态库版本第一容器获取所有动态库的版本;加载模块将所有动态库一起进行预链接,将动态库预链接后的版本发送至动态库预链接版本第一容器进行保存。然后,加载模块从动态库预链接版本第一容器从获取存入的动态库预链接后的版本(包含所有待加载的动态库预链接后的可执行文件),并将动态库预链接后的版本的可执行文件加载到目标内核上。
参见图7b,该图为本申请实施例提供的一种核部署调整方法的信令图。
如图7b所示,在外部触发了部署调整模块的调整后,部署调整模块将卸载对应的目标内核上的动态库,并从动态库预链接版本第一容器中获取动态库预链接后的版本,并将动态库预链接后的版本的可执行文件加载至目标内核上。
例如,卸载的动态库是与第一应用以外的其他应用相关联的动态库,此处当需要将内核从其他应用切换调整为第一应用时,可以将其他应用关联的动态库卸载,再加载与第一应用相关的所有动态库预连接后的可执行文件。
需要说明的是,本申请实施例中的APP可以是终端上的应用程序,还可以是不同制式下的应用。例如,可以是APP0可以是4G LTE制式的应用,APP1可以是5G NR制式的应用。此处对应用的形式不做限定。
由上述可知,本申请实施例所提供的方法,通过对待加载的动态库的可执行文件进行预链接,且将预链接后的可执行文件存入文件系统,以方便再次取用,提升了动态库的加载速度的同时避免了预链接后的可执行文件与平台的最新动态库版本不匹配的问题。进一步地,本申请实施例提供的方法还根据内存的存储粒度和可执行文件的段大小,对可执行文件的存储地址进行编排,从而可以使预链接后的可执行文件所占的内存减小,内存性能提升,内存加载动态库和卸载动态库的速度提高。
根据上述方法实施例提供的动态库加载方法,本申请实施例还提供的一种动态库加载装置。参见图8,该图为本申请实施例提供的一种动态库加载装置结构示意图。如图8所示,本申请实施例提供的动态库加载装置包括:
获取模块801用于,当在目标内核加载第一应用时,从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件;所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,第一平台动态库版本为支持第一应用加载的平台的最新动态库版本;
预链接模块802用于,对所有待加载的动态库的可执行文件分别预链接,获得所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入文件系统中;
加载模块803用于,从文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到目标内核。
作为一种可能的实施方式,在从文件系统中获得所有待加载的动态库的可执行文件之前,本申请实施例提供的动态库加载装置还包括:接收模块用于,接收动态库加载请求;动态库加载请求指示了所有待加载的动态库和目标内核。
作为一种可能的实施方式,加载模块803还用于:以预先编排的存储地址,将每个待加载的动态库预链接后的可执行文件存入内存中目标内核对应的存储空间中。
作为一种可能的实施方式,在对所有待加载的动态库的可执行文件分别预链接时,本申请实施例提供的动态库加载装置还包括:编排模块用于,根据内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排。
作为一种可能的实施方式,编排模块具体用于:根据内存的存储粒度和最新编排好存储地址的动态库的可执行文件的段大小,确定最新编排好存储地址的动态库的可执行文件的剩余存储空间;确定出加载顺序靠前的n个存储地址未编排的动态库,并确定n个存储地址未编排的动态库的可执行文件的段大小;n为正整数;从n个存储地址未编排的动态库中确定出可存入剩余存储空间且可执行文件的段大小与剩余存储空间最接近的一个动态库,对该动态库预链接后的可执行文件的存储地址编排至剩余存储空间的地址范围内。
作为一种可能的实施方式,本申请实施例提供的动态库加载装置,还包括:直接获取模块用于,当再次在目标内核加载第一应用时,从文件系统直接获取目标内核对应的所有待加载的动态库预链接后的可执行文件,将其中每个待加载的动态库预链接后的可执行文件加载到目标内核。
根据上述方法实施例提供的核部署调整方法,本申请实施例还提供的一种核部署的调整装置。参见图9,该图为本申请实施例提供的一种核部署的调整装置结构示意图。如图9所示,本申请实施例提供的核部署的调整装置包括:
接收模块901用于,接收核部署调整请求;核部署调整请求指示了目标内核对应的所有待卸载的动态库和目标内核对应的所有待加载的动态库;
部署调整模块902用于,根据核部署调整请求,将所有待卸载的动态库从目标内核上卸载,并从文件系统中获得所有待加载的动态库预链接后的可执行文件,将所有待加载的动态库预链接后的可执行文件加载到目标内核;
所有待加载的动态库预链接后的可执行文件为依据所有待加载的动态库的可执行文件预链接后获得的;所有待加载的动态库的可执行文件,包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,第一平台动态库版本为支持第一应用加载的平台的最新动态库版本。
以上方案中提供的动态库加载方法、核部署的调整方法及相关装置具体可以应用在多内核的处理器上。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (12)

1.一种动态库加载方法,其特征在于,包括:
当在目标内核加载第一应用时,从文件系统中获得所述目标内核对应的所有待加载的动态库的可执行文件;所述所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本;
对所述所有待加载的动态库的可执行文件分别预链接,获得所述所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入所述文件系统中;
从所述文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到所述目标内核。
2.根据权利要求1所述的动态库加载方法,其特征在于,在所述从文件系统中获得所有待加载的动态库的可执行文件之前,还包括:
接收动态库加载请求;所述动态库加载请求指示了所有待加载的动态库和所述目标内核。
3.根据权利要求1所述的动态库加载方法,其特征在于,在所述将每个待加载的动态库预链接后的可执行文件加载到处理器的目标内核时,所述方法还包括:
以预先编排的存储地址,将每个待加载的动态库预链接后的可执行文件存入内存中所述目标内核对应的存储空间中。
4.根据权利要求3所述的动态库加载方法,其特征在于,在所述对所述所有待加载的动态库的可执行文件分别预链接时,所述方法还包括:
根据所述内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排。
5.根据权利要求4所述的动态库加载方法,其特征在于,所述根据所述内存的存储粒度和每个待加载的动态库的可执行文件的段大小,对每个待加载的动态库预链接后的可执行文件的存储地址进行编排,具体包括:
根据所述内存的存储粒度和最新编排好存储地址的动态库的可执行文件的段大小,确定所述最新编排好存储地址的动态库的可执行文件的剩余存储空间;
确定出加载顺序靠前的n个存储地址未编排的动态库,并确定所述n个存储地址未编排的动态库的可执行文件的段大小;所述n为正整数;
从所述n个存储地址未编排的动态库中确定出可存入所述剩余存储空间且可执行文件的段大小与所述剩余存储空间最接近的一个动态库,对该动态库预链接后的可执行文件的存储地址编排至所述剩余存储空间的地址范围内。
6.根据权利要求3或4所述的动态库加载方法,其特征在于,所述动态库的可执行文件的段大小包括:所述动态库的可执行文件中代码段的大小和数据段的大小。
7.根据权利要求1-5任一项所述的动态库加载方法,其特征在于,所述文件系统包括:至少一个动态库版本容器;
所述至少一个动态库版本容器包括:动态库版本第一容器;所述动态库版本第一容器中包括与所述第一应用加载相关的所有动态库的可执行文件;所述与所述第一应用加载相关的所有动态库的可执行文件包括:目标内核对应的所有待加载的动态库的可执行文件;
所述从文件系统中获得目标内核对应的所有待加载的动态库的可执行文件,具体包括:
从所述动态库版本第一容器中获得所述目标内核对应的所有待加载的动态库的可执行文件。
8.根据权利要求7所述的动态库加载方法,其特征在于,所述文件系统还包括:与每个动态库版本容器对应的动态库预链接版本容器,其中包括与所述动态库版本第一容器对应的动态库预链接版本第一容器;
所述将每个待加载的动态库预链接后的可执行文件存入所述文件系统中,具体包括:
将每个待加载的动态库预链接后的可执行文件存入所述动态库预链接版本第一容器;
所述从所述文件系统获取每个待加载的动态库预链接后的可执行文件,具体包括:
从所述动态库预链接版本第一容器获取每个待加载的动态库预链接后的可执行文件。
9.根据权利要求1-5任一项所述的动态库加载方法,其特征在于,还包括:当再次在所述目标内核加载所述第一应用时,从所述文件系统直接获取所述目标内核对应的所有待加载的动态库预链接后的可执行文件,将其中每个待加载的动态库预链接后的可执行文件加载到所述目标内核。
10.一种核部署的调整方法,其特征在于,包括:
接收核部署调整请求;所述核部署调整请求指示了目标内核对应的所有待卸载的动态库和所述目标内核对应的所有待加载的动态库;
根据所述核部署调整请求,将所述所有待卸载的动态库从所述目标内核上卸载,并从文件系统中获得所述所有待加载的动态库预链接后的可执行文件,将所述所有待加载的动态库预链接后的可执行文件加载到所述目标内核;
所述所有待加载的动态库预链接后的可执行文件为依据所有待加载的动态库的可执行文件预链接后获得的;所述所有待加载的动态库的可执行文件,包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本。
11.一种动态库加载装置,其特征在于,包括:
获取模块用于,当在目标内核加载第一应用时,从文件系统中获得所述目标内核对应的所有待加载的动态库的可执行文件;所述所有待加载的动态库的可执行文件包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本;
预链接模块用于,对所述所有待加载的动态库的可执行文件分别预链接,获得所述所有待加载的动态库中每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件存入所述文件系统中;
加载模块用于,从所述文件系统获取每个待加载的动态库预链接后的可执行文件,并将每个待加载的动态库预链接后的可执行文件加载到所述目标内核。
12.一种核部署的调整装置,其特征在于,包括:
接收模块用于,接收核部署调整请求;所述核部署调整请求指示了目标内核对应的所有待卸载的动态库和所述目标内核对应的所有待加载的动态库;
部署调整模块用于,根据所述核部署调整请求,将所述所有待卸载的动态库从所述目标内核上卸载,并从文件系统中获得所述所有待加载的动态库预链接后的可执行文件,将所述所有待加载的动态库预链接后的可执行文件加载到所述目标内核;
所述所有待加载的动态库预链接后的可执行文件为依据所有待加载的动态库的可执行文件预链接后获得的;所述所有待加载的动态库的可执行文件,包括:第一业务动态库版本关联的动态库的可执行文件和第一平台动态库版本关联的动态库的可执行文件,其中,所述第一平台动态库版本为支持所述第一应用加载的平台的最新动态库版本。
CN202011268494.3A 2020-11-13 2020-11-13 动态库加载方法、核部署的调整方法及相关装置 Active CN114489827B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011268494.3A CN114489827B (zh) 2020-11-13 2020-11-13 动态库加载方法、核部署的调整方法及相关装置
PCT/CN2021/115233 WO2022100208A1 (zh) 2020-11-13 2021-08-30 动态库加载方法、核部署的调整方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011268494.3A CN114489827B (zh) 2020-11-13 2020-11-13 动态库加载方法、核部署的调整方法及相关装置

Publications (2)

Publication Number Publication Date
CN114489827A true CN114489827A (zh) 2022-05-13
CN114489827B CN114489827B (zh) 2023-11-03

Family

ID=81489915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011268494.3A Active CN114489827B (zh) 2020-11-13 2020-11-13 动态库加载方法、核部署的调整方法及相关装置

Country Status (2)

Country Link
CN (1) CN114489827B (zh)
WO (1) WO2022100208A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234963B (zh) * 2023-11-14 2024-01-23 海马云(天津)信息技术有限公司 动态库处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147743A (zh) * 2011-03-28 2011-08-10 博视联(苏州)信息科技有限公司 加快嵌入式系统应用程序启动速度的方法
US20130290645A1 (en) * 2011-12-07 2013-10-31 Intel Corporation Techniques to prelink software to improve memory de-duplication in a virtual system
US20150347162A1 (en) * 2014-06-03 2015-12-03 Mentor Graphics Corporation Prelinked embedding
CN110765493A (zh) * 2018-12-28 2020-02-07 北京安天网络安全技术有限公司 一种基于Linux预链接的文件基线防御方法、装置及存储设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363436B1 (en) * 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
CN110471690B (zh) * 2019-06-25 2021-09-14 珠海格力电器股份有限公司 动态链接库so文件的加载方法、装置及存储介质
CN111813423A (zh) * 2020-08-31 2020-10-23 腾讯科技(深圳)有限公司 应用安装包处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147743A (zh) * 2011-03-28 2011-08-10 博视联(苏州)信息科技有限公司 加快嵌入式系统应用程序启动速度的方法
US20130290645A1 (en) * 2011-12-07 2013-10-31 Intel Corporation Techniques to prelink software to improve memory de-duplication in a virtual system
US20150347162A1 (en) * 2014-06-03 2015-12-03 Mentor Graphics Corporation Prelinked embedding
CN110765493A (zh) * 2018-12-28 2020-02-07 北京安天网络安全技术有限公司 一种基于Linux预链接的文件基线防御方法、装置及存储设备

Also Published As

Publication number Publication date
WO2022100208A1 (zh) 2022-05-19
CN114489827B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN105867947B (zh) 预置应用程序升级后的数据处理方法及装置
CN107832100B (zh) 一种apk插件的加载方法及其终端
US7657886B1 (en) Mobile device with a MMU for faster firmware updates in a wireless network
CN111045714B (zh) 一种固件更新方法、装置、耳机及计算机可读存储介质
CN104182255A (zh) 一种系统应用的库文件升级方法及终端
CN103631612A (zh) 启动操作系统的方法与装置
CN102455976B (zh) 一种中间件内存管理的方法
US10224972B2 (en) Systems, methods, and computer-readable media for tracking updates and loading data
CN113204353B (zh) 一种大数据平台组件部署方法及装置
CN107911741A (zh) 可用存储空间提升方法、智能电视及计算机可读存储介质
US20090199171A1 (en) Code Size Reduction by Outlining Specific Functions in a Library
CN104731622A (zh) 一种应用程序的加载方法、装置和移动终端
US20240078106A1 (en) Method and device for updating software version of distributed system
CN114489827A (zh) 动态库加载方法、核部署的调整方法及相关装置
CN110275719B (zh) 基于国产cpu和操作系统的云物理主机操作系统部署方法
US20030037323A1 (en) Method for upgrading data
CN116560878B (zh) 一种内存共享方法和相关装置
CN110753040B (zh) 一种请求处理的方法及装置
CN113791870B (zh) 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统
CN114679465A (zh) 资源操作方法、装置、电子设备及存储介质
JP2012141887A (ja) 情報処理装置、情報処理方法、及びプログラム
CN113934437A (zh) 云手机安装应用的方法、系统和客户端云手机
CN102202129A (zh) 实现手机操作系统加载的方法
CN112631609A (zh) 编译方法、装置、终端及存储介质
CN112162819A (zh) 跨虚拟机和Kubernetes集群的应用部署方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant