Я думаю, что они очень похожи, но не совсем одинаковы.
Библиотека /lib/libdl.so
(или /lib/x86_64-linux-gnu/libdl.so.2
в моей системе) (содержащая dlopen
и dlsym
) является своего родакод заглушки или клея или оболочка, использующая некоторую часть /lib/ld-linux.so.2
(или /lib64/ld-linux-x86-64.so.2
), но она не содержит те же символы, которые вы можете проверить с помощью nm -D
.
Определенно dlopen
и динамическогоЗагрузчик делает очень похожие вещи: mmap -ing сегменты и интерпретация порядка перемещения.См. эту ссылку и книгу компоновщиков и загрузчиков levine
Просмотрите исходный код Gnu Libc как dl-runtime.c etc