Как портируется Linux на другие архитектуры

Подскажите в общих чертах, а как Linux портируется на другие архитектуры ? Ведь Linux изначально писался под x86.

Так как Linux написан вроде как на С/C++, то в самых общих и грубых чертах себе представляю, что просто переписывается код Си - то есть просто переписывается код всех функций Си с ассемблера x86 на ассемблер той архитектуры на который портируется и как бы в основном все.

А как на самом деле происходит портирование ?


Ответы (1 шт):

Автор решения: nexoma

в общем, есть кросс-компиляторы, например

cross-aarch64-gcc11 | The GNU Compiler Collection targeting aarch64

cross-arm-gcc11

cross-avr-gcc11

cross-mips-gcc11

cross-riscv64-gcc12

вот с их помощью и компилируется с/с++-код на требуемую архитектуру на имеющейся другой архитектуре. то есть линукс остаётся линуксом.

можно ознакомиться на примерах описания вариантов подготовки загрузочных образов для raspberry, risc-v32. там описан довольно подробный порядок.

→ Ссылка