Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021)

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

(перенаправлено с «20210617D»)
Докладчик
Сергей Козьяков

Современные мобильные устройства обременены большим количеством закрытого кода и компонентов, что делает разработку нового системного программного обеспечения для существующих устройств сложным, длительным, дорогостоящим процессом. На протяжении недолгой истории смартфонов встречалось несколько устройств, которые можно было бы назвать «открытыми», но данные проекты не снискали популярности и крупного коммерческого успеха. На данный момент выделяется три устройства — Necunos, Librem 5 и PinePhone. Данный доклад рассматривает прошлые и текущие открытые устройства, аппаратные и программные компоненты, используемые в них; обсуждаются сложности разработки и адаптации программного обеспечения, и оцениваются перспективы и будущее подобных проектов.

Видео

on youtube

Презентация

Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021).pdf

Thesis

Проблемы разработки ПО под закрытые платформы

Современные мобильные устройства (МУ) обременены большим количеством закрытых программных и аппаратных компонентов. «Закрытые», или «проприетарные» компоненты здесь противопоставляются «открытым», то есть компонентам, распространяемым под открытой лицензией и с открытым исходным кодом. Закрытые компоненты поставляются в виде бинарных программ, библиотек, драйверов — так называемых «блобов». Так, при адаптации новой ОС (например, «ОС Аврора») для устройств с уже существующим ПО от поставщика, количество блобов, необходимых для работы системы, может исчисляться десятками. Часто такие компоненты не снабжены документацией и сторонние разработчики не могут использовать полный их функционал. В случае возникновения проблем не обойтись без взаимодействия с производителями чипов, что не всегда возможно по разным причинам. Производитель может не взаимодействовать с сообществом вообще или не взаимодествовать по определённым моделям чипов, а если речь идёт про конкретные коммерческие проекты, то уровень поддержки часто зависит от объёма проекта.

Однако в последнее время возрос интерес к открытому коду и устройствам. Производители нередко публикуют исходный код драйверов и библиотек для своих продуктов и принимают исправления и нововведения от сообщества. Историю появления открытых компонентов в МУ, саму практику использования таких компонентов и причины интереса к данной практике мы и рассмотрим в данном докладе.

Прошлое открытых МУ

GreenPhone, выпущенный в 2006 году компанией Trolltech, был одним из первых МУ с ОС на базе ядра Linux и открытыми компонентами. Главным фреймворком и средой устройства была Qtopia, доступная под лицензией GPL[1].

В том же 2006 году был представлен проект Openmoko, направленный на создание открытых МУ, аппаратных спецификаций и операционной системы (Openmoko Linux). В 2007 году было представлено устройство Neo 1973, для которого, помимо открытого ПО, под открытой лицензией доступна схематика и чертежи.

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

Современные открытые МУ

Рассмотрим три интересных проекта открытых МУ, представленных на рынке за последние несколько лет.

Во-первых, это устройства Necunos, позиционируемые как "безопасные и проверяемые МУ[2]». Они не оснащены модемом, поэтому не могут совершать звонки и использовать LTE соединение. В итоге, по заверению разработчиков, устройство поставляется с одним единственным"блобом", необходимым для работы Wi-Fi чипа. Предполагается, что устройства будут поставляться с Aera OS, основанной на ядре Linux. В настоящий момент исходные коды и BSP недоступны, но, по заверениям разработчиков, будут опубликованы «в ближайшем времени».

Во-вторых, это Librem 5 от компании Purism, производящей различные устройства, такие как ноутбуки и мини-ПК, ориентированные на конфиденциальность пользователя. Устройство поставляется с оболочкой Phosh, основанной на GNOME, и переиспользует много существующего ПО. Например, для звонков используется фреймворк oFono, созданный в своё время компанией Intel, а ныне поддерживаемый сообществом, и используемый в том числе в ОС Аврора и других мобильных ОС на основе ядра Linux.

