В настоящее время я пишу динамический компоновщик, и меня что-то беспокоит. Почему ld.so (динамический компоновщик моей системы) является общим объектом? Почему это не может быть просто статический исполняемый файл (ET_EXEC)?
Я попытался найти ответ в binfmt_elf.c ядра Linux, но, насколько я понимаю, он ясно показывает, что ваш интерпретатор ELF может быть статическим исполняемым файлом.
РЕДАКТИРОВАТЬ: я думаю, что мои мысли сводятся к следующему: может ли динамический компоновщик быть простым исполняемым файлом ELF (ET_EXEC)?
/* First of all, some simple consistency checks */
if (interp_elf_ex->e_type != ET_EXEC &&
interp_elf_ex->e_type != ET_DYN)
goto out;
PS: я надеюсь, что это правильное место, я не знаю, должен ли я разместить его здесь или на бирже стека Unix. Мне также жаль, если мой вопрос глупый, но отсутствие ответа на него сводит меня с ума.