Выполнение программы на Си - загрузчик

Без указания на особенности конкретной OS, IMHO, достаточно сказать, что loader размещает код в памяти (RAM) и выполняет его инициализацию, после чего передает управление OS. Для программ на C первой (после служебного кода, вставленного компилятором) всегда выполняется функция

int main()

, возвращающая OS код завершения через оператор

return

.

Детали реализации специфичны для каждой операционной системы и формата исполняемого файла (

COM

/

EXE MZ/LE/LX/NE/PE

/

ELF

/

Mach-O

etc)