Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017)

Материал из 0x1.tv

Докладчик
Глеб Фотенгауэр-Малиновский.jpg
Глеб Фотенгауэр-Малиновский

Альт несколько раз был портирован на различные аппаратные платформы.

Среди них x86_64, PowerPC, разные версии архитектуры ARM.

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

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


Видео

on youtube

Презентация

Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf

Thesis

Стадии портирования

Портирование ОС «Альт» на новую платформу можно разделить на следующие стадии:

  1. минимальная сборочная среда (toolchain, shell, make);
  2. сборщик пакетов (rpmbuild);
  3. сборочная среда в виде пакетов (для сборки в изолированном сборочном окружении);
  4. массовая сборка пакетов;
  5. пересборка всех собранных пакетов;
  6. интеграция новой архитектуры в общую систему сборки пакетов (возможно, в «догоняющем» режиме);

Способы портирования

Есть два основных способа ручного портирования ОС на базе GNU/*/Linux на новую аппаратную платформу:

  • на основе существующего порта другого дистрибутива;
  • с помощью кросс-компилятора под целевую архитектуру.


Первый способ кажется самым простым, потому что позволяет пропустить стадию 1 и сразу перейти к стадии 2, а сборку toolchain отложить до стадии 3. Второй способ кажется более сложным, но позволяет собирать порт без зависимости от других дистрибутивов, или если порт на эту архитектуру вообще отсутствует.

Сложность портирования

Бoльшая часть проблем в процедуре портирования, как ни странно, касается не особенностей конкретной архитектуры, а устройства программных компонентов, которые часто требуют других компонентов, которые ещё не собраны. Такие зависимости часто образуют циклы, которые приходится «разрывать» для каждого продукта по-своему.

Автоматизация портирования

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

Результаты

На данный момент готов набор скриптов, который позволяет полностью автоматически собрать среду для кросс-компиляции, стадию 1 и стадию 2.


Примечания и ссылки


Plays:14   Comments:0