Запускается ли динамический компоновщик автоматически операционной системой или кодом, встроенным в файл ELF?

Я скачал zyppper и libzypp с software.opensuse.org для openSuse 42.3

после этого я запускаюrpm --force -hiv *rpm(для этих оборотов )и после этой операции zypper исправлен.

2
06.09.2019, 17:44
1 ответ

Ядро загружает динамический загрузчик (, который не является /usr/bin/ld; см. что такое исполняемые файлы ELF соответственно для статического компоновщика, динамического компоновщика, загрузчика и динамического загрузчика?).

Когда вы запускаете двоичный файл ELF, ядро ​​использует свой специальный загрузчик двоичного файла ELF; для динамически -связанных двоичных файлов эта функция ищет интерпретатор, указанный в заголовках ELF, загружает его и дает указание запустить целевой двоичный файл. Интерпретатор — это динамический загрузчик, который загружает любые необходимые библиотеки, разрешает неопределенные символы и переходит к начальному адресу программы. (См. Какие типы исполняемых файлов существуют в Linux? для получения подробной информации о загрузке двоичных файлов в ядре.)

В LWN есть статья, в которой подробно описаны Как запускаются программы :Двоичные файлы ELF .

5
27.01.2020, 22:02

Теги

Похожие вопросы