Как портируется Linux на другие архитектуры
Подскажите в общих чертах, а как Linux портируется на другие архитектуры ? Ведь Linux изначально писался под x86.
Так как Linux написан вроде как на С/C++, то в самых общих и грубых чертах себе представляю, что просто переписывается код Си - то есть просто переписывается код всех функций Си с ассемблера x86 на ассемблер той архитектуры на который портируется и как бы в основном все.
А как на самом деле происходит портирование ?
Ответы (1 шт):
в общем, есть кросс-компиляторы, например
cross-aarch64-gcc11 | The GNU Compiler Collection targeting aarch64
cross-arm-gcc11
cross-avr-gcc11
cross-mips-gcc11
cross-riscv64-gcc12
вот с их помощью и компилируется с/с++-код на требуемую архитектуру на имеющейся другой архитектуре. то есть линукс остаётся линуксом.
можно ознакомиться на примерах описания вариантов подготовки загрузочных образов для raspberry, risc-v32. там описан довольно подробный порядок.