Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
Существовал даже экспериментальный порт на x32. Все эти порты делались без учёта того, что опыт этого портирования может пригодиться в будущем. На самом деле такой опыт можно не просто записывать, но и оформлять в виде сценариев для автоматического портирования. Такие сценарии можно исполнять не только тогда, когда нужно получить ОС для новой аппаратной платформы, но и по мере изменения основного репозитория для поддержания инструментов автоматического портирования в работоспособном состоянии. </blockquote> {{VideoSection}} {{vimeoembed|235962174|800|450}} {{youtubelink|NckFUv6Yjco}}{{letscomment}} {{SlidesSection}} [[File:Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017).pdf|left|page=-|300px]] {{----}} == Thesis == === Стадии портирования === Портирование ОС «Альт» на новую платформу можно разделить на следующие стадии: # минимальная сборочная среда (toolchain, shell, make); # сборщик пакетов (rpmbuild); # сборочная среда в виде пакетов (для сборки в изолированном сборочном окружении); # массовая сборка пакетов; # пересборка всех собранных пакетов; # интеграция новой архитектуры в общую систему сборки пакетов (возможно, в «догоняющем» режиме); === Способы портирования === Есть два основных способа ручного портирования ОС на базе GNU/*/Linux на новую аппаратную платформу: * на основе существующего порта другого дистрибутива; * с помощью кросс-компилятора под целевую архитектуру. Первый способ кажется самым простым, потому что позволяет пропустить стадию 1 и сразу перейти к стадии 2, а сборку toolchain отложить до стадии 3. Второй способ кажется более сложным, но позволяет собирать порт без зависимости от других дистрибутивов, или если порт на эту архитектуру вообще отсутствует. === Сложность портирования === === Результаты === На данный момент готов набор скриптов, который позволяет полностью автоматически собрать среду для кросс-компиляции, стадию 1 и стадию 2. {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> {{fblink|1951701555082856}} {{vklink|758}} <references/> [[File:{{#setmainimage:Автоматизация портирования ОС «Альт» на новые аппаратные платформы (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2017)!.jpg}}|center|640px]] {{stats|disqus_comments=0|refresh_time=2020-07-18T22:15:402021-08-31T16:45:02.194722952324|vimeo_comments=0|vimeo_plays=438|youtube_comments=0|youtube_plays=6670}} [[Категория:OSSDEVCONF-2017]] [[Категория:ALT Linux]] [[Категория:Кроссплатформенная разработка]] | |||
Текущая версия на 06:17, 20 октября 2025
- Докладчик
- Глеб Фотенгауэр-Малиновский
Альт несколько раз был портирован на различные аппаратные платформы.
Среди них x86_64, PowerPC, разные версии архитектуры ARM.
Существовал даже экспериментальный порт на x32. Все эти порты делались без учёта того, что опыт этого портирования может пригодиться в будущем.
На самом деле такой опыт можно не просто записывать, но и оформлять в виде сценариев для автоматического портирования. Такие сценарии можно исполнять не только тогда, когда нужно получить ОС для новой аппаратной платформы, но и по мере изменения основного репозитория для поддержания инструментов автоматического портирования в работоспособном состоянии.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Стадии портирования[править | править вики-текст]
Портирование ОС «Альт» на новую платформу можно разделить на следующие стадии:
- минимальная сборочная среда (toolchain, shell, make);
- сборщик пакетов (rpmbuild);
- сборочная среда в виде пакетов (для сборки в изолированном сборочном окружении);
- массовая сборка пакетов;
- пересборка всех собранных пакетов;
- интеграция новой архитектуры в общую систему сборки пакетов (возможно, в «догоняющем» режиме);
Способы портирования[править | править вики-текст]
Есть два основных способа ручного портирования ОС на базе GNU/*/Linux на новую аппаратную платформу:
- на основе существующего порта другого дистрибутива;
- с помощью кросс-компилятора под целевую архитектуру.
Первый способ кажется самым простым, потому что позволяет пропустить стадию 1 и сразу перейти к стадии 2, а сборку toolchain отложить до стадии 3. Второй способ кажется более сложным, но позволяет собирать порт без зависимости от других дистрибутивов, или если порт на эту архитектуру вообще отсутствует.
Сложность портирования[править | править вики-текст]
Бoльшая часть проблем в процедуре портирования, как ни странно, касается не особенностей конкретной архитектуры, а устройства программных компонентов, которые часто требуют других компонентов, которые ещё не собраны. Такие зависимости часто образуют циклы, которые приходится «разрывать» для каждого продукта по-своему.
Автоматизация портирования[править | править вики-текст]
Всю работу, проделываемую при портировании, которая касается сложности портирования, а не особенностей конкретной архитектуры, можно автоматизировать. В таком случае можно будет поддерживать систему автоматического портирования в работоспособном состоянии, а при необходимости сделать порт на новую платформу решать уже только проблемы конкретной платформы.
Результаты[править | править вики-текст]
На данный момент готов набор скриптов, который позволяет полностью автоматически собрать среду для кросс-компиляции, стадию 1 и стадию 2.
Примечания и ссылки[править вики-текст]
Plays:118 Comments:0

