【问题标题】:Controlling address space layout of dynamic loading控制动态加载的地址空间布局
【发布时间】:2015-11-29 02:57:35
【问题描述】:

是否可以(在 Linux / OSX 中)控制加载后共享库在内存中的映射方式? 是否可以分配一个连续的内存区域,并将其传递给诸如“dlopen”之类的例程? 我不坚持将各个段(.text.bss 等)精确放置在 malloc 区域内,而只是将所有段都放在 malloc 区域内。

【问题讨论】:

    标签: dll linker shared-libraries


    【解决方案1】:

    是否可以(在 Linux / OSX 中)控制加载后共享库在内存中的映射方式?

    我对OSX了解不多,所以只回答Linux部分。

    不修改动态加载器不行。

    是否可以分配一个连续的内存区域,并将其传递给诸如“dlopen”之类的例程?

    malloc 不会为您提供所需的页面对齐。 posix_memalign 会,但你最好直接做 mmap(..., MAP_FIXED, ...)。你要求实现这个feature request(还没有人做过)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 2011-09-29
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多