Re[10]: Raspberry Pi dev device.
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 26.03.23 18:37
Оценка:
Здравствуйте, alex_public, Вы писали:

_>тоже ядро Linux... Но при этом кросс-компиляция изначально идеально продумана и работает одинаково беспроблемно на любой хост-системе.


Самое смешное, что не надо ничего "идеально продумывать". Достаточно убрать (а еще лучше — изначально не вводить) разделение на "свою" и "чужую" системы, как все проблемы совместимости исчезнут, и останутся лишь вопросы удобства — в каком виде задавать параметры, как организовать хранилище и т.п.

По сути, это же самые азы абстракции — вместо конкретного значения использовать "x", "n" и прочее. И в математике, и в программировании они всегда приветствовались. И переменные в makefile тоже были введены, чтобы уйти от конкретных значений. Странно, как при таком подходе могла появиться парадигма "собираем всегда под себя" — тем более, что в 70-е уже хватало машин, идентичных/совместимых по системе команд, но сильно различавшихся по доступным ресурсам и удобству среды. Казалось бы, идея собирать что сам unix, что софт под него, на более мощной/удобной машине, а затем переносить на целевую, должна была возникнуть автоматически.

Я в 80-е много работал на PDP-11 с RSX-11M, ее тоже нужно было "генерировать" под типы целевого процессора, набор устройств, конфигурацию ПО и т.п. Но на любой машине можно было сгенерить систему под любую другую, лишь бы она поддерживалась. Встроенных кросс-средств в той системе не было, но лишь потому, что все было написано на ассемблере, и настройка на аппаратуру обеспечивалась обычной условной трансляцией. Будь оно написано на ЯВУ, точно так же работал бы и компилятор, позволяющий задавать целевую архитектуру.

И привязка к ядру там тоже была — любой драйвер или системную утилиту нужно было транслировать с файлом системных определений, а собирать — с файлом символов от ядра, чтобы состыковать адреса. Но с тем же успехом можно было подсунуть файлы определений и символов от другой системы, а потом скопировать бинарник туда — я так делал регулярно, чтобы не ходить из зала в зал. Это было нетрудно, поскольку единой системы сборки не было, все задавалось в командной строке или в индивидуальном командном файле.

Поскольку для линуксов давно наработаны типовые комплекты скриптов, в основу которых положена странная идея "своей" системы, неудивительно, что это создает столько проблем при малейшем отступлении от привычных вариантов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.