Это на самом деле два термина для одной и той же вещи.
В мире Unix термин динамический компоновщик используется для обозначения компонента операционной системы, который связывает динамические библиотеки во время выполнения, тогда как загрузчик в большинстведругие системы выполняют загрузку программ и связывание динамических библиотек.
Поскольку загрузка библиотек в Unix-подобных системах осуществляется отдельным компонентом (чаще всего ld.so
), динамический компоновщик считается чем-то отличным от загрузчика программ.,Компиляторы обычно вставляют некоторый код заглушки в начало исполняемого файла для загрузки ld.so
, и ld.so
продолжит загрузку остальных зависимых библиотек до вызова main
.Хотя загрузка программы выполняется в пространстве ядра, связывание динамических библиотек обычно выполняется в пространстве пользователя.
В отличие от Windows, где загрузка программы и связывание динамических библиотек выполняется в режиме ядра.