JavaScript is required to for searching.
跳过导航链接
退出打印视图
链接程序和库指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分使用链接编辑器和运行时链接程序

1.  Oracle Solaris 链接编辑器介绍

2.  链接编辑器

3.  运行时链接程序

4.  共享目标文件

第 2 部分快速参考

5.  链接编辑器快速参考

第 3 部分高级主题

6.  直接绑定

7.  生成目标文件以优化系统性能

使用 elfdump 分析文件

底层系统

延迟装入动态依赖项

与位置无关的代码

-K pic-K PIC 选项

删除未使用的材料

删除未使用的节

删除未使用的文件

删除未使用的依赖项

最大化可共享性

将只读数据移动到文本中

折叠多重定义数据

使用自动变量

动态分配缓冲区

最小化分页活动

重定位

符号查找

执行重定位的时间

组合重定位节

复制重定位

使用 -B symbolic 选项

配置共享目标文件

8.  mapfile

9.  接口和版本控制

10.  使用动态字符串标记建立依赖性

11.  可扩展性机制

第 4 部分ELF 应用程序二进制接口

12.  目标文件格式

13.  程序装入和动态链接

14.  线程局部存储

第 5 部分附录

A.  链接程序和库的更新及新增功能

B.  System V 发行版 4(版本 1)mapfile

索引

底层系统

应用程序是从动态可执行文件和一个或多个共享目标文件依赖项中生成的。动态可执行文件和共享目标文件的整个可装入内容在运行时映射到此进程的虚拟地址空间。每个进程通过引用内存中动态可执行文件和共享目标文件的单个副本进行启动。

处理动态目标文件中的重定位以将符号引用绑定到相应的定义。这会导致计算那些无法在链接编辑器生成目标文件时得到的实际虚拟地址。通常,这些重定位会导致更新进程数据段中的项。

基于动态目标文件链接的内存管理方案将按照页粒度在各进程之间共享内存。只要在运行时未修改内存页,便可在进程间共享这些内存页。如果某个进程在写入数据项或在重定位对共享目标文件的引用时写入到一个共享目标文件页,则会生成此页的专用副本。此专用副本不会影响此目标文件的其他用户。但是,其他进程无法共享此页。通过此方式修改的文本页称为不纯文本页。

映射到内存的动态目标文件中的段分为两种基本类别:只读的文本段和可读写的数据段。有关如何从 ELF 文件获取信息,请参见使用 elfdump 分析文件。开发动态目标文件时的最重要目标是最大化文本段以及最小化数据段。该分区可优化代码共享量,同时减少初始化和使用动态目标文件所需的处理量。本节介绍有助于实现此目标的机制。