Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, 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.

Примечания и ссылки[править вики-текст]

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

Plays:118   Comments:0