JIT原理介绍。(转载)
位置无关代码的动态链接过程
发表于
| 分类于
编译器
共享库,在Linux称为shared object
,即.so
文件,在Windows中成为dynamic linked library
,即.dll
文件。使用共享库的主要目的就是“共享”,
即内存中只有一份代码,而多个进程都可以使用它,当然使用时涉及到内存的分页机制,
这里不作展开。共享库的一种很常用的实现方式就是位置无关代码
(position independent
code),该方式生成的共享库,其代码部分在动态载入并链接到内存中时是不会有任何修改的,
这些代码放到内存的任何位置都可以正常工作,所以叫做与位置无关的代码
。
链接过程剖析
发表于
| 分类于
编译器
我们将用下面的代码作为实例进行分析。