计算机系统篇之链接(7):位置无关代码(上)

Author: stormQ

Created: Wednesday, 15. April 2020 04:35PM

Last Modified: Thursday, 05. November 2020 11:02PM



摘要

本文描述了 Linux 系统中引入位置无关代码(PIC)的动机、工作原理和优缺点。

引入 PIC 的动机

共享库的一个主要目的就是允许无限多个正在运行的进程共享内存中相同的库代码(即共享库的 .text Section)。为了实现这一目的,现代系统以这样一种方式编译共享模块的代码段,使得可以把它们(即共享库的 .text Section)加载到内存的任何位置而无需链接器修改。可以加载而无需重定位的代码称为位置无关代码(Position Independent Code, PIC)。

PIC 实现原理

PIC 的优缺点


下一篇:计算机系统篇之链接(8):位置无关代码(中)——真正理解 PIC 数据引用的工作原理(Linux X86-64 示例)

上一篇:计算机系统篇之链接(6):动态链接

首页