Во время загрузки в основном есть 2 шага (очень упрощенных) (в частности, связанных с платами на базе ARM Embedded Linux):
Когда питание подается, процессор просыпается и его ПЗУкод выполнен.Этот код жестко закодирован в чипе, предоставленном производителем.Этот код ПЗУ после выполнения базовой подготовки аппаратного обеспечения и проверки работоспособности вызывает загрузчик.Вам нужно посмотреть в документах, где (по какому адресу) этот начальный код ищет загрузчик.Если он находит загрузчик, он отказывается от своего управления, и управление переходит к загрузчику.
Снова загрузчик ищет несколько предварительно определенных областей памяти для двоичного файла ядра (скомпилированный образ),Затем он (загрузчик) отказывается от управления и передает управление ядру (с небольшим количеством аргументов, а иногда и с памятью дерева устройств).
AFAIK, ядро и загрузчик не "обычно компилируется / связывается.Это процесс, на котором одна стадия полностью отказывается от себя и передает управление другой (как описано в двух предыдущих шагах).