LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Начнём с того, что вы прикопались к столбу.

Для кого столб, а кто-то пол года копался только в механизмах загрузки ELF — как со стороны ядра, так и со стороны пользовательского пространства (привет, безумие glibc).

Хотя в случае с glibc не могу сказать, что до сих пор полностью понимаю сотворенное разработчиками.

Ну а по-поводу EFL, насколько я знаю, разница только в наличии входной функции (entry point), ака main.

О, все веселее! У библиотеки тоже может быть «подобный main» entry point, как, например — у glibc.

Также, к слову, main не является entry point, поэтому в этом контексте его лучше не употреблять.

На деле уровень различий сильно зависит от того, как скомпилирован исполняемый файл. Если взять частный случай с статически слинкованным PIE исполняемым файлом, то отличие останется только в наличии экспортируемых функциях (с поправкой на некоторые служебные, которые также могут присутствовать).

Если брать не статический, то будет еще PT_INTERP, чего у библиотек нет. Если брать !PIE, то отличие уже будет явным в заголовке ELF.

И еще много мелочей, по которым они отличаются в отличии от опций компиляции. Но эта разница остается.

Типа zig? Но он страшный. Так что вам не понравится.

О zig не слышал. Надо будет попробовать, как он поведет себя в ядре.

На первый взгляд не выглядит страшным.

Сначала вам синтаксис не нравится, а теперь уже и проблемы с дизайном?

Одно из другого следует.

Исходная версия Deleted, :

Начнём с того, что вы прикопались к столбу.

Для кого столб, а кто-то пол года копался только в механизмах загрузки ELF — как со стороны ядра, так и со стороны пользовательского пространства (привет, безумие glibc).

Хотя в случае с glibc не могу сказать, что до сих пор полностью понимаю сотворенное разработчиками.

Ну а по-поводу EFL, насколько я знаю, разница только в наличии входной функции (entry point), ака main.

О, все веселее! У библиотеки тоже может быть entry point, как, например — у glibc.

Также, к слову, main не является entry point, поэтому в этом контексте его лучше не употреблять.

На деле уровень различий сильно зависит от того, как скомпилирован исполняемый файл. Если взять частный случай с статически слинкованным PIE исполняемым файлом, то отличие останется только в наличии экспортируемых функциях (с поправкой на некоторые служебные, которые также могут присутствовать).

Если брать не статический, то будет еще PT_INTERP, чего у библиотек нет. Если брать !PIE, то отличие уже будет явным в заголовке ELF.

И еще много мелочей, по которым они отличаются в отличии от опций компиляции. Но эта разница остается.

Типа zig? Но он страшный. Так что вам не понравится.

О zig не слышал. Надо будет попробовать, как он поведет себя в ядре.

На первый взгляд не выглядит страшным.

Сначала вам синтаксис не нравится, а теперь уже и проблемы с дизайном?

Одно из другого следует.