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

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

(Batch edit: replace PCRE (\n\n)+(\n) with \2)
 
(не показаны 22 промежуточные версии этого же участника)
Существовал даже экспериментальный порт на 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=2018-05-15T16:54:032021-08-31T16:45:02.282226952324|vimeo_comments=0|vimeo_plays=3048|youtube_comments=0|youtube_plays=2770}}

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

Текущая версия на 12:20, 4 сентября 2021

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