Pav*_*ath 8 linux linker operating-system loader
我知道动态加载器的作用.它在运行时应用程序请求时加载程序,从而最小化内存占用量.但我真的没有得到这个动态链接器是什么?它的优点是什么?我读了很多网上的东西,但他们用抽象的语言说话.
有人可以用一些简单的例子来解释我吗?
它们实际上是同一件事的两个术语.
在Unix世界中,术语动态链接器用于表示在运行时链接动态库的操作系统组件,而大多数其他系统上的加载器同时执行程序加载和链接动态库.
因为在类Unix系统下加载库是由一个单独的组件(ld.so最常见)完成的,所以动态链接器被认为是与程序加载器不同的东西.编译器通常在可执行文件的开头插入一些存根代码来加载ld.so,并ld.so在main调用之前继续加载其余的依赖库.程序加载在内核空间中完成,链接动态库通常在用户空间中完成.
这与Windows不同,Windows中的程序加载和链接动态库都是在内核模式下完成的.