Назад | Перейти на главную страницу

Как Linux может работать на разных микропроцессорах?

Как Linux может работать на разных микропроцессорах? Компилируется ли ядро ​​Linux каждый раз при установке?

Каждый скомпилированный / установленный образ ядра создается для одного конкретного микропроцессора (или обычно семейства микропроцессоров).

Исходный код частично не зависит от оборудования (= множество драйверов, планировщиков, ...) и частично зависит от платформы (= низкоуровневое взаимодействие с оборудованием, ...), но полученный двоичный файл является всегда специфичен для одной архитектуры.

Ядро Linux, поскольку каждая скомпилированная программа, зависит от платформы.

Хакеры ядра - очень опытные программисты, поэтому большая часть кода ядра написана с учетом платформы (например, с использованием макроса препроцессора), оставшаяся часть должна зависеть от архитектуры либо из-за проблем с производительностью, либо из-за того, что это ограничено некоторыми аппаратными функциями, отсутствующими в других арках, и так далее.

Как правило, это не предел возможности компиляции ядра на Arch A и создания ядра, которое будет работать на Arch B, этот процесс известен как кросс-компиляция и выполняется с помощью кросс-компилятор

Итак, ответ таков это не быть составленным во время установки, потому что он может быть скомпилирован или кросс-скомпилирован поставщиком вашего дистрибутива. Вы можете перекомпилировать его на своей машине, если вам нужно его настроить.

Обычные шаги, чтобы заставить Linux работать на конкретной платформе:

  • Скачать исходники ядра
  • Загрузите патчи для конкретных платформ (например, для процессора Atmel AT91RM9200 ARM)
  • Применяйте официальные / неофициальные / ваши патчи
  • Загрузите crossstool-ng или аналогичный инструмент и создайте кросс-компилятор / библиотеки
  • Соберите свое ядро
  • Сборка / обновление / сборка рута вручную или с помощью скриптов / инструментов
  • Перенесите ядро ​​и корневую файловую систему на вашу платформу с помощью загрузчика / JTAG / копирования / других методов.
  • Готово

Повторите для каждой платформы.

Обычно он компилируется перед установкой. Но да, он компилируется для каждой платформы отдельно.