可重新绑定的可执行程序

绑定程序的正式文档是指绑定程序将可执行程序(一个装入模块)作为输入的能力。

利用此功能可以大大改进带有软件开发工作负载的系统的整体性能,也能缩短单个 ld 命令的响应时间。

在大多数典型的 UNIX 系统中,ld 命令总是将一组包含目标代码的文件作为输入,这些文件可以来自单个 .o 文件,也可以来自 .o 文件的存档库。 命令 ld 然后在这些文件中解析外部引用并将写出缺省名称为 a.out 的可执行程序。 a.out 文件只能被执行。 如果在 a.out 文件包含的某个模块中发现错误,那么这段有缺陷的源代码将得到更改并重新编译,然后必须重复整个 ld 进程(从完整的 .o 文件集开始)。

但是,在此操作系统中,绑定程序可以接受 .oa.out 文件作为输入,因为绑定程序在可执行文件中包含已解析的外部符号字典 (ESD) 和重定位字典 (RLD) 信息。 这意味着用户能够重新绑定现有的可执行程序以替换单个修改后的 .o 文件(而不是重新开始构建新的可执行程序)。 因为绑定进程消耗存储器和处理器周期,这在一定程度上与访问的不同文件的数目以及对必须解析的符号的不同引用的数目成比例,所以用一个新版的模块重新绑定一个可执行程序比从暂存文件重绑定它要快很多。