linux – 库初始化后从RAM刷新ELF部分

我在ELF共享库中有很多代码,只在库初始化期间使用它(它是从静态初始化程序调用的).如果我把这段代码放在它自己的部分(或者它可以进入.init部分),我可以使用__attribute __((section(“.mysection”))),有没有办法强制这部分是在库加载后分页?

This question是相关的,但结论是内核会在内存不足时分页出未使用的页面,所以没有必要明确地这样做.但是,我在一个内存非常宝贵的嵌入式环境中工作,而从磁盘(慢速USB闪存驱动器)代码中分页的成本很高.因此,我宁愿显式刷新这段代码,我知道这些代码永远不会被再次使用,而不是内核可能会决定刷新其他可能最终需要重新分页的代码.

我确定我记得读过一个关于系统调用的内容,要求内核进入或退出某些内存区域,虽然我无法在任何地方找到任何参考,所以也许我想象它.这样的事情存在吗?

查找有关精灵叠加层的文档.排列代码,使您有一个覆盖初始化,另一个用于处理.您可能还想查看关闭的叠加层.当调用下一个叠加时,应替换叠加中的代码.

转载注明原文:linux – 库初始化后从RAM刷新ELF部分 - 代码日志