История изменений
Исправление 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 не слышал. Надо будет попробовать, как он поведет себя в ядре.
На первый взгляд не выглядит страшным.
Сначала вам синтаксис не нравится, а теперь уже и проблемы с дизайном?
Одно из другого следует.