Это зависит от архитектуры, но, как правило, ядро устанавливает начальные указатели стека и фрейма перед выполнением любых инструкций пользовательского пространства, и динамический компоновщик устанавливает глобальный указатель (если таковой имеется).Раздел «начальное состояние процесса» приложения ABI вашей архитектуры объяснит многое из этого, но в остальном вам, вероятно, потребуется прочитать исходный код вашего динамического компоновщика.
Если ваш симулятор - пользовательскийтолько пробел должен выполнять работу ядра.