Наконец, особый интерес для нас представляет PinePhone от компании Pine64, которая до этого занималась выпуском одноплатных компьютеров и тесно взаимодействует с сообществами открытых проектов. Интересно это устройство тем, что с ранних дней были доступны наборы разработчиков и прототипы устройства. Дистрибутивы, множество которых сейчас доступно для загрузки и тестирования[3], также активно используют и развивают различные программные и низкоуровневые компоненты.

Открытое ПО и взаимодействие с сообществом

Можно проследить, что ПО, используемое в ОС на базе Linux современных МУ, в том числе ОС «Аврора», пересекается с проектами, активно используемыми как встраиваемыми системами, так дистрибутивами для персональных компьютеров. Это приводит к упрощению и снижению стоимости разработки, а активное участие сообщества в разработке помогает адаптировать эти компоненты для огромного множества МУ. Рассмотрим некоторые программные компоненты, используемые в устройствах, как в вышеупомянутых открытых, так и в «закрытых».

Уязвимости, затрагивающие одно устройство, по своей натуре часто могут затрагивать множество других, но и исправление уязвимостей в открытых проектах становится доступно для прочих устройств. Так, в 2020 году разработчики ОС «Аврора» обнаружили и исправили критическую проблему в glibc, затрагивающую множество устройств на архитектуре ARMv7[4], и это исправление теперь доступно для всего сообщества. Подобное взаимодействие, где важное исправление может быть быстро опубликовано и доступно для разработчиков по всему миру, очень важно для современной разработки, и поэтому даже крупные разработчики закрытых компонентов могут быть заинтересованы в использовании открытых проектов в своей разработке и отправки изменений в них.

В отличие от более старых мобильных дистрибутивов, вместо проекта Xorg для графики используются реализации Wayland. Пользовательское окружение может быть простроено как на фреймворке Qt, так и на GTK. Для мультимедиа часто используется проект GStreamer.

Для управления звуком нередко используется PulseAudio, а проект Mer предлагает набор расширений для интеграции звуковой подсистемы с остальной ОС, а также утилиты для управления политиками и звуковыми профилями устройства. При разработке ОС «Аврора» эти расширения активно используются и дорабатываются, а изменения отправляются обратно в сообщество.

Благодаря своей модульной структуре, oFono с расширениями из проекта Mer может использовать компоненты ОС Андройд для совершения вызовов через проприетарные компоненты или использовать открытые менеджеры различных устройств. Так, разработчики Librem 5 реализовали поддержку модема, используемого в этом МУ. Наработки были опубликованы и частично были переиспользованы в поддержки других модемов, в том числе в PinePhone.

Это не все компоненты, наработки в которых могут переиспользоваться. При разработке ОС «Аврора» часто добавляется и оптимизируется поддержка различного функционала, связанного с голосовыми вызовами, которая апстримится в проект Mer.

Будущее открытых смартфонов

«Открытая Мобильная Платформа» следит за развитием современных открытых мобильных устройств и принимает активное участие в разработке программных компонентов. Хотя сейчас рано говорить о коммерческом успехе современных открытых МУ, особенно учитывая их высокую стоимость и местами неидеальное ПО, популяризация разработки и использования открытого ПО и запрос на прозрачность дают основания полагать, что популярность подобных устройств будет расти.

Открытые смартфоны — прошлое, настоящее, будущее (Сергей Козьяков, OSSDEVCONF-2021)!.jpg

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

  1. linuxdevices.com — Trolltech GPL’s Qtopia app stack for Linux PDAs, https://web.archive.org/web/20090105054754/http://www.linuxdevices.com/news/NS9985953607.html
  2. Necunos — Necunos FAQ, \url{https://necunos.com/faq/}
  3. Pine64 — https://wiki.pine64.org/wiki/PinePhone_Software_Releases
  4. CNews — Разработчики ОС «Аврора» исправили уязвимость в glibc, https://mobile.cnews.ru/news/top/2020-07-16_razrabotchiki_os_avrora

Plays:18   Comments:0