动态链接库的加载方法、装置、存储介质及电子设备制造方法及图纸

技术编号:28836632 阅读:32 留言:0更新日期:2021-06-11 23:33
本公开提供一种动态链接库的加载方法、装置、存储介质及电子设备;涉及计算机技术领域。所述方法应用于第三方云引擎,所述第三方云引擎支持在第一操作系统中运行第二操作系统下的动态链接库,所述方法包括:确定所述动态链接库中的可加载段;根据所述第一操作系统的文件映射要求,将所述动态链接库中的第一个可加载段映射到所述第一操作系统中的目标内存地址处;将所述动态链接库中的第二个可加载段按对应的文件偏移量读取到与所述目标内存地址相邻的内存中。本公开可以将第二操作系统下的大部分动态链接库文件映射到第一操作系统中,与全部使用内存模拟动态链接库相比更加节省内存。

【技术实现步骤摘要】
动态链接库的加载方法、装置、存储介质及电子设备
本公开涉及计算机
,具体而言,涉及一种动态链接库的加载方法、动态链接库的加载装置、计算机可读存储介质以及电子设备。
技术介绍
动态链接库(DynamicLinkLibrary,DLL)是Windows操作系统中实现共享函数库的一种方式,使进程可以调用不属于其可执行代码的函数。其中,动态链接库文件是一种为DLL、EXE等格式的二进制文件,允许程序共享执行任务所需的代码和资源。在Linux操作系统中,动态链接库是ELF(ExecutableandLinkableFormat,可执行可链接文件格式)格式的so(shareobject,共享动态链接库)库。其中,Windows系统中的程序可以加载DLL格式的共享库来运行,而无法从EXE二进制文件中加载并且直接调用一个ELF格式的so库。因为ELF格式不属于Windows操作系统认可的二进制文件,所以无法通过Windows操作系统的二进制检查,导致Windows操作系统的正常加载库的路径无法使用。目前,可以将so库的内容全部读取到内存中本文档来自技高网...

【技术保护点】
1.一种动态链接库的加载方法,其特征在于,所述方法应用于第三方云引擎,所述第三方云引擎支持在第一操作系统中运行第二操作系统下的动态链接库,所述方法包括:/n确定所述动态链接库中的可加载段;/n根据所述第一操作系统的文件映射要求,将所述动态链接库中的第一个可加载段映射到所述第一操作系统中的目标内存地址处;/n将所述动态链接库中的第二个可加载段按对应的文件偏移量读取到与所述目标内存地址相邻的内存中。/n

【技术特征摘要】
1.一种动态链接库的加载方法,其特征在于,所述方法应用于第三方云引擎,所述第三方云引擎支持在第一操作系统中运行第二操作系统下的动态链接库,所述方法包括:
确定所述动态链接库中的可加载段;
根据所述第一操作系统的文件映射要求,将所述动态链接库中的第一个可加载段映射到所述第一操作系统中的目标内存地址处;
将所述动态链接库中的第二个可加载段按对应的文件偏移量读取到与所述目标内存地址相邻的内存中。


2.根据权利要求1所述的动态链接库的加载方法,其特征在于,所述确定所述动态链接库中的可加载段,包括:
获取所述动态链接库中库文件的程序头表,并读取所述程序头表中的各个程序头;
根据每个所述程序头的属性参数确定所述动态链接库中的可加载段。


3.根据权利要求2所述的动态链接库的加载方法,其特征在于,所述程序头的属性参数至少包括偏移参数和长度参数;
所述根据每个所述程序头的属性参数确定所述动态链接库中的可加载段,包括:
根据所述偏移参数在所述库文件中确定偏移位置;
基于所述偏移位置,在所述库文件中确定与所述长度参数对应的数据段;
将所述数据段确定为所述动态链接库中的可加载段。


4.根据权利要求1所述的动态链接库的加载方法,其特征在于,所述第一操作系统的文件映射要求,包括:
以页面对齐的方式进行文件映射,所述页面的大小为64KB。


5.根据权利要求4所述的动态链接库的加载方法,其特征在于,所述将所述动态链接库中的第一个可加载段映射到所述第一操作系统中的目标内存地址处,包括:
将所述动态链接库中的所述第一个可加载段映射到所述第一操作系统中64KB对齐的内存地址处。

【专利技术属性】
技术研发人员:刘京洋姚奕涛邹永斌
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1