Мне нужно сделать довольно необычную вещь: вручную выполнить исполняемый файл эльфа. То есть загружать все разделы в нужные места, запрашивать main() и вызывать его (и затем очищать). Исполняемые файлы будут статически связаны, поэтому нет необходимости связывать библиотеки. Я также управляю базовым адресом, поэтому не беспокойтесь о возможных конфликтах.
Итак, существуют ли для этого библиотеки?
Я нашел OSKit и его liboskit_exec, но проект кажется мертвым с 2002 года.
Я в порядке с частью проектов (уважая лицензии, конечно) и подгоняю их к моей потребности, но поскольку я совершенно нул в мире Linux, я даже не знаю, где найти эти части!:)
PS. Мне нужно это для платформы ARM.
UPD Ну, вопрос загрузки эльфов, похоже, требует хороших знаний об этом (вздох), поэтому я прочел некоторые спецификации и руководства. И я думаю, что буду придерживаться бионического/линкера и libelfsh. Спасибо, парни!
Подводя итоги:
- libelf: http://directory.fsf.org/project/libelf/
- elfsh и libelfsh (теперь являются частью eresi): http://www.eresi-project.org/
- elfio (еще одна библиотека эльфа): http://sourceforge.net/projects/elfio/
- OSKit и liboskit_exec (устаревшие): http://www.cs.utah.edu/flux/oskit/
- bionic/linker: https://android.googlesource.com/platform/bionic