【发布时间】:2016-04-29 16:57:35
【问题描述】:
i86-32 位系统: 有没有办法在进程内存映射中保留特定范围的虚拟地址空间,以阻止 ld.so(动态链接器)将任何共享对象加载到该范围内?
我想用至少2个1G的虚拟内存来映射两个1G的huge page,但是ld.so加载了中间的共享库,所以无法映射1G的huge page。
编译器无法完成这项工作。链接器脚本也不能。 ld.so 由加载器加载到可执行文件中,然后 ld.so 加载其他共享库。但是,ld.so 本身甚至位于映射空间的中间。
ld.so 和 libc.so 的入口点位于更高的地址,对于我们的应用程序无法更改。 入口地址:0x46c38810
谢谢, 江涛
【问题讨论】: