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

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

 
(не показано 5 промежуточных версий этого же участника)
Существовал даже экспериментальный порт на 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-06T01:05:302021-08-31T16:45:02.176300952324|vimeo_comments=0|vimeo_plays=438|youtube_comments=0|youtube_plays=6670}}

[[Категория:OSSDEVCONF-2017]]
[[Категория:ALT Linux]]
[[Категория:Кроссплатформенная разработка]]

Текущая версия на 06:17, 20 октября 2025

Докладчик
Глеб Фотенгауэр-Малиновский.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