伙计们,我想为什么要将链接器和加载器编程分开?我的理解是链接器生成一个可重定位的代码,并且还构建了符号表,并提供了有关任何动态链接的lib的信息,并且加载器只是将可执行文件加载到内存中?为什么我们不能将它们合并?
谢谢
有很多原因.一个与静态库有关,静态库可能包含数千种不同的函数.但是单个程序可能只使用特定库中的一些函数.如果链接器和加载器是同一个程序,则必须将整个静态库与您的应用程序一起发布.想想一个只有几千字节的小型C++程序.它是通过链接静态运行时库创建的,这个库的大小是几兆字节.
如果需要加载程序进行链接,则会增加加载程序的复杂性并增加操作系统内核的大小.链接是一项非常复杂的工作,可能需要很长时间.这不是操作系统的工作.操作系统应关注执行程序,而不是构建它们.
| 归档时间: |
|
| 查看次数: |
670 次 |
| 最近记录: |