Цитата(AlexandrY @ Jan 3 2013, 11:51)

Насчет loader-ов есть сильное семантическое отличие этого понятия в контексте компьютерной информатики и малых встраиваемых систем.
Боюсь, что семантические отличия исключительно ваши. Мы вообще обсуждаем динамическую загрузку
модулей (см. топик). В данном контексте лоадер - это код, который готовит некоторые данные для
работы (данные - это как код и как собственно data). Лоадер пользуется внешним апи, типа чтения
данных, выделения памяти и т.д. Реализация этого апи находится вне текущей абстракции, а "файловые
системы", "живые юзеры" вообще тут никаким боком.
Дока по L&L на примере ELF-а описывает как раз компоновку софта и последуещее развертывание
на девайсе. Есть и другие форматы, но ELF настолько получился удачным и гибким, что решает в 95%.
В любом случае, человек, хотя бы ознакомившийся с этой докой сможет сформулировать запрос в гугл

Разница между "компьютерными системами" и "малыми встраиваемыми системами" заключается только в
ресурсах. Т.е. надо дать определение, что такое малые встраиваемые. Моя эмпирическая оценка -
это 64КБ RAM, если меньше, то нужны *очень* веские доводы для реализации динамической загрузки.
Но никто даже в противном случае не мешает создать прошивку в виде эльфа, где уже бутлоадер
(даже являющийся частью того самого эльфа) будет загружать всю систему (ОС + прикладнуха).
Вообще, gcc + binutils + make + objcopy позволяет делать любые вещи, начиная от генерации под
виндой опшнромов, досовских EXE- и COM-файлов и заканчивая велосипедами для контроллеров. Но это
так, лирика.
Цитата
Пока единственный виденный мной доступный, рабочий, переносимый, чисто написанный elf-loader а видел в исходниках VwWorks. Они есть в местном хранилище.
Про статическое связывание лучше чем в доке на сами средства компиляции не найти. Поэтому прямиком на сайт www.arm.com - "Application Note 242"
elf-loader есть как минимум в линуксе (тоже чистый и кросс), в BSD-like, QNX и т.д. Но они несколько
громоздки для начального изучения, поэтому я позволю себе дать пару ссылок:
prex и
embox. Первый
тоже кросс и MMU-независим, второй более наворочен, но требует MMU.