共享库术语

时间:2009-03-12 20:21:31

标签: unix shared-libraries terminology

“共享库文本”和“共享库数据”之间有什么区别?此外,共享库数据“预先重新定位”意味着什么?这个问题涉及一些涉及共享库的AIX特定功能。

2 个答案:

答案 0 :(得分:4)

啊,这是一个棘手的问题。

好的,所以要回答它,你必须知道一个可执行文件有两个*段:“文本”部分和“数据”部分。

“数据”细分包含“不会执行的内容”。例如,程序中的字符串(例如,字符串“Command not found”将位于/bin/sh二进制文件的数据段中。)

“text”段包含“将要执行的内容” - 机器说明。

并且,“预先重新安置”......这里有一个相当好的解释为什么需要重新定位:http://people.redhat.com/drepper/textrelocs.html以及此处涉及的内容:http://en.wikipedia.org/wiki/Relocation_(computer_science)

这有帮助吗?

*:nitpicker note:它有两个以上,但现在不重要

答案 1 :(得分:2)

内存分为4个部分 - 代码,数据,堆栈和数据。堆。

“共享库文本”是共享库的代码部分 - 实现库中功能的实际指令。

“共享库数据”是共享库的数据部分 - 全局变量,常量,静态内容等,在加载库时立即分配。

至于“预先重新安置”的图书馆,这就是概念。加载共享库时,它将映射到共享地址空间。 “预重定位”库是使用“提示”构建的,告诉操作系统应该在该共享地址空间中加载它。出于我理解的原因,这应该可以提高性能